Aude has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/227636

Change subject: Follow up to Ied1db3f, use lazyPush, remove unused imports, etc.
......................................................................

Follow up to Ied1db3f, use lazyPush, remove unused imports, etc.

* moved AddUsagesForPageJobTest to includes/store test subdirectory
to be consistent with location of AddUsagesForPageJob.
* removed unused imports.
* use JobQueueGroup::lazyPush and EnqueueJob. (see how this is
done in WikiPage to add refreshLinks)
* add removeDuplicates to job specification.

Change-Id: If209bbeb8871a3ac9e6c45b3258006a6b45bbad5
(cherry picked from commit 70f58af9e315e96a228a376f5ac72cac1089f1e3)
---
M client/includes/Hooks/DataUpdateHookHandlers.php
M client/includes/Usage/EntityUsage.php
M client/includes/store/AddUsagesForPageJob.php
M client/includes/store/sql/DirectSqlStore.php
M client/tests/phpunit/MockClientStore.php
M client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php
R client/tests/phpunit/includes/store/AddUsagesForPageJobTest.php
7 files changed, 57 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/36/227636/1

diff --git a/client/includes/Hooks/DataUpdateHookHandlers.php 
b/client/includes/Hooks/DataUpdateHookHandlers.php
index 42d9d78..6776f65 100644
--- a/client/includes/Hooks/DataUpdateHookHandlers.php
+++ b/client/includes/Hooks/DataUpdateHookHandlers.php
@@ -3,8 +3,8 @@
 namespace Wikibase\Client\Hooks;
 
 use Content;
+use EnqueueJob;
 use JobQueueGroup;
-use JobSpecification;
 use LinksUpdate;
 use ManualLogEntry;
 use ParserCache;
@@ -14,7 +14,6 @@
 use User;
 use Wikibase\Client\Store\AddUsagesForPageJob;
 use Wikibase\Client\Store\UsageUpdater;
-use Wikibase\Client\Usage\EntityUsage;
 use Wikibase\Client\Usage\ParserOutputUsageAccumulator;
 use Wikibase\Client\WikibaseClient;
 use WikiPage;
@@ -162,7 +161,7 @@
         * Implemented to update usage tracking information via UsageUpdater.
         *
         * @param ParserOutput $parserOutput
-        * @param $title $title
+        * @param Title $title
         */
        public function doParserCacheSaveComplete( ParserOutput $parserOutput, 
Title $title ) {
                $usageAcc = new ParserOutputUsageAccumulator( $parserOutput );
@@ -186,7 +185,9 @@
                //TODO: Before posting a job, check slave database. If no 
changes are needed, skip update.
 
                $addUsagesForPageJob = AddUsagesForPageJob::newSpec( $title, 
$usageAcc->getUsages(), $touched );
-               $this->jobScheduler->push( $addUsagesForPageJob );
+               $enqueueJob = EnqueueJob::newFromLocalJobs( 
$addUsagesForPageJob );
+
+               $this->jobScheduler->lazyPush( $enqueueJob );
        }
 
        /**
diff --git a/client/includes/Usage/EntityUsage.php 
b/client/includes/Usage/EntityUsage.php
index ba6938e..864efce 100644
--- a/client/includes/Usage/EntityUsage.php
+++ b/client/includes/Usage/EntityUsage.php
@@ -4,7 +4,6 @@
 
 use InvalidArgumentException;
 use Wikibase\DataModel\Entity\EntityId;
-use Wikibase\DataModel\Entity\EntityIdParsingException;
 
 /**
  * Value object representing the usage of an entity. This includes information 
about
diff --git a/client/includes/store/AddUsagesForPageJob.php 
b/client/includes/store/AddUsagesForPageJob.php
index 90f2e16..335fd3e 100644
--- a/client/includes/store/AddUsagesForPageJob.php
+++ b/client/includes/store/AddUsagesForPageJob.php
@@ -64,7 +64,12 @@
                        'touched' => $touched
                );
 
-               return new JobSpecification( 'wikibase-addUsagesForPage', 
$jobParams, array(), $title );
+               return new JobSpecification(
+                       'wikibase-addUsagesForPage',
+                       $jobParams,
+                       array( 'removeDuplicates' => true ),
+                       $title
+               );
        }
 
        /**
diff --git a/client/includes/store/sql/DirectSqlStore.php 
b/client/includes/store/sql/DirectSqlStore.php
index 40df459..80d42cf 100644
--- a/client/includes/store/sql/DirectSqlStore.php
+++ b/client/includes/store/sql/DirectSqlStore.php
@@ -476,4 +476,5 @@
                        $this->getSubscriptionManager()
                );
        }
+
 }
diff --git a/client/tests/phpunit/MockClientStore.php 
b/client/tests/phpunit/MockClientStore.php
index 80d015a..edf4f11 100644
--- a/client/tests/phpunit/MockClientStore.php
+++ b/client/tests/phpunit/MockClientStore.php
@@ -198,4 +198,5 @@
                        $this->getSubscriptionManager()
                );
        }
+
 }
diff --git a/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php 
b/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php
index d0777ea..ac761a8 100644
--- a/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php
+++ b/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php
@@ -2,7 +2,6 @@
 
 namespace Wikibase\Client\Tests\Hooks;
 
-use Job;
 use JobQueueGroup;
 use JobSpecification;
 use ParserOutput;
@@ -36,7 +35,13 @@
         *
         * @return UsageUpdater
         */
