Ticket #46149: 46149-hard-deprecate-checkRequirements.patch
File 46149-hard-deprecate-checkRequirements.patch, 3.1 KB (added by , 4 years ago) |
---|
-
tests/phpunit/includes/abstract-testcase.php
From 884de9fdf570873ceda8a680d9ca6eedaadc51f8 Mon Sep 17 00:00:00 2001 From: jrfnl <jrfnl@users.noreply.github.com> Date: Wed, 11 Aug 2021 07:32:22 +0200 Subject: [PATCH] Build/Test Tools: hard deprecate `WP_UnitTestCase_Base::checkRequirements()`. The `WP_UnitTestCase_Base::checkRequirements()` method calls the `parent::checkRequirements()` method, but this method became `private` in PHPUnit 7.0.0 via commit [https://github.com/sebastianbergmann/phpunit/commit/932238a6a3018cdfac6c2a7d8f1d5d49e65f5dc0 sebastianbergmann/phpunit@932238a]. Aside from that the `TestCase::getAnnotations()` method which is called next is now also removed in PHPUnit 9.5.0. WP Core doesn't use the method anymore and the method only remains to prevent potentially breaking external integration tests relying on the method. However, in effect, the method is not functional anymore knowing the above. So, I'm proposing to hard deprecate the method, effectively rendering it useless, except to prevent breaking test suites which still called the method. --- tests/phpunit/includes/abstract-testcase.php | 45 ++------------------ 1 file changed, 4 insertions(+), 41 deletions(-) diff --git a/tests/phpunit/includes/abstract-testcase.php b/tests/phpunit/includes/abstract-testcase.php index a169754c69..502abe881c 100644
a b abstract class WP_UnitTestCase_Base extends PHPUnit_Adapter_TestCase { 892 892 * Core tests no longer support this behaviour. 893 893 * 894 894 * @since 3.5.0 895 * @deprecated 5.9.0 This function hasn't been functional since PHPUnit 7.0. 895 896 */ 896 897 protected function checkRequirements() { 897 parent::checkRequirements(); 898 899 $annotations = $this->getAnnotations(); 900 901 $groups = array(); 902 if ( ! empty( $annotations['class']['group'] ) ) { 903 $groups = array_merge( $groups, $annotations['class']['group'] ); 904 } 905 if ( ! empty( $annotations['method']['group'] ) ) { 906 $groups = array_merge( $groups, $annotations['method']['group'] ); 907 } 908 909 if ( ! empty( $groups ) ) { 910 if ( in_array( 'ms-required', $groups, true ) ) { 911 $this->skipWithoutMultisite(); 912 } 913 914 if ( in_array( 'ms-excluded', $groups, true ) ) { 915 $this->skipWithMultisite(); 916 } 917 } 918 919 // Core tests no longer check against open Trac tickets, 920 // but others using WP_UnitTestCase may do so. 921 if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) { 922 return; 923 } 924 925 if ( WP_TESTS_FORCE_KNOWN_BUGS ) { 926 return; 927 } 928 $tickets = PHPUnit_Util_Test::getTickets( get_class( $this ), $this->getName( false ) ); 929 foreach ( $tickets as $ticket ) { 930 if ( is_numeric( $ticket ) ) { 931 $this->knownWPBug( $ticket ); 932 } elseif ( 0 === strpos( $ticket, 'Plugin' ) ) { 933 $ticket = substr( $ticket, 6 ); 934 if ( $ticket && is_numeric( $ticket ) ) { 935 $this->knownPluginBug( $ticket ); 936 } 937 } 898 // For PHPUnit 5/6 as we're overloading a public PHPUnit native method in those versions. 899 if ( is_callable( 'PHPUnit\Framework\TestCase', 'checkRequirements' ) ) { 900 parent::checkRequirements(); 938 901 } 939 902 } 940 903