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

russblau at svn.wikimedia.org russblau at svn.wikimedia.org
Wed Oct 15 17:35:14 UTC 2008


Revision: 5977
Author:   russblau
Date:     2008-10-15 17:35:14 +0000 (Wed, 15 Oct 2008)

Log Message:
-----------
more tests and bug-fixes

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-15 17:28:48 UTC (rev 5976)
+++ branches/rewrite/pywikibot/site.py	2008-10-15 17:35:14 UTC (rev 5977)
@@ -1431,7 +1431,7 @@
                 "blocks: starttime must be before endtime with reverse=True")
                     return
             else:
-                if endtime < starttime:
+                if endtime > starttime:
                     logger.error(
                 "blocks: endtime must be before starttime with reverse=False")
                     return
@@ -1443,7 +1443,7 @@
         if endtime:
             bkgen.request["bkend"] = endtime
         if reverse:
-            bkgen.request["bkdir"] = newer
+            bkgen.request["bkdir"] = "newer"
         if blockids:
             bkgen.request["bkids"] = blockids
         if users:

Modified: branches/rewrite/pywikibot/tests/site_tests.py
===================================================================
--- branches/rewrite/pywikibot/tests/site_tests.py	2008-10-15 17:28:48 UTC (rev 5976)
+++ branches/rewrite/pywikibot/tests/site_tests.py	2008-10-15 17:35:14 UTC (rev 5977)
@@ -401,15 +401,77 @@
         self.assertTrue(len(ai) <= 10)
         self.assertTrue(all(isinstance(image, pywikibot.ImagePage)
                             for image in ai))
+        for impage in mysite.allimages(start="Ba", limit=5):
+            self.assertType(impage, pywikibot.ImagePage)
+            self.assertTrue(mysite.page_exists(impage))
+            self.assertTrue(impage.title(withNamespace=False) >= "Ba")
+        # Bug # 15985
+##        for impage in mysite.allimages(start="Da", reverse=True, limit=5):
+##            self.assertType(impage, pywikibot.ImagePage)
+##            self.assertTrue(mysite.page_exists(impage))
+##            self.assertTrue(impage.title() <= "Da")
+        for impage in mysite.allimages(prefix="Ch", limit=5):
+            self.assertType(impage, pywikibot.ImagePage)
+            self.assertTrue(mysite.page_exists(impage))
+            self.assertTrue(impage.title(withNamespace=False).startswith("Ch"))
+        for impage in mysite.allimages(minsize=100, limit=5):
+            self.assertType(impage, pywikibot.ImagePage)
+            self.assertTrue(mysite.page_exists(impage))
+            self.assertTrue(len(impage.text) >= 100)
+        for impage in mysite.allimages(maxsize=200, limit=5):
+            self.assertType(impage, pywikibot.ImagePage)
+            self.assertTrue(mysite.page_exists(impage))
+            self.assertTrue(len(impage.text) <= 200)
 
     def testBlocks(self):
         """Test the site.blocks() method"""
 
+        props = ("id", "by", "timestamp", "expiry", "reason")
         bl = list(mysite.blocks(limit=10))
         self.assertTrue(len(bl) <= 10)
-        self.assertTrue(all(isinstance(block, dict)
-                            for block in bl))
+        for block in bl:
+            self.assertType(block, dict)
+            for prop in props:
+                self.assertTrue(prop in block)
+        # timestamps should be in descending order
+        timestamps = [block['timestamp'] for block in bl]
+        for t in xrange(1, len(timestamps)):
+            self.assertTrue(timestamps[t] < timestamps[t-1])
 
+        b2 = list(mysite.blocks(limit=10, reverse=True))
+        self.assertTrue(len(b2) <= 10)
+        for block in b2:
+            self.assertType(block, dict)
+            for prop in props:
+                self.assertTrue(prop in block)
+        # timestamps should be in ascending order
+        timestamps = [block['timestamp'] for block in b2]
+        for t in xrange(1, len(timestamps)):
+            self.assertTrue(timestamps[t] > timestamps[t-1])
+
+        for block in mysite.blocks(starttime="20080101000001", limit=5):
+            self.assertType(block, dict)
+            for prop in props:
+                self.assertTrue(prop in block)
+        for block in mysite.blocks(endtime="20080131235959", limit=5):
+            self.assertType(block, dict)
+            for prop in props:
+                self.assertTrue(prop in block)
+        for block in mysite.blocks(starttime="20080202000001",
+                                   endtime="20080202235959",
+                                   reverse=True, limit=5):
+            self.assertType(block, dict)
+            for prop in props:
+                self.assertTrue(prop in block)
+        for block in mysite.blocks(starttime="20080203235959",
+                                   endtime="20080203000001",
+                                   limit=5):
+            self.assertType(block, dict)
+            for prop in props:
+                self.assertTrue(prop in block)
+
+# TODO
+
     def testExturlusage(self):
         """Test the site.exturlusage() method"""
 
@@ -418,6 +480,8 @@
         self.assertTrue(len(eu) <= 10)
         self.assertTrue(all(isinstance(link, pywikibot.Page)
                             for link in eu))
+        for link in mysite.exturlusage(url, namespaces=[2, 3], limit=5):
+            self.assertType(link, pywikibot.Page)
 
     def testImageusage(self):
         """Test the site.imageusage() method"""





More information about the Pywikipedia-l mailing list