http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11266

Revision: 11266
Author:   legoktm
Date:     2013-03-25 13:50:12 +0000 (Mon, 25 Mar 2013)
Log Message:
-----------
Use assertType from site_tests.py, PEP8 fixes, +1 wikibase test

Modified Paths:
--------------
    branches/rewrite/tests/page_tests.py

Modified: branches/rewrite/tests/page_tests.py
===================================================================
--- branches/rewrite/tests/page_tests.py        2013-03-25 13:22:19 UTC (rev 
11265)
+++ branches/rewrite/tests/page_tests.py        2013-03-25 13:50:12 UTC (rev 
11266)
@@ -18,8 +18,9 @@
 mainpage = pywikibot.Page(pywikibot.page.Link("Main Page", site))
 maintalk = pywikibot.Page(pywikibot.page.Link("Talk:Main Page", site))
 badpage = pywikibot.Page(pywikibot.page.Link("There is no page with this 
title",
-                                        site))
+                         site))
 
+
 class TestLinkObject(unittest.TestCase):
     """Test cases for Link objects"""
 
@@ -38,32 +39,32 @@
                   7: [u"Image talk:", u"Image_talk:"],
                   8: [u"MediaWiki:"],
                   9: [u"MediaWiki talk:", u"MediaWiki_talk:"],
-                 10: [u"Template:"],
-                 11: [u"Template talk:", u"Template_talk:"],
-                 12: [u"Help:"],
-                 13: [u"Help talk:", u"Help_talk:"],
-                 14: [u"Category:"],
-                 15: [u"Category talk:", u"Category_talk:"],
-                100: [u"Portal:"],
-                101: [u"Portal talk:", u"Portal_talk:"],
-    }
+                  10: [u"Template:"],
+                  11: [u"Template talk:", u"Template_talk:"],
+                  12: [u"Help:"],
+                  13: [u"Help talk:", u"Help_talk:"],
+                  14: [u"Category:"],
+                  15: [u"Category talk:", u"Category_talk:"],
+                  100: [u"Portal:"],
+                  101: [u"Portal talk:", u"Portal_talk:"],
+                  }
     titles = {
         # just a bunch of randomly selected titles
         # input format                  : expected output format
-        u"Cities in Burkina Faso"       : u"Cities in Burkina Faso",
-        u"eastern Sayan"                : u"Eastern Sayan",
-        u"The_Addams_Family_(pinball)"  : u"The Addams Family (pinball)",
-        u"Hispanic  (U.S.  Census)"     : u"Hispanic (U.S. Census)",
-        u"Stołpce"                      : u"Stołpce",
-        u"Nowy_Sącz"                    : u"Nowy Sącz",
-        u"battle of Węgierska  Górka"   : u"Battle of Węgierska Górka",
+        u"Cities in Burkina Faso":        u"Cities in Burkina Faso",
+        u"eastern Sayan":                 u"Eastern Sayan",
+        u"The_Addams_Family_(pinball)":   u"The Addams Family (pinball)",
+        u"Hispanic  (U.S.  Census)":      u"Hispanic (U.S. Census)",
+        u"Stołpce":                       u"Stołpce",
+        u"Nowy_Sącz":                     u"Nowy Sącz",
+        u"battle of Węgierska  Górka":    u"Battle of Węgierska Górka",
     }
     # random bunch of possible section titles
     sections = [u"",
                 u"#Phase_2",
                 u"#History",
                 u"#later life",
-    ]
+                ]
 
     def testNamespaces(self):
         """Test that Link() normalizes namespace names"""
@@ -84,7 +85,7 @@
                 l = pywikibot.page.Link(self.namespaces[num][0]+title)
                 self.assertEqual(l.title, self.titles[title])
                 # prefixing name with ":" shouldn't change result
-                m = pywikibot.page.Link(":"+self.namespaces[num][0]+title)
+                m = pywikibot.page.Link(":" + self.namespaces[num][0] + title)
                 self.assertEqual(m.title, self.titles[title])
 
     def testHashCmp(self):
@@ -92,6 +93,7 @@
         l1 = pywikibot.page.Link('Test', source=self.enwiki)
         l2 = pywikibot.page.Link('en:Test', source=self.frwiki)
         l3 = pywikibot.page.Link('wikipedia:en:Test', source=self.itwikt)
+
         def assertHashCmp(link1, link2):
             self.assertEqual(link1, link2)
             self.assertEqual(hash(link1), hash(link2))
@@ -106,7 +108,12 @@
         self.assertNotEqual(l1, other)
         self.assertNotEqual(hash(l1), hash(other))
 
+
 class TestPageObject(unittest.TestCase):
+    def assertType(self, obj, cls):
+        """Assert that obj is an instance of type cls"""
+        return self.assertTrue(isinstance(obj, cls))
+
     def testGeneral(self):
         self.assertEqual(str(mainpage), "[[%s:%s]]"
                                         % (site.lang, mainpage.title()))
