[wp-trac] [WordPress Trac] #55652: Test tool and unit test improvements for 6.1

WordPress Trac noreply at wordpress.org
Tue Sep 6 00:59:33 UTC 2022


#55652: Test tool and unit test improvements for 6.1
--------------------------------------+---------------------
 Reporter:  hellofromTonya            |       Owner:  (none)
     Type:  task (blessed)            |      Status:  new
 Priority:  normal                    |   Milestone:  6.1
Component:  Build/Test Tools          |     Version:
 Severity:  normal                    |  Resolution:
 Keywords:  has-patch has-unit-tests  |     Focuses:
--------------------------------------+---------------------

Comment (by SergeyBiryukov):

 In [changeset:"54077" 54077]:
 {{{
 #!CommitTicketReference repository="" revision="54077"
 Tests: Correct the cache invalidation tests for old date or slug redirect.

 This affects:
 *
 `Tests_Rewrite_OldDateRedirect::test_old_date_redirect_cache_invalidation()`
 *
 `Tests_Rewrite_OldSlugRedirect::test_old_slug_redirect_cache_invalidation()`

 In the former test, the `$post_id` property is declared as `static`, so
 can only be approached as static, even when used within the same class in
 which the property is declared.

 Using non-static access will result in `null`. See: https://3v4l.org/93HQL

 This PHP notice was hidden so far, due to the existence of magic methods
 in the `WP_UnitTestCase_Base class`.

 All the same, the magic methods as they were, would also return `null` for
 this property. All in all, the post being updated for this test would
 never get the correct `post_id`.

 Fixed by using static access to approach the `static` property.

 On a related note, the described bug fix (using the actual `$post_id`
 instead of `null`) exposed that this test was as a matter of fact failing.
 This was just hidden by the first bug.

 Based on the original commit introducing the test, an adjustment is now
 made which appears to be what the test actually ''intended'' to test. A
 similar change is made to the cache invalidation test for old slug
 redirects. While not strictly required, it brings some consistency between
 the two tests and ensures that both tests use a unique `post_name` value
 to avoid collisions with the previous values.

 This bug was discovered while fixing (removing) the magic methods in the
 `WP_UnitTestCase_Base` class in an effort to improve compatibility with
 PHP 8.2.

 Follow-up to [53549].

 Props jrf, costdev, SergeyBiryukov.
 See #55652.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/55652#comment:153>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list