-       private function newUsageUpdater( Title $title, array $expectedUsages = 
null, $touched = null, $prune = true, $add = true ) {
+       private function newUsageUpdater(
+               Title $title,
+               array $expectedUsages = null,
+               $touched = null,
+               $prune = true,
+               $add = true
+       ) {
                $usageUpdater = $this->getMockBuilder( 
'Wikibase\Client\Store\UsageUpdater' )
                        ->disableOriginalConstructor()
                        ->getMock();
@@ -80,32 +85,54 @@
         *
         * @return JobQueueGroup
         */
-       private function newJobScheduler( Title $title, array $expectedUsages = 
null, $touched = null, $useJobQueue = false ) {
+       private function newJobScheduler(
+               Title $title,
+               array $expectedUsages = null,
+               $touched = null,
+               $useJobQueue = false
+       ) {
                $jobScheduler = $this->getMockBuilder( 'JobQueueGroup' )
                        ->disableOriginalConstructor()
                        ->getMock();
 
                if ( empty( $expectedUsages ) || !$useJobQueue ) {
                        $jobScheduler->expects( $this->never() )
-                               ->method( 'push' );
+                               ->method( 'lazyPush' );
                } else {
                        $expectedUsageArray = array_map( function ( EntityUsage 
$usage ) {
                                return $usage->asArray();
                        }, $expectedUsages );
 
                        $params = array(
-                               'pageId' => $title->getArticleID(),
-                               'usages' => $expectedUsageArray,
-                               'touched' => $touched
+                               'jobsByWiki' => array(
+                                       wfWikiID() => array(
+                                               array(
+                                                       'type' => 
'wikibase-addUsagesForPage',
+                                                       'params' => array(
+                                                               'pageId' => 
$title->getArticleID(),
+                                                               'usages' => 
$expectedUsageArray,
+                                                               'touched' => 
$touched
+                                                       ),
+                                                       'opts' => array(
+                                                               
'removeDuplicates' => true
+                                                       ),
+                                                       'title' => array(
+                                                               'ns' => NS_MAIN,
+                                                               'key' => 
'Oxygen'
+                                                       )
+                                               )
+                                       )
+                               )
                        );
 
                        $jobScheduler->expects( $this->once() )
-                               ->method( 'push' )
-                               ->with( $this->callback( function ( 
JobSpecification $job ) use ( $params ) {
-                                       
DataUpdateHookHandlersTest::assertEquals( 'wikibase-addUsagesForPage', 
$job->getType() );
+                               ->method( 'lazyPush' )
+                               ->with( $this->callback( function ( $job ) use 
( $params ) {
+                                       
DataUpdateHookHandlersTest::assertEquals( 'enqueue', $job->getType() );
                                        
DataUpdateHookHandlersTest::assertEquals( $params, $job->getParams() );
                                        return true;
                                } ) );
+
                }
 
                return $jobScheduler;
@@ -120,7 +147,13 @@
         *
         * @return DataUpdateHookHandlers
         */
-       private function newDataUpdateHookHandlers( Title $title, array 
$expectedUsages = null, $touched = null, $prune = true, $asyncAdd = false ) {
+       private function newDataUpdateHookHandlers(
+               Title $title,
+               array $expectedUsages = null,
+               $touched = null,
+               $prune = true,
+               $asyncAdd = false
+       ) {
                $usageUpdater = $this->newUsageUpdater( $title, 
$expectedUsages, $touched, $prune, !$asyncAdd );
                $jobScheduler = $this->newJobScheduler( $title, 
$expectedUsages, $touched, $asyncAdd );
 
diff --git a/client/tests/phpunit/includes/AddUsagesForPageJobTest.php 
b/client/tests/phpunit/includes/store/AddUsagesForPageJobTest.php
similarity index 100%
rename from client/tests/phpunit/includes/AddUsagesForPageJobTest.php
rename to client/tests/phpunit/includes/store/AddUsagesForPageJobTest.php

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If209bbeb8871a3ac9e6c45b3258006a6b45bbad5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: wmf/1.26wmf16
Gerrit-Owner: Aude <aude.w...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to