jenkins-bot has submitted this change and it was merged.
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
---
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(-)
Approvals:
Aude: Looks good to me, approved
jenkins-bot: Verified
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 f09938e..5a78d04 100644
--- a/client/tests/phpunit/MockClientStore.php
+++ b/client/tests/phpunit/MockClientStore.php
@@ -202,4 +202,5 @@
$this->getSubscriptionManager()
);
}
+
}
diff --git a/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php
b/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php
index 45b978a..f2b3976 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/227635
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If209bbeb8871a3ac9e6c45b3258006a6b45bbad5
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: wmf/1.26wmf13
Gerrit-Owner: Aude <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits