[Pywikipedia-l] SVN: [5967] branches/rewrite/pywikibot

russblau at svn.wikimedia.org russblau at svn.wikimedia.org
Tue Oct 14 19:14:58 UTC 2008


Revision: 5967
Author:   russblau
Date:     2008-10-14 19:14:57 +0000 (Tue, 14 Oct 2008)

Log Message:
-----------
more tests and one bug-fix uncovered by testing

Modified Paths:
--------------
    branches/rewrite/pywikibot/site.py
    branches/rewrite/pywikibot/tests/site_tests.py

Modified: branches/rewrite/pywikibot/site.py
===================================================================
--- branches/rewrite/pywikibot/site.py	2008-10-14 15:18:24 UTC (rev 5966)
+++ branches/rewrite/pywikibot/site.py	2008-10-14 19:14:57 UTC (rev 5967)
@@ -1326,7 +1326,7 @@
 
         """
         acgen = api.CategoryPageGenerator("allcategories",
-                                          gapfrom=start, site=self)
+                                          gacfrom=start, site=self)
         if prefix:
             acgen.request["gacprefix"] = prefix
         if isinstance(limit, int):

Modified: branches/rewrite/pywikibot/tests/site_tests.py
===================================================================
--- branches/rewrite/pywikibot/tests/site_tests.py	2008-10-14 15:18:24 UTC (rev 5966)
+++ branches/rewrite/pywikibot/tests/site_tests.py	2008-10-14 19:14:57 UTC (rev 5967)
@@ -220,7 +220,7 @@
                     set(mysite.pagelinks(mainpage, namespaces=[0, 1]))))
         for target in mysite.preloadpages(
                             mysite.pagelinks(mainpage, follow_redirects=True,
-                                             limit=10)):
+                                             limit=5)):
             self.assertType(target, pywikibot.Page)
             self.assertFalse(target.isRedirectPage())
         # test pagecategories
@@ -249,7 +249,7 @@
         mysite.loadrevisions(mainpage)
         self.assertTrue(hasattr(mainpage, "_revid"))
         self.assertTrue(hasattr(mainpage, "_revisions"))
-        self.assertTrue(mainpage._revisions.has_key(mainpage._revid))
+        self.assertTrue(mainpage._revid in mainpage._revisions)
         # TODO test all the optional arguments
 
     def testAllPages(self):
@@ -268,43 +268,43 @@
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
             self.assertTrue(page.title() <= "Aa")
-        for page in mysite.allpages(start="Py", limit=10):
+        for page in mysite.allpages(start="Py", limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
             self.assertTrue(page.title() >= "Py")
-        for page in mysite.allpages(prefix="Pre", limit=10):
+        for page in mysite.allpages(prefix="Pre", limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
             self.assertTrue(page.title().startswith("Pre"))
-        for page in mysite.allpages(namespace=1, limit=10):
+        for page in mysite.allpages(namespace=1, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 1)
-        for page in mysite.allpages(filterredir=True, limit=10):
+        for page in mysite.allpages(filterredir=True, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
             self.assertTrue(page.isRedirectPage())
-        for page in mysite.allpages(filterredir=False, limit=10):
+        for page in mysite.allpages(filterredir=False, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
             self.assertFalse(page.isRedirectPage())
-        for page in mysite.allpages(filterlanglinks=True, limit=10):
+        for page in mysite.allpages(filterlanglinks=True, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
-        for page in mysite.allpages(filterlanglinks=False, limit=10):
+        for page in mysite.allpages(filterlanglinks=False, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
-        for page in mysite.allpages(minsize=100, limit=10):
+        for page in mysite.allpages(minsize=100, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertTrue(len(page.text) >= 100)
-        for page in mysite.allpages(maxsize=200, limit=10):
+        for page in mysite.allpages(maxsize=200, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
             self.assertTrue(len(page.text) <= 200)
@@ -327,23 +327,24 @@
         self.assertTrue(all(isinstance(link, pywikibot.Page) for link in fwd))
         uniq = list(mysite.alllinks(limit=10, unique=True))
         self.assertTrue(all(link in uniq for link in fwd))
-        # TODO: test various optional arguments to alllinks
-        for page in mysite.alllinks(start="Link", limit=10):
+        for page in mysite.alllinks(start="Link", limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertEqual(page.namespace(), 0)
             self.assertTrue(page.title() >= "Link")
-        for page in mysite.alllinks(prefix="Fix", limit=10):
+        for page in mysite.alllinks(prefix="Fix", limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertEqual(page.namespace(), 0)
             self.assertTrue(page.title().startswith("Fix"))
-        for page in mysite.alllinks(namespace=1, limit=10):
+        for page in mysite.alllinks(namespace=1, limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertEqual(page.namespace(), 1)
         for page in mysite.alllinks(start="From", namespace=4, fromids=True,
-                                    limit=10):
+                                    limit=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(page.title(withNamespace=False) >= "From")
             self.assertTrue(hasattr(page, "_fromid"))
+        errgen = mysite.alllinks(unique=True, fromids=True)
+        self.assertRaises(pywikibot.Error, errgen.next)
 
     def testAllCategories(self):
         """Test the site.allcategories() method"""
@@ -352,7 +353,16 @@
         self.assertTrue(len(ac) <= 10)
         self.assertTrue(all(isinstance(cat, pywikibot.Category)
                             for cat in ac))
-        # TODO: test various optional arguments to allcategories
+        for cat in mysite.allcategories(limit=5, start="Abc"):
+            self.assertType(cat, pywikibot.Category)
+            self.assertTrue(cat.title(withNamespace=False) >= "Abc")
+        for cat in mysite.allcategories(limit=5, prefix="Def"):
+            self.assertType(cat, pywikibot.Category)
+            self.assertTrue(cat.title(withNamespace=False).startswith("Def"))
+        # Bug # 15985
+##        for cat in mysite.allcategories(limit=5, start="Hij", reverse=True):
+##            self.assertType(cat, pywikibot.Category)
+##            self.assertTrue(cat.title(withNamespace=False) <= "Hij")
 
     def testAllUsers(self):
         """Test the site.allusers() method"""
@@ -361,9 +371,28 @@
         self.assertTrue(len(au) <= 10)
         for user in au:
             self.assertType(user, dict)
-            self.assertTrue(user.has_key("name"))
-            self.assertTrue(user.has_key("editcount"))
-            self.assertTrue(user.has_key("registration"))
+            self.assertTrue("name" in user)
+            self.assertTrue("editcount" in user)
+            self.assertTrue("registration" in user)
+        for user in mysite.allusers(start="B", limit=5):
+            self.assertType(user, dict)
+            self.assertTrue("name" in user)
+            self.assertTrue(user["name"] >= "B")
+            self.assertTrue("editcount" in user)
+            self.assertTrue("registration" in user)
+        for user in mysite.allusers(prefix="C", limit=5):
+            self.assertType(user, dict)
+            self.assertTrue("name" in user)
+            self.assertTrue(user["name"].startswith("C"))
+            self.assertTrue("editcount" in user)
+            self.assertTrue("registration" in user)
+        for user in mysite.allusers(prefix="D", group="sysop", limit=5):
+            self.assertType(user, dict)
+            self.assertTrue("name" in user)
+            self.assertTrue(user["name"].startswith("D"))
+            self.assertTrue("editcount" in user)
+            self.assertTrue("registration" in user)
+            self.assertTrue("groups" in user and "sysop" in user["groups"])
 
     def testAllImages(self):
         """Test the site.allimages() method"""
@@ -404,7 +433,7 @@
 
         le = list(mysite.logevents(limit=10))
         self.assertTrue(len(le) <= 10)
-        self.assertTrue(all(isinstance(entry, dict) and entry.has_key("type")
+        self.assertTrue(all(isinstance(entry, dict) and "type" in entry
                             for entry in le))
 
     def testRecentchanges(self):





More information about the Pywikipedia-l mailing list