jenkins-bot has submitted this change and it was merged.

Change subject: Allow fromDBName from site
......................................................................


Allow fromDBName from site

When meta.wikimedia.org has large lag times, testConstructors halts.

Change-Id: I01a9864e5dc29f399b35ba21e7a90326d02acf61
---
M pywikibot/site.py
M tests/site_tests.py
2 files changed, 24 insertions(+), 9 deletions(-)

Approvals:
  John Vandenberg: Looks good to me, but someone else must approve
  XZise: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pywikibot/site.py b/pywikibot/site.py
index e50e8ae..1da4bc5 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -1654,9 +1654,20 @@
         self.tokens = TokenWallet(self)
 
     @classmethod
-    def fromDBName(cls, dbname):
+    def fromDBName(cls, dbname, site=None):
+        """
+        Create a site from a database name using the sitematrix.
+
+        @param dbname: database name
+        @type dbname: str
+        @param site: Site to load sitematrix from. (Default meta.wikimedia.org)
+        @type site: APISite
+        @return: site object for the database name
+        @rtype: APISite
+        """
         # TODO this only works for some WMF sites
-        site = pywikibot.Site('meta', 'meta')
+        if not site:
+            site = pywikibot.Site('meta', 'meta')
         req = site._request(expiry=datetime.timedelta(days=10),
                             parameters={'action': 'sitematrix'})
         data = req.submit()
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 82d9e00..438e004 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -257,19 +257,23 @@
 
     def testConstructors(self):
         """Test cases for site constructors."""
-        self.assertEqual(pywikibot.site.APISite.fromDBName('enwiki'),
+        if isinstance(self.site.family, pywikibot.family.WikimediaFamily):
+            site = self.site
+        else:
+            site = None
+        self.assertEqual(pywikibot.site.APISite.fromDBName('enwiki', site),
                          pywikibot.Site('en', 'wikipedia'))
-        self.assertEqual(pywikibot.site.APISite.fromDBName('eswikisource'),
+        self.assertEqual(pywikibot.site.APISite.fromDBName('eswikisource', 
site),
                          pywikibot.Site('es', 'wikisource'))
-        self.assertEqual(pywikibot.site.APISite.fromDBName('dewikinews'),
+        self.assertEqual(pywikibot.site.APISite.fromDBName('dewikinews', site),
                          pywikibot.Site('de', 'wikinews'))
-        self.assertEqual(pywikibot.site.APISite.fromDBName('ukwikivoyage'),
+        self.assertEqual(pywikibot.site.APISite.fromDBName('ukwikivoyage', 
site),
                          pywikibot.Site('uk', 'wikivoyage'))
-        self.assertEqual(pywikibot.site.APISite.fromDBName('metawiki'),
+        self.assertEqual(pywikibot.site.APISite.fromDBName('metawiki', site),
                          pywikibot.Site('meta', 'meta'))
-        self.assertEqual(pywikibot.site.APISite.fromDBName('commonswiki'),
+        self.assertEqual(pywikibot.site.APISite.fromDBName('commonswiki', 
site),
                          pywikibot.Site('commons', 'commons'))
-        self.assertEqual(pywikibot.site.APISite.fromDBName('wikidatawiki'),
+        self.assertEqual(pywikibot.site.APISite.fromDBName('wikidatawiki', 
site),
                          pywikibot.Site('wikidata', 'wikidata'))
 
     def testLanguageMethods(self):

-- 
To view, visit https://gerrit.wikimedia.org/r/234722
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I01a9864e5dc29f399b35ba21e7a90326d02acf61
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: XZise <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to