@@ -206,73 +213,74 @@
         """Test various methods that rely on API."""
         # since there is no way to predict what data the wiki will return,
         # we only check that the returned objects are of correct type.
-        self.assertTrue(isinstance(mainpage.get(), unicode))
-        self.assertTrue(isinstance(maintalk.get(), unicode))
+        self.assertType(mainpage.get(), unicode)
+        self.assertType(maintalk.get(), unicode)
         self.assertRaises(pywikibot.NoPage, badpage.get)
-        self.assertTrue(isinstance(mainpage.latestRevision(), int))
-        self.assertTrue(isinstance(mainpage.userName(), unicode))
-        self.assertTrue(isinstance(mainpage.isIpEdit(), bool))
-        self.assertTrue(isinstance(mainpage.exists(), bool))
-        self.assertTrue(isinstance(mainpage.isRedirectPage(), bool))
-        self.assertTrue(isinstance(mainpage.isEmpty(), bool))
+        self.assertType(mainpage.latestRevision(), int)
+        self.assertType(mainpage.userName(), unicode)
+        self.assertType(mainpage.isIpEdit(), bool)
+        self.assertType(mainpage.exists(), bool)
+        self.assertType(mainpage.isRedirectPage(), bool)
+        self.assertType(mainpage.isEmpty(), bool)
         self.assertEqual(mainpage.toggleTalkPage(), maintalk)
         self.assertEqual(maintalk.toggleTalkPage(), mainpage)
-        self.assertTrue(isinstance(mainpage.isDisambig(), bool))
-        self.assertTrue(isinstance(mainpage.canBeEdited(), bool))
-        self.assertTrue(isinstance(mainpage.botMayEdit(), bool))
-        self.assertTrue(isinstance(mainpage.editTime(), unicode))
-        self.assertTrue(isinstance(mainpage.previousRevision(), int))
-        self.assertTrue(isinstance(mainpage.permalink(), basestring))
+        self.assertType(mainpage.isDisambig(), bool)
+        self.assertType(mainpage.canBeEdited(), bool)
+        self.assertType(mainpage.botMayEdit(), bool)
+        self.assertType(mainpage.editTime(), unicode)
+        self.assertType(mainpage.previousRevision(), int)
+        self.assertType(mainpage.permalink(), basestring)
 
     def testReferences(self):
         count = 0
         #Ignore redirects for time considerations
         for p in mainpage.getReferences(follow_redirects=False):
             count += 1
-            self.assertTrue(isinstance(p, pywikibot.Page))
+            self.assertType(p, pywikibot.Page)
             if count >= 10:
                 break
         count = 0
         for p in mainpage.backlinks(followRedirects=False):
             count += 1
-            self.assertTrue(isinstance(p, pywikibot.Page))
+            self.assertType(p, pywikibot.Page)
             if count >= 10:
                 break
         count = 0
         for p in mainpage.embeddedin():
             count += 1
-            self.assertTrue(isinstance(p, pywikibot.Page))
+            self.assertType(p, pywikibot.Page)
             if count >= 10:
                 break
 
     def testLinks(self):
         for p in mainpage.linkedPages():
-            self.assertTrue(isinstance(p, pywikibot.Page))
+            self.assertType(p, pywikibot.Page)
         iw = list(mainpage.interwiki(expand=True))
         for p in iw:
-            self.assertTrue(isinstance(p, pywikibot.Link))
+            self.assertType(p, pywikibot.Link)
         for p2 in mainpage.interwiki(expand=False):
-            self.assertTrue(isinstance(p2, pywikibot.Link))
+            self.assertType(p2, pywikibot.Link)
             self.assertTrue(p2 in iw)
         for p in mainpage.langlinks():
-            self.assertTrue(isinstance(p, pywikibot.Link))
+            self.assertType(p, pywikibot.Link)
         for p in mainpage.imagelinks():
-            self.assertTrue(isinstance(p, pywikibot.ImagePage))
+            self.assertType(p, pywikibot.ImagePage)
         for p in mainpage.templates():
-            self.assertTrue(isinstance(p, pywikibot.Page))
+            self.assertType(p, pywikibot.Page)
         for t, params in mainpage.templatesWithParams():
-            self.assertTrue(isinstance(t, pywikibot.Page))
-            self.assertTrue(isinstance(params, list))
+            self.assertType(t, pywikibot.Page)
+            self.assertType(params, list)
         for p in mainpage.categories():
-            self.assertTrue(isinstance(p, pywikibot.Category))
+            self.assertType(p, pywikibot.Category)
         for p in mainpage.extlinks():
-            self.assertTrue(isinstance(p, unicode))
+            self.assertType(p, unicode)
 
     def testWikibase(self):
         if not site.has_transcluded_data:
             return
         repo = site.data_repository()
         item = pywikibot.ItemPage.fromPage(mainpage)
+        self.assertType(item, pywikibot.ItemPage)
         self.assertTrue(item.getID(), 'q5296')
         self.assertTrue('en' in item.labels)
         self.assertEqual(item.labels['en'], 'Main Page')


_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to