Keep the same DBLoadBalancerFactory in tests
authoraddshore <addshorewiki@gmail.com>
Thu, 29 Jun 2017 15:10:32 +0000 (16:10 +0100)
committeraddshore <addshorewiki@gmail.com>
Thu, 29 Jun 2017 15:21:57 +0000 (16:21 +0100)
Bug: T168242
Change-Id: I9b57b8bcfdcb823adb89213518abfdfb834ef223

tests/phpunit/MediaWikiTestCase.php

index c1ada45..c2eebfa 100644 (file)
@@ -215,6 +215,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        protected static function resetGlobalServices( Config $bootstrapConfig = null ) {
                $oldServices = MediaWikiServices::getInstance();
                $oldConfigFactory = $oldServices->getConfigFactory();
+               $oldLoadBalancerFactory = $oldServices->getDBLoadBalancerFactory();
 
                $testConfig = self::makeTestConfig( $bootstrapConfig );
 
@@ -223,6 +224,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                $serviceLocator = MediaWikiServices::getInstance();
                self::installTestServices(
                        $oldConfigFactory,
+                       $oldLoadBalancerFactory,
                        $serviceLocator
                );
                return $serviceLocator;
@@ -278,12 +280,14 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
        /**
         * @param ConfigFactory $oldConfigFactory
+        * @param LBFactory $oldLoadBalancerFactory
         * @param MediaWikiServices $newServices
         *
         * @throws MWException
         */
        private static function installTestServices(
                ConfigFactory $oldConfigFactory,
+               LBFactory $oldLoadBalancerFactory,
                MediaWikiServices $newServices
        ) {
                // Use bootstrap config for all configuration.
@@ -297,6 +301,13 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                                [ 'main' =>  $bootstrapConfig ]
                        )
                );
+               $newServices->resetServiceForTesting( 'DBLoadBalancerFactory' );
+               $newServices->redefineService(
+                       'DBLoadBalancerFactory',
+                       function ( MediaWikiServices $services ) use ( $oldLoadBalancerFactory ) {
+                               return $oldLoadBalancerFactory;
+                       }
+               );
        }
 
        /**
@@ -829,6 +840,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
                $oldInstance = MediaWikiServices::getInstance();
                $oldConfigFactory = $oldInstance->getConfigFactory();
+               $oldLoadBalancerFactory = $oldInstance->getDBLoadBalancerFactory();
 
                $testConfig = self::makeTestConfig( null, $configOverrides );
                $newInstance = new MediaWikiServices( $testConfig );
@@ -847,6 +859,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
                self::installTestServices(
                        $oldConfigFactory,
+                       $oldLoadBalancerFactory,
                        $newInstance
                );
                MediaWikiServices::forceGlobalInstance( $newInstance );