jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/403838 )

Change subject: Steal model fixtures for TestHelper; add dirty tricks
......................................................................


Steal model fixtures for TestHelper; add dirty tricks

Tricks allow for insertion by raw ID.

Bug: T184140
Change-Id: I762106adaff40cf6df151f9479704b730c163308
---
M tests/phpunit/includes/Storage/SqlModelLookupTest.php
M tests/phpunit/includes/TestHelper.php
2 files changed, 62 insertions(+), 45 deletions(-)

Approvals:
  Ladsgroup: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/phpunit/includes/Storage/SqlModelLookupTest.php 
b/tests/phpunit/includes/Storage/SqlModelLookupTest.php
index 31f7bf8..c69eabe 100644
--- a/tests/phpunit/includes/Storage/SqlModelLookupTest.php
+++ b/tests/phpunit/includes/Storage/SqlModelLookupTest.php
@@ -14,10 +14,6 @@
  */
 class SqlModelLookupTest extends MediaWikiLangTestCase {
 
-       const DAMAGING_OLD = 1;
-       const REVERTED = 2;
-       const DAMAGING = 3;
-
        /**
         * @var SqlModelLookup
         */
@@ -27,52 +23,22 @@
                parent::setUp();
 
                $this->tablesUsed[] = 'ores_model';
-               self::insertModelData();
+               TestHelper::insertModelData();
                $this->storage = new SqlModelLookup( 
MediaWikiServices::getInstance()->getDBLoadBalancer() );
-       }
-
-       public static function insertModelData() {
-               $db = \wfGetDB( DB_MASTER );
-               $dump = [
-                       [
-                               'oresm_id' => self::DAMAGING,
-                               'oresm_name' => 'damaging',
-                               'oresm_version' => '0.0.2',
-                               'oresm_is_current' => true
-                       ],
-                       [
-                               'oresm_id' => self::REVERTED,
-                               'oresm_name' => 'reverted',
-                               'oresm_version' => '0.0.1',
-                               'oresm_is_current' => true
-                       ],
-                       [
-                               'oresm_id' => self::DAMAGING_OLD,
-                               'oresm_name' => 'damaging',
-                               'oresm_version' => '0.0.1',
-                               'oresm_is_current' => false
-                       ],
-               ];
-
-               $db->delete( 'ores_model', '*' );
-
-               foreach ( $dump as $row ) {
-                       $db->insert( 'ores_model', $row );
-               }
        }
 
        public function testGetModels() {
                $models = $this->storage->getModels();
                $expected = [
-                       'reverted' => [ 'id' => self::REVERTED, 'version' => 
'0.0.1' ],
-                       'damaging' => [ 'id' => self::DAMAGING, 'version' => 
'0.0.2' ]
+                       'reverted' => [ 'id' => TestHelper::REVERTED, 'version' 
=> '0.0.1' ],
+                       'damaging' => [ 'id' => TestHelper::DAMAGING, 'version' 
=> '0.0.2' ]
                ];
                $this->assertEquals( $expected, $models );
        }
 
        public function testGetModelId() {
-               $this->assertEquals( self::REVERTED, 
$this->storage->getModelId( 'reverted' ) );
-               $this->assertEquals( self::DAMAGING, 
$this->storage->getModelId( 'damaging' ) );
+               $this->assertEquals( TestHelper::REVERTED, 
$this->storage->getModelId( 'reverted' ) );
+               $this->assertEquals( TestHelper::DAMAGING, 
$this->storage->getModelId( 'damaging' ) );
        }
 
        public function testGetInvalidModelId() {
diff --git a/tests/phpunit/includes/TestHelper.php 
b/tests/phpunit/includes/TestHelper.php
index de6455a..ccc5917 100644
--- a/tests/phpunit/includes/TestHelper.php
+++ b/tests/phpunit/includes/TestHelper.php
@@ -12,6 +12,10 @@
 
 class TestHelper {
 
+       const DAMAGING_OLD = 1;
+       const REVERTED = 2;
+       const DAMAGING = 3;
+
        public static function getTablesUsed() {
                $tablesUsed = [
                        'recentchanges',
@@ -24,20 +28,67 @@
        }
 
        public static function clearOresTables() {
-               wfGetDB( DB_MASTER )->delete( 'recentchanges', '*', __METHOD__ 
);
-               wfGetDB( DB_MASTER )->delete( 'ores_model', '*', __METHOD__ );
-               wfGetDB( DB_MASTER )->delete( 'ores_classification', '*', 
__METHOD__ );
+               \wfGetDB( DB_MASTER )->delete( 'recentchanges', '*', __METHOD__ 
);
+               \wfGetDB( DB_MASTER )->delete( 'ores_model', '*', __METHOD__ );
+               \wfGetDB( DB_MASTER )->delete( 'ores_classification', '*', 
__METHOD__ );
        }
 
-       public static function insertOresData( Revision $revision, $scores ) {
+       public static function insertModelData() {
+               $db = \wfGetDB( DB_MASTER );
+               $dump = [
+                       [
+                               'oresm_id' => self::DAMAGING,
+                               'oresm_name' => 'damaging',
+                               'oresm_version' => '0.0.2',
+                               'oresm_is_current' => true
+                       ],
+                       [
+                               'oresm_id' => self::REVERTED,
+                               'oresm_name' => 'reverted',
+                               'oresm_version' => '0.0.1',
+                               'oresm_is_current' => true
+                       ],
+                       [
+                               'oresm_id' => self::DAMAGING_OLD,
+                               'oresm_name' => 'damaging',
+                               'oresm_version' => '0.0.1',
+                               'oresm_is_current' => false
+                       ],
+               ];
+
+               $db->delete( 'ores_model', '*' );
+
+               foreach ( $dump as $row ) {
+                       $db->insert( 'ores_model', $row );
+               }
+       }
+
+       /**
+        * @param Revision|int $revision
+        * @param array $scores
+        */
+       public static function insertOresData( $revision, $scores ) {
+               if ( is_numeric( $revision ) ) {
+                       $revisionId = $revision;
+               } else {
+                       $revisionId = $revision->getId();
+               }
                /** @var ModelLookup $modelLookup */
                $modelLookup = MediaWikiServices::getInstance()->getService( 
'ORESModelLookup' );
                // TODO: Use ScoreStorage
                $dbData = [];
                foreach ( $scores as $modelName => $score ) {
+                       // Dirty trick that lets tests insert data for old 
models by
+                       // specifying its ID.
+                       if ( is_numeric( $modelName ) ) {
+                               $modelId = $modelName;
+                       } else {
+                               $modelId = $modelLookup->getModelId( $modelName 
);
+                       }
+
                        $dbData[] = [
-                               'oresc_rev' => $revision->getId(),
-                               'oresc_model' => $modelLookup->getModelId( 
$modelName ),
+                               'oresc_rev' => $revisionId,
+                               'oresc_model' => $modelId,
                                'oresc_class' => 1,
                                'oresc_probability' => $score,
                                'oresc_is_predicted' => 0

-- 
To view, visit https://gerrit.wikimedia.org/r/403838
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I762106adaff40cf6df151f9479704b730c163308
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ORES
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to