diff options
author | Timo Tijhof <krinkle@fastmail.com> | 2024-06-11 22:53:13 +0100 |
---|---|---|
committer | DannyS712 <dannys712.wiki@gmail.com> | 2024-06-11 22:47:42 +0000 |
commit | 9153336c7bdb2a7b5acd61465a1eceafcb306380 (patch) | |
tree | 3582c7f7c3d9146dd48f2237b27cb91e54e00269 /tests/phpunit/integration/includes/db | |
parent | dd0af798e6f357b8cb395a790dadc7285bfd3503 (diff) | |
download | mediawikicore-9153336c7bdb2a7b5acd61465a1eceafcb306380.tar.gz mediawikicore-9153336c7bdb2a7b5acd61465a1eceafcb306380.zip |
rdbms: Widen `@covers` tags in phpunit tests
> Given all called methods are de-facto and liberally claimed, and
> that we keep the coverage limited to the subject class, it maintains
> the spirit and intent by listing the class explicitly instead.
>
> PHPUnit offers a more precise tool when you need it (i.e. when testing
> legacy monster/god classes), but for well-written code, the
> class-wide tag is exactly what you want.
>
> We lose useful coverage and waste valuable time on keeping tags
> accurate through refactors (or worse, forget to do so).
> Tracking tiny per-method details wastes time in realizing (and
> fixing) when people inevitably don't keep them in sync, and time
> lost in finding uncovered code to write tests to realize it was
> already covered but "not yet claimed".
Ref https://gerrit.wikimedia.org/r/q/owner:Krinkle+is:merged+message:Widen
Change-Id: I0fcbdb2936130b725000a899d733ec306e93b273
Diffstat (limited to 'tests/phpunit/integration/includes/db')
3 files changed, 10 insertions, 150 deletions
diff --git a/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php b/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php index 5fd0942fbe1e..e714b4b8913b 100644 --- a/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php +++ b/tests/phpunit/integration/includes/db/DatabaseMysqlTest.php @@ -13,6 +13,9 @@ use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\TransactionManager; /** + * @covers \Wikimedia\Rdbms\Database + * @covers \Wikimedia\Rdbms\DatabaseMySQL + * @covers \Wikimedia\Rdbms\Platform\MySQLPlatform * @group mysql * @group Database * @group medium @@ -44,9 +47,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { parent::tearDown(); } - /** - * @covers \Wikimedia\Rdbms\Database::query() - */ public function testQueryTimeout() { try { $this->conn->query( @@ -62,9 +62,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 'x', $row->v, "Still connected/usable" ); } - /** - * @covers \Wikimedia\Rdbms\Database::query() - */ public function testConnectionKill() { try { $this->conn->query( 'KILL (SELECT connection_id())', __METHOD__ ); @@ -77,11 +74,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 'x', $row->v, "Recovered" ); } - /** - * @covers \Wikimedia\Rdbms\Database::query() - * @covers \Wikimedia\Rdbms\Database::rollback() - * @covers \Wikimedia\Rdbms\Database::flushSession() - */ public function testConnectionLossQuery() { $row = $this->conn->query( 'SELECT connection_id() AS id', __METHOD__ )->fetchObject(); $encId = intval( $row->id ); @@ -155,9 +147,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $adminConn->close( __METHOD__ ); } - /** - * @covers \Wikimedia\Rdbms\Database::getScopedLockAndFlush() - */ public function testConnectionLossScopedLock() { $row = $this->conn->query( 'SELECT connection_id() AS id', __METHOD__ )->fetchObject(); $encId = intval( $row->id ); @@ -182,12 +171,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->conn->unlock( 'x', __METHOD__ ); } - /** - * @covers \Wikimedia\Rdbms\Database::query() - * @covers \Wikimedia\Rdbms\Database::cancelAtomic() - * @covers \Wikimedia\Rdbms\Database::rollback() - * @covers \Wikimedia\Rdbms\Database::flushSession() - */ public function testTransactionError() { $this->assertSame( TransactionManager::STATUS_TRX_NONE, $this->conn->trxStatus() ); @@ -249,10 +232,7 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $adminConn->close( __METHOD__ ); } - /** - * @return DatabaseMySQL - */ - private function newConnection() { + private function newConnection(): DatabaseMySQL { $lb = MediaWikiServices::getInstance()->getDBLoadBalancer(); $dbFactory = MediaWikiServices::getInstance()->getDatabaseFactory(); /** @var DatabaseMySQL $conn */ @@ -271,10 +251,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { return $conn; } - /** - * @covers \Wikimedia\Rdbms\Database::insert() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsert() { $dTable = $this->createDestTable(); @@ -291,10 +267,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->dropDestTable(); } - /** - * @covers \Wikimedia\Rdbms\Database::insert() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsertIgnore() { $dTable = $this->createDestTable(); @@ -316,10 +288,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->dropDestTable(); } - /** - * @covers \Wikimedia\Rdbms\Database::replace() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterReplace() { $dTable = $this->createDestTable(); @@ -341,10 +309,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->dropDestTable(); } - /** - * @covers \Wikimedia\Rdbms\Database::upsert() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterUpsert() { $dTable = $this->createDestTable(); @@ -370,10 +334,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->dropDestTable(); } - /** - * @covers \Wikimedia\Rdbms\Database::insertSelect() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsertSelect() { $sTable = $this->createSourceTable(); $dTable = $this->createDestTable(); @@ -403,10 +363,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->dropDestTable(); } - /** - * @covers \Wikimedia\Rdbms\Database::insertSelect() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsertSelectIgnore() { $sTable = $this->createSourceTable(); $dTable = $this->createDestTable(); @@ -500,13 +456,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->conn->affectedRows(), 'Key conflict, nothing changed on database' ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseMySQL::fieldExists() - * @covers \Wikimedia\Rdbms\DatabaseMySQL::indexExists() - * @covers \Wikimedia\Rdbms\DatabaseMySQL::indexUnique() - * @covers \Wikimedia\Rdbms\DatabaseMySQL::fieldInfo() - * @covers \Wikimedia\Rdbms\DatabaseMySQL::indexInfo() - */ public function testFieldAndIndexInfo() { global $wgDBname; @@ -586,8 +535,6 @@ class DatabaseMysqlTest extends \MediaWikiIntegrationTestCase { /** * Insert a null value into a field that is not nullable using INSERT IGNORE - * - * @covers \Wikimedia\Rdbms\DatabaseMySQL::checkInsertWarnings */ public function testInsertIgnoreNull() { $this->expectException( DBQueryError::class ); diff --git a/tests/phpunit/integration/includes/db/DatabasePostgresTest.php b/tests/phpunit/integration/includes/db/DatabasePostgresTest.php index 06b2a26fc40b..93e21aaae966 100644 --- a/tests/phpunit/integration/includes/db/DatabasePostgresTest.php +++ b/tests/phpunit/integration/includes/db/DatabasePostgresTest.php @@ -8,6 +8,9 @@ use Wikimedia\ScopedCallback; use Wikimedia\TestingAccessWrapper; /** + * @covers \Wikimedia\Rdbms\Database + * @covers \Wikimedia\Rdbms\DatabasePostgres + * @covers \Wikimedia\Rdbms\Platform\PostgresPlatform * @group Database */ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { @@ -86,7 +89,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { /** * FIXME: See https://phabricator.wikimedia.org/T259084. * @group Broken - * @covers \Wikimedia\Rdbms\DatabasePostgres::insert */ public function testInsertIgnoreOld() { if ( $this->db->getServerVersion() < 9.5 ) { @@ -107,7 +109,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { /** * FIXME: See https://phabricator.wikimedia.org/T259084. * @group Broken - * @covers \Wikimedia\Rdbms\DatabasePostgres::insert */ public function testInsertIgnoreNew() { if ( $this->db->getServerVersion() < 9.5 ) { @@ -178,7 +179,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { /** * FIXME: See https://phabricator.wikimedia.org/T259084. * @group Broken - * @covers \Wikimedia\Rdbms\DatabasePostgres::doInsertSelectNative */ public function testInsertSelectIgnoreOld() { if ( $this->db->getServerVersion() < 9.5 ) { @@ -199,7 +199,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { /** * FIXME: See https://phabricator.wikimedia.org/T259084. * @group Broken - * @covers \Wikimedia\Rdbms\DatabasePostgres::doInsertSelectNative */ public function testInsertSelectIgnoreNew() { if ( $this->db->getServerVersion() < 9.5 ) { @@ -209,9 +208,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->doTestInsertSelectIgnore(); } - /** - * @covers \Wikimedia\Rdbms\DatabasePostgres::getAttributes - */ public function testAttributes() { $dbFactory = $this->getServiceContainer()->getDatabaseFactory(); $this->assertTrue( @@ -219,10 +215,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { ); } - /** - * @covers \Wikimedia\Rdbms\Database::insert() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsert() { $rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ]; @@ -234,10 +226,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->db->affectedRows() ); } - /** - * @covers \Wikimedia\Rdbms\Database::insert() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsertIgnore() { $rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ]; @@ -254,10 +242,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->db->affectedRows() ); } - /** - * @covers \Wikimedia\Rdbms\Database::replace() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterReplace() { $rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ]; @@ -274,10 +258,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->db->affectedRows() ); } - /** - * @covers \Wikimedia\Rdbms\Database::upsert() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterUpsert() { $rows = [ [ 'k' => 'Luca', 'v' => mt_rand( 1, 100 ), 't' => time() ] ]; $set = [ @@ -298,10 +278,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->db->affectedRows() ); } - /** - * @covers \Wikimedia\Rdbms\Database::insertSelect() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsertSelect() { $rows = [ [ 'sk' => 'Luca', 'sv' => mt_rand( 1, 100 ), 'st' => time() ] ]; $this->db->insert( self::SRC_TABLE, $rows, __METHOD__, 'IGNORE' ); @@ -328,10 +304,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->db->affectedRows() ); } - /** - * @covers \Wikimedia\Rdbms\Database::insertSelect() - * @covers \Wikimedia\Rdbms\Database::insertId() - */ public function testInsertIdAfterInsertSelectIgnore() { $rows = [ [ 'sk' => 'Luca', 'sv' => mt_rand( 1, 100 ), 'st' => time() ] ]; $this->db->insert( self::SRC_TABLE, $rows, __METHOD__, 'IGNORE' ); @@ -370,13 +342,6 @@ class DatabasePostgresTest extends MediaWikiIntegrationTestCase { $this->assertSame( 1, $this->db->affectedRows() ); } - /** - * @covers \Wikimedia\Rdbms\DatabasePostgres::fieldExists() - * @covers \Wikimedia\Rdbms\DatabasePostgres::indexExists() - * @covers \Wikimedia\Rdbms\DatabasePostgres::indexUnique() - * @covers \Wikimedia\Rdbms\DatabasePostgres::fieldInfo() - * @covers \Wikimedia\Rdbms\DatabasePostgres::indexInfo() - */ public function testFieldAndIndexInfo() { global $wgDBname; diff --git a/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php b/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php index 7b76dba61857..357dd5d73d24 100644 --- a/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php +++ b/tests/phpunit/integration/includes/db/DatabaseSqliteTest.php @@ -11,6 +11,9 @@ use Wikimedia\Rdbms\ResultWrapper; use Wikimedia\Rdbms\TransactionProfiler; /** + * @covers \Wikimedia\Rdbms\Database + * @covers \Wikimedia\Rdbms\DatabaseSqlite + * @covers \Wikimedia\Rdbms\Platform\SqlitePlatform * @group sqlite * @group Database * @group medium @@ -126,7 +129,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { /** * @dataProvider provideAddQuotes() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::addQuotes */ public function testAddQuotes( $value, $expected ) { // check quoting @@ -150,9 +152,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { } } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::duplicateTableStructure - */ public function testDuplicateTableStructure() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $db->query( 'CREATE TABLE foo(foo, barfoo)' ); @@ -202,9 +201,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::duplicateTableStructure - */ public function testDuplicateTableStructureVirtual() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); if ( $db->getFulltextSearchModule() != 'FTS3' ) { @@ -233,9 +229,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::deleteJoin - */ public function testDeleteJoin() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $db->query( 'CREATE TABLE a (a_1)', __METHOD__ ); @@ -274,9 +267,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertTrue( $result, $result ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId - */ public function testInsertIdType() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); @@ -288,9 +278,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertTrue( $db->close(), "closing database" ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert - */ public function testInsertAffectedRows() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $db->query( 'CREATE TABLE testInsertAffectedRows ( foo )', __METHOD__ ); @@ -320,9 +307,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertFalse( (bool)$row['a'] ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::__toString - */ public function testToString() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); @@ -331,16 +315,12 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertStringContainsString( 'sqlite object', $toString ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::getAttributes() - */ public function testsAttributes() { $dbFactory = $this->getServiceContainer()->getDatabaseFactory(); $this->assertTrue( $dbFactory->attributesFromType( 'sqlite' )[Database::ATTR_DB_LEVEL_LOCKING] ); } /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert() * @param string $version * @param string $table * @param array $rows @@ -378,7 +358,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { } /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::replace() * @param string $version * @param string $table * @param array $ukeys @@ -418,10 +397,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { ]; } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId() - */ public function testInsertIdAfterInsert() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $dTable = $this->createDestTable( $db ); @@ -437,10 +412,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 0, $db->insertId() ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insert() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId() - */ public function testInsertIdAfterInsertIgnore() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $dTable = $this->createDestTable( $db ); @@ -461,10 +432,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 0, $db->insertId() ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::replace() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId() - */ public function testInsertIdAfterReplace() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $dTable = $this->createDestTable( $db ); @@ -485,10 +452,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 0, $db->insertId() ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::upsert() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId() - */ public function testInsertIdAfterUpsert() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $dTable = $this->createDestTable( $db ); @@ -518,10 +481,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 0, $db->insertId() ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertSelect() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId() - */ public function testInsertIdAfterInsertSelect() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $sTable = $this->createSourceTable( $db ); @@ -553,10 +512,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 0, $db->insertId() ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertSelect() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::insertId() - */ public function testInsertIdAfterInsertSelectIgnore() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $sTable = $this->createSourceTable( $db ); @@ -600,13 +555,6 @@ class DatabaseSqliteTest extends \MediaWikiIntegrationTestCase { $this->assertSame( 0, $db->insertId() ); } - /** - * @covers \Wikimedia\Rdbms\DatabaseSqlite::fieldExists() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::indexExists() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::indexUnique() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::fieldInfo() - * @covers \Wikimedia\Rdbms\DatabaseSqlite::indexInfo() - */ public function testFieldAndIndexInfo() { $db = DatabaseSqlite::newStandaloneInstance( ':memory:' ); $db->query( |