John Vandenberg has uploaded a new change for review.
https://gerrit.wikimedia.org/r/151408
Change subject: Perform site tests against the config site
......................................................................
Perform site tests against the config site
First step in making the test suite more adaptable to running
on a specified site rather than having hardcoded sites.
Change-Id: I466f87f3d7db30ccfa75f6425c2383822a1ae307
---
M tests/site_tests.py
1 file changed, 32 insertions(+), 14 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/08/151408/1
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 4550618..d4747d7 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -12,6 +12,8 @@
from distutils.version import LooseVersion as LV
import pywikibot
+from pywikibot import config
+
from tests.utils import PywikibotTestCase, unittest
import sys
@@ -25,14 +27,17 @@
class TestSiteObject(PywikibotTestCase):
"""Test cases for Site methods."""
- family = "wikipedia"
- code = "en"
+ family = config.family
+ code = config.mylang
@classmethod
def setUpClass(cls):
global mysite, mainpage, imagepage
mysite = pywikibot.Site(cls.code, cls.family)
- mainpage = pywikibot.Page(pywikibot.Link("Main Page", mysite))
+ main_page_title = mysite.siteinfo['mainpage']
+ mainpage = pywikibot.Page(pywikibot.Link(main_page_title, mysite))
+ if mainpage.isRedirectPage():
+ mainpage = mainpage.getRedirectTarget()
imagepage = next(iter(mainpage.imagelinks())) # 1st image on main page
def testBaseMethods(self):
@@ -40,7 +45,7 @@
self.assertEqual(mysite.family.name, self.family)
self.assertEqual(mysite.code, self.code)
self.assertType(mysite.lang, basestring)
- self.assertEqual(mysite, pywikibot.Site("en", "wikipedia"))
+ self.assertEqual(mysite, pywikibot.Site(self.code, self.family))
self.assertType(mysite.user(), (basestring, type(None)))
self.assertEqual(mysite.sitename(),
"%s:%s" % (self.family,
@@ -50,7 +55,10 @@
% (self.code, self.family))
self.assertType(mysite.linktrail(), basestring)
self.assertType(mysite.redirect(default=True), basestring)
- self.assertType(mysite.disambcategory(), pywikibot.Category)
+ try:
+ self.assertType(mysite.disambcategory(), pywikibot.Category)
+ except pywikibot.Error:
+ pass
self.assertEqual(unicode(pywikibot.Link("foo", source=mysite)),
u"[[Foo]]")
self.assertFalse(mysite.isInterwikiLink("foo"))
self.assertType(mysite.redirectRegex().pattern, basestring)
@@ -178,8 +186,13 @@
self.assertTrue(all(isinstance(ver[i], int) for i in (0, 1)))
self.assertType(ver[2], basestring)
self.assertType(mysite.months_names, list)
- self.assertEqual(mysite.months_names[4], (u'May', u'May'))
self.assertEqual(mysite.list_to_text(('pywikibot',)), 'pywikibot')
+
+ def testEnglishSpecificMethods(self):
+ if mysite.lang != 'en':
+ return
+
+ self.assertEqual(mysite.months_names[4], (u'May', u'May'))
self.assertEqual(mysite.list_to_text(('Pride', 'Prejudice')), 'Pride
and Prejudice')
self.assertEqual(mysite.list_to_text(('This', 'that', 'the other')),
'This, that and the other')
@@ -202,8 +215,12 @@
def testTokens(self):
"""Test ability to get page tokens"""
+ # token types for non-sysops
+ token_types = ["edit"]
+ if mysite.lang == 'en' and mysite.family.name == 'wikipedia':
+ token_types.append("move")
- for ttype in ("edit", "move"): # token types for non-sysops
+ for ttype in token_types:
self.assertType(mysite.token(mainpage, ttype), basestring)
self.assertRaises(KeyError, mysite.token, mainpage, "invalidtype")
@@ -978,22 +995,23 @@
def test_API_limits_with_site_methods(self):
# test step/total parameters for different sitemethods
- mypage = pywikibot.Page(mysite, 'Albert Einstein')
- mycat = pywikibot.Page(mysite, 'Category:1879 births')
+ site = pywikibot.Site('en', 'wikipedia')
+ mypage = pywikibot.Page(site, 'Albert Einstein')
+ mycat = pywikibot.Page(site, 'Category:1879 births')
- cats = [c for c in mysite.pagecategories(mypage, step=5, total=12)]
+ cats = [c for c in site.pagecategories(mypage, step=5, total=12)]
self.assertEqual(len(cats), 12)
- cat_members = [cm for cm in mysite.categorymembers(mycat, step=5,
total=12)]
+ cat_members = [cm for cm in site.categorymembers(mycat, step=5,
total=12)]
self.assertEqual(len(cat_members), 12)
- images = [im for im in mysite.pageimages(mypage, step=3, total=5)]
+ images = [im for im in site.pageimages(mypage, step=3, total=5)]
self.assertEqual(len(images), 5)
- templates = [tl for tl in mysite.pagetemplates(mypage, step=3,
total=5)]
+ templates = [tl for tl in site.pagetemplates(mypage, step=3, total=5)]
self.assertEqual(len(templates), 5)
- mysite.loadrevisions(mypage, step=5, total=12)
+ site.loadrevisions(mypage, step=5, total=12)
self.assertEqual(len(mypage._revisions), 12)
def testPickleAbility(self):
--
To view, visit https://gerrit.wikimedia.org/r/151408
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I466f87f3d7db30ccfa75f6425c2383822a1ae307
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits