Tests: Bring some consistency to creating and updating objects in factory classes.

In various unit test factory classes, some of the `create_object()` and `update_object()` methods returned a `WP_Error` object on failure, while a few others were documented to do so, but did not in practice, instead returning the value `0` or `false`, or not accounting for a failure at all.

This commit aims to handle this in a consistent way by updating the methods to always return the object ID on success and a `WP_Error` object on failure.

Includes:
* Updating and correcting the relevant documentation parts.
* Adding missing documentation and `@since` tags in some classes.
* Renaming some variables to clarify that it is the object ID which is passed around, not the object itself.

Follow-up to [760/tests], [838/tests], [922/tests], [948/tests], [985/tests], [27178], [32659], [34855], [37563], [40968], [44497], [46262].

See #56793.

git-svn-id: https://develop.svn.wordpress.org/trunk@55019 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov
2022-12-28 14:07:16 +00:00
parent ac9573bd67
commit d0fc6ddc71
12 changed files with 311 additions and 91 deletions
+14 -4
View File
@@ -1522,10 +1522,11 @@ abstract class WP_UnitTestCase_Base extends PHPUnit_Adapter_TestCase {
* Creates an attachment post from an uploaded file.
*
* @since 4.4.0
* @since 6.2.0 Returns a WP_Error object on failure.
*
* @param array $upload Array of information about the uploaded file, provided by wp_upload_bits().
* @param int $parent_post_id Optional. Parent post ID.
* @return int|WP_Error The attachment ID on success. The value 0 or WP_Error on failure.
* @return int|WP_Error The attachment ID on success, WP_Error object on failure.
*/
public function _make_attachment( $upload, $parent_post_id = 0 ) {
$type = '';
@@ -1547,9 +1548,18 @@ abstract class WP_UnitTestCase_Base extends PHPUnit_Adapter_TestCase {
'guid' => $upload['url'],
);
$id = wp_insert_attachment( $attachment, $upload['file'], $parent_post_id );
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );
return $id;
$attachment_id = wp_insert_attachment( $attachment, $upload['file'], $parent_post_id, true );
if ( is_wp_error( $attachment_id ) ) {
return $attachment_id;
}
wp_update_attachment_metadata(
$attachment_id,
wp_generate_attachment_metadata( $attachment_id, $upload['file'] )
);
return $attachment_id;
}
/**