jenkins-bot merged this change.
site_tests.py: fix test_preload_templates_and_langlinks
Test is failing because not all pages might have both templates
and langlinks.
Filter pages before test and preload only pages with both.
Skip test if no valid pages are available.
Change-Id: Ic0145b51dc82e7b06b0d86db0acdaa9903b58527
---
M tests/site_tests.py
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 73b2da3..fbc85d5 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -3255,7 +3255,6 @@
if count >= 6:
break
- @allowed_failure
def test_preload_templates_and_langlinks(self):
"""Test preloading templates and langlinks works."""
mysite = self.get_site()
@@ -3263,15 +3262,23 @@
count = 0
# Use backlinks, as any backlink has at least one link
links = mysite.pagebacklinks(mainpage, total=10)
+ # Screen pages before test;
+ # it is not guaranteed that all pages will have both.
+ links = [l for l in links if (l.langlinks() and l.templates())]
+ # Skip test if no valid pages are found.
+ if not links:
+ self.SkipTest('No valid pages found to carry out test.')
+
for page in mysite.preloadpages(links, langlinks=True, templates=True):
- self.assertIsInstance(page, pywikibot.Page)
- self.assertIsInstance(page.exists(), bool)
- if page.exists():
- self.assertLength(page._revisions, 1)
- self.assertIsNotNone(page._revisions[page._revid].text)
- self.assertFalse(hasattr(page, '_pageprops'))
- self.assertTrue(hasattr(page, '_templates'))
- self.assertTrue(hasattr(page, '_langlinks'))
+ with self.subTest(page=page):
+ self.assertIsInstance(page, pywikibot.Page)
+ self.assertIsInstance(page.exists(), bool)
+ if page.exists():
+ self.assertLength(page._revisions, 1)
+ self.assertIsNotNone(page._revisions[page._revid].text)
+ self.assertFalse(hasattr(page, '_pageprops'))
+ self.assertTrue(hasattr(page, '_templates'))
+ self.assertTrue(hasattr(page, '_langlinks'))
count += 1
if count >= 6:
break
To view, visit change 538421. To unsubscribe, or for help writing mail filters, visit settings.