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 <jayvdb(a)gmail.com>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: jenkins-bot <>