From e37bb560c49380299ff626ad63db91fc98e05eb6 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 23 Sep 2016 15:59:22 -0700 Subject: [PATCH] Avoid DatabaseBase type errors in setupDatabaseWithTestPrefix() Change-Id: I94cc0672a487d547a09c27997fe36274d7d62977 --- tests/phpunit/MediaWikiTestCase.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/phpunit/MediaWikiTestCase.php b/tests/phpunit/MediaWikiTestCase.php index 43577ca7b9..3cfd0b6da9 100644 --- a/tests/phpunit/MediaWikiTestCase.php +++ b/tests/phpunit/MediaWikiTestCase.php @@ -1178,19 +1178,23 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase { * Gets master database connections for all of the ExternalStoreDB * stores configured in $wgDefaultExternalStore. * - * @return array Array of DatabaseBase master connections + * @return DatabaseBase[] Array of DatabaseBase master connections */ protected static function getExternalStoreDatabaseConnections() { global $wgDefaultExternalStore; + /** @var ExternalStoreDB $externalStoreDB */ $externalStoreDB = ExternalStore::getStoreObject( 'DB' ); $defaultArray = (array) $wgDefaultExternalStore; $dbws = []; foreach ( $defaultArray as $url ) { if ( strpos( $url, 'DB://' ) === 0 ) { list( $proto, $cluster ) = explode( '://', $url, 2 ); - $dbw = $externalStoreDB->getMaster( $cluster ); + // Avoid getMaster() because setupDatabaseWithTestPrefix() + // requires DatabaseBase instead of plain DBConnRef/IDatabase + $lb = $externalStoreDB->getLoadBalancer( $cluster ); + $dbw = $lb->getConnection( DB_MASTER ); $dbws[] = $dbw; } } -- 2.20.1