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

Reply via email to