Keep the same DBLoadBalancerFactory in tests

Bug: T168242
Change-Id: I9b57b8bcfdcb823adb89213518abfdfb834ef223
This commit is contained in:
addshore 2017-06-29 16:10:32 +01:00
parent b3f0a59256
commit c8e87d5a23

View 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 );