jenkins-bot has submitted this change and it was merged.
Change subject: [IMPROV] Test unconnected page generators ......................................................................
[IMPROV] Test unconnected page generators
Add tests to the newly introduced generators from dff802ba.
Change-Id: I7204ab8da0feab9e9211c36ad9d5e2dcabd96eb0 --- M tests/pagegenerators_tests.py M tests/site_tests.py 2 files changed, 36 insertions(+), 0 deletions(-)
Approvals: John Vandenberg: Looks good to me, approved jenkins-bot: Verified
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py index dccd20c..ce51bfc 100755 --- a/tests/pagegenerators_tests.py +++ b/tests/pagegenerators_tests.py @@ -905,6 +905,31 @@ "user", "bot"]: self.assertIn(key, rcinfo.keys())
+ +class TestUnconnectedPageGenerator(DefaultSiteTestCase): + + """Test UnconnectedPageGenerator.""" + + def test_unconnected_with_repo(self): + """Test that the ItemPage returned raises NoPage.""" + if not self.site.data_repository(): + raise unittest.SkipTest('Site is not using a Wikibase repository') + cnt = 0 + for page in pagegenerators.UnconnectedPageGenerator(self.site, total=5): + self.assertRaises(pywikibot.NoPage, pywikibot.ItemPage.fromPage, + page) + cnt += 1 + self.assertLessEqual(cnt, 5) + + def test_unconnected_without_repo(self): + """Test that it raises a ValueError on sites without repository.""" + if self.site.data_repository(): + raise unittest.SkipTest('Site is using a Wikibase repository') + with self.assertRaises(ValueError): + for page in pagegenerators.UnconnectedPageGenerator(self.site, + total=5): + assert False # this shouldn't be reached + if __name__ == "__main__": try: unittest.main() diff --git a/tests/site_tests.py b/tests/site_tests.py index 0b9c726..5e3db05 100644 --- a/tests/site_tests.py +++ b/tests/site_tests.py @@ -811,6 +811,17 @@ self.assertNotIn(page.protection()['edit'][0], invalid_levels) self.assertLessEqual(len(pages), 10)
+ def test_unconnected(self): + """Test that the ItemPage returned raises NoPage.""" + if not self.site.data_repository(): + raise unittest.SkipTest('Site is not using a Wikibase repository') + cnt = 0 + for page in self.site.unconnected_pages(total=5): + self.assertRaises(pywikibot.NoPage, pywikibot.ItemPage.fromPage, + page) + cnt += 1 + self.assertLessEqual(cnt, 5) +
class TestImageUsage(DefaultSiteTestCase):
pywikibot-commits@lists.wikimedia.org