Revision: 6127
Author:   russblau
Date:     2008-12-03 20:02:17 +0000 (Wed, 03 Dec 2008)

Log Message:
-----------
update backlink tests; langlinks commented out temporarily due to performance 
issues

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

Modified: branches/rewrite/pywikibot/tests/site_tests.py
===================================================================
--- branches/rewrite/pywikibot/tests/site_tests.py      2008-12-03 20:01:23 UTC 
(rev 6126)
+++ branches/rewrite/pywikibot/tests/site_tests.py      2008-12-03 20:02:17 UTC 
(rev 6127)
@@ -14,6 +14,8 @@
 import pywikibot
 import warnings
 
+logger = pywikibot.logging.getLogger("wiki.site.tests")
+
 mysite = pywikibot.Site()
 mainpage = pywikibot.Page(pywikibot.Link("Main Page", mysite))
 imagepage = iter(mainpage.imagelinks()).next() # 1st image on main page
@@ -127,7 +129,7 @@
             self.assertType(mysite.has_group("bots", True), bool)
             self.assertFalse(mysite.has_group("nonexistent_group", True))
         except pywikibot.NoUsername:
-            warnings.warn(
+            logger.warn(
              "Cannot test Site methods for sysop; no sysop account 
configured.")
         for msg in ("1movedto2", "about", "aboutpage", "aboutsite",
                     "accesskey-n-portal"):
@@ -184,8 +186,28 @@
         """Test site methods for getting links to and from a page"""
         
         backlinks = set(mysite.pagebacklinks(mainpage, namespaces=[0]))
+        # only non-redirects:
+        filtered = set(mysite.pagebacklinks(mainpage, namespaces=0,
+                                            filterRedirects=False))
+        # only redirects:
+        redirs = set(mysite.pagebacklinks(mainpage, namespaces=0,
+                                          filterRedirects=True))
+        # including links to redirect pages (but not the redirects):
+        indirect = set(mysite.pagebacklinks(mainpage, namespaces=[0],
+                                            followRedirects=True))
+        self.assertEqual(filtered & redirs, set([]))
+        self.assertEqual(indirect & redirs, set([]))
+        self.assertTrue(filtered.issubset(indirect))
+        self.assertTrue(filtered.issubset(backlinks))
+        self.assertTrue(redirs.issubset(backlinks))
+        self.assertTrue(backlinks.issubset(
+                        set(mysite.pagebacklinks(mainpage, namespaces=[0, 
2]))))
+
+        # pagereferences includes both backlinks and embeddedin
         embedded = set(mysite.page_embeddedin(mainpage, namespaces=[0]))
         refs = set(mysite.pagereferences(mainpage, namespaces=[0]))
+        self.assertTrue(backlinks.issubset(refs))
+        self.assertTrue(embedded.issubset(refs))
         for bl in backlinks:
             self.assertType(bl, pywikibot.Page)
             self.assertTrue(bl in refs)
@@ -194,21 +216,6 @@
             self.assertTrue(ei in refs)
         for ref in refs:
             self.assertTrue(ref in backlinks or ref in embedded)
-        # test backlinks arguments
-        self.assertTrue(backlinks.issubset(
-                    set(mysite.pagebacklinks(mainpage,
-                                             followRedirects=True,
-                                             namespaces=[0]))))
-        self.assertTrue(backlinks.issuperset(
-                    set(mysite.pagebacklinks(mainpage,
-                                             filterRedirects=True,
-                                             namespaces=[0]))))
-        self.assertTrue(backlinks.issuperset(
-                    set(mysite.pagebacklinks(mainpage,
-                                             filterRedirects=False,
-                                             namespaces=[0]))))
-        self.assertTrue(backlinks.issubset(
-                    set(mysite.pagebacklinks(mainpage, namespaces=[0, 2]))))
         # test embeddedin arguments
         self.assertTrue(embedded.issuperset(
                     set(mysite.page_embeddedin(mainpage, filterRedirects=True,
@@ -298,14 +305,14 @@
             self.assertTrue(mysite.page_exists(page))
             self.assertEqual(page.namespace(), 0)
             self.assertFalse(page.isRedirectPage())
-        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=5):
-            self.assertType(page, pywikibot.Page)
-            self.assertTrue(mysite.page_exists(page))
-            self.assertEqual(page.namespace(), 0)
+##        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=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=5):
             self.assertType(page, pywikibot.Page)
             self.assertTrue(mysite.page_exists(page))
@@ -821,7 +828,7 @@
             try:
                 mysite.login(True)
             except pywikibot.NoUsername:
-                warnings.warn(
+                logger.warn(
                  "Cannot test Site.deleted_revs; no sysop account configured.")
                 return
         dr = list(mysite.deletedrevs(limit=10, page=mainpage))
@@ -902,7 +909,7 @@
 
 
 if __name__ == '__main__':
-#    pywikibot.logging.getLogger().setLevel(pywikibot.logging.DEBUG)
+#    pywikibot.logging.getLogger("").setLevel(pywikibot.logging.DEBUG)
     try:
         try:
             unittest.main()



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

Reply via email to