jenkins-bot has submitted this change and it was merged.

Change subject: Remove item count output in page generators
......................................................................


Remove item count output in page generators

Currently WikibaseSearchItemPageGenerator always
fetches all items twice in order to display an item count,
and then yield each item.

Also do not fetch all entities for test_searchitem*.

The test only needs to confirm one item is fetched,
and currently it can halt Travis builds due to fetching
~5000 items twice taking 10 mins without any output.

Also add a note to WikidataQueryPageGenerator about its item count.

Change-Id: Ia8b0e97930a94945d3ed2cdf593887ebff8a3e5c
(manually cherry-picked from c9f51be)
---
M pywikibot/pagegenerators.py
M tests/pagegenerators_tests.py
2 files changed, 15 insertions(+), 6 deletions(-)

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



diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index e6420a4..d83d85d 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -2295,7 +2295,8 @@
 
     wd_query = wdquery.WikidataQuery(cacheMaxAge=0)
     data = wd_query.query(wd_queryset)
-
+    # This item count should not be copied by other generators,
+    # and should be removed when wdq becomes a real generator (T135592)
     pywikibot.output(u'retrieved %d items' % data[u'status'][u'items'])
     for item in data[u'items']:
         page = pywikibot.ItemPage(repo, u'Q{0}'.format(item))
@@ -2332,7 +2333,6 @@
     repo = site.data_repository()
 
     data = repo.search_entities(text, language, limit=total, site=site)
-    pywikibot.output(u'retrieved %d items' % len(list(data)))
     for item in data:
         yield pywikibot.ItemPage(repo, item['id'])
 
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py
index 967b95e..b19d0b5 100755
--- a/tests/pagegenerators_tests.py
+++ b/tests/pagegenerators_tests.py
@@ -708,21 +708,30 @@
         gf.handleArg('-searchitem:abc')
         gen = gf.getCombinedGenerator()
         self.assertIsNotNone(gen)
-        self.assertGreater(len(set(gen)), 0)
+        self.assertIsNotNone(next(gen))
 
     def test_searchitem_language(self):
         """Test -searchitem with custom language specified."""
         gf = pagegenerators.GeneratorFactory(site=self.site)
         gf.handleArg('-searchitem:pl:abc')
+        gf.handleArg('-limit:1')
         gen = gf.getCombinedGenerator()
         self.assertIsNotNone(gen)
-        pages = set(gen)
+        # ABC disambiguation
+        page1 = next(gen)
+        self.assertEqual(page1.title(), 'Q286874')
+
         gf = pagegenerators.GeneratorFactory(site=self.site)
         gf.handleArg('-searchitem:en:abc')
+        gf.handleArg('-limit:2')
         gen = gf.getCombinedGenerator()
         self.assertIsNotNone(gen)
-        pages2 = set(gen)
-        self.assertNotEqual(pages, pages2)
+        # American Broadcasting Company
+        page1 = next(gen)
+        self.assertEqual(page1.title(), 'Q169889')
+        # ABC disambiguation
+        page2 = next(gen)
+        self.assertEqual(page2.title(), 'Q286874')
 
 
 class TestLogeventsFactoryGenerator(DefaultSiteTestCase,

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia8b0e97930a94945d3ed2cdf593887ebff8a3e5c
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: 2.0
Gerrit-Owner: John Vandenberg <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to