jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1147136?usp=email )
Change subject: [bugfix] Skip further test in test_allpages() if a page title
is invalid
......................................................................
[bugfix] Skip further test in test_allpages() if a page title is invalid
Bug: T394598
Change-Id: I1d6cce539a30f7f76ffae9cf1978344e87d26f7f
---
M tests/site_generators_tests.py
1 file changed, 27 insertions(+), 26 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/site_generators_tests.py b/tests/site_generators_tests.py
index c16c219..daf0f39 100755
--- a/tests/site_generators_tests.py
+++ b/tests/site_generators_tests.py
@@ -17,6 +17,7 @@
APIError,
Error,
HiddenKeyError,
+ InvalidTitleError,
NoPageError,
TimeoutError,
)
@@ -243,46 +244,46 @@
self.assertIsInstance(target, pywikibot.Page)
self.assertFalse(target.isRedirectPage())
+ def validate_page(self, page, *, namespace: int = 0) -> bool:
+ """Validate page, title and namespace.
+
+ Allow further tests if title is valid.
+ """
+ self.assertIsInstance(page, pywikibot.Page)
+ self.assertTrue(page.exists())
+ try:
+ self.assertEqual(page.namespace(), namespace)
+ except InvalidTitleError:
+ return False
+ return True
+
def test_allpages(self):
"""Test the site.allpages() method."""
mysite = self.get_site()
fwd = list(mysite.allpages(total=10))
self.assertLessEqual(len(fwd), 10)
for page in fwd:
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 0)
+ self.validate_page(page)
+
rev = list(mysite.allpages(reverse=True, start='Aa', total=12))
self.assertLessEqual(len(rev), 12)
for page in rev:
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 0)
- self.assertLessEqual(page.title(), 'Aa')
+ if self.validate_page(page):
+ self.assertLessEqual(page.title(), 'Aa')
for page in mysite.allpages(start='Py', total=5):
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 0)
- self.assertGreaterEqual(page.title(), 'Py')
+ if self.validate_page(page):
+ self.assertGreaterEqual(page.title(), 'Py')
for page in mysite.allpages(prefix='Pre', total=5):
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 0)
- self.assertTrue(page.title().startswith('Pre'))
+ if self.validate_page(page):
+ self.assertTrue(page.title().startswith('Pre'))
for page in mysite.allpages(namespace=1, total=5):
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 1)
+ self.validate_page(page, namespace=1)
for page in mysite.allpages(filterredir=True, total=5):
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 0)
- self.assertTrue(page.isRedirectPage())
+ if self.validate_page(page):
+ self.assertTrue(page.isRedirectPage())
for page in mysite.allpages(filterredir=False, total=5):
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 0)
- self.assertFalse(page.isRedirectPage())
+ if self.validate_page(page):
+ self.assertFalse(page.isRedirectPage())
def test_allpages_langlinks_enabled(self):
"""Test allpages with langlinks enabled."""
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1147136?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I1d6cce539a30f7f76ffae9cf1978344e87d26f7f
Gerrit-Change-Number: 1147136
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]