Repository navigation
Unit Testing: Checking if images already exists before starting tests. Ticket 63532 Refresh - #8927
Conversation
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
There was a problem hiding this comment.
🟡 Changes recommended
The basename-based cleanup can delete a live attachment’s original when the same fixture is uploaded twice, leaving attachments with missing or shared files.
1 open issue
What changed in this PR
This refresh of #8899 addresses Trac ticket #63532 by adding existing-file cleanup to WordPress’s PHPUnit attachment factory.
Changes:
- Resolve the destination path before uploading a fixture.
- Delete any file with the same basename before calling
wp_upload_bits().
| File | Description |
|---|---|
tests/phpunit/includes/factory/class-wp-unittest-factory-for-attachment.php |
Adds destination-file lookup and deletion during attachment creation. |
Review effort: Balanced
| $contents = file_get_contents( $file ); | ||
| $upload_dir = wp_upload_dir(); | ||
| $file_basename = wp_basename( $file ); | ||
| $file_path = $upload_dir['path'] . '/' . $file_basename; | ||
|
|
||
| // Remove existing file if it exists. | ||
| if ( file_exists( $file_path ) ) { | ||
| unlink( $file_path ); | ||
| } | ||
|
|
||
| $upload = wp_upload_bits( $file_basename, null, $contents ); |
|
Closing this delete-on-collision approach in favor of isolating test uploads, tracked in #13065. A matching filename may belong to a live attachment or manual development upload, so deleting it inside the factory is unsafe. The underlying ticket remains open; this does not approve #13065. AI review · |

This is a refresh of #8899
Trac ticket: https://core.trac.wordpress.org/ticket/63532
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.