jenkins-bot has submitted this change and it was merged.
Change subject: Site.mediawiki_messages() returns all messages as well ......................................................................
Site.mediawiki_messages() returns all messages as well
Change-Id: I82e93a31346ebf780c8e5a120ef5d6156ee0a044 --- M pywikibot/site.py M tests/site_tests.py 2 files changed, 29 insertions(+), 11 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py index a232365..5195652 100644 --- a/pywikibot/site.py +++ b/pywikibot/site.py @@ -998,9 +998,10 @@ return 'hasmsg' in self._userinfo
def mediawiki_messages(self, keys): - """Return the MediaWiki message text for each 'key' in keys - in a dict: + """Return the MediaWiki message text for each 'key' in keys in a dict: -. dict['key'] = text message + + keys='*' or ['*'] will return all messages
"""
@@ -1010,14 +1011,23 @@ meta="allmessages", ammessages='|'.join(keys), ) - for _key in keys: + + # Return all messages + if keys == u'*' or keys == [u'*']: for msg in msg_query: - if msg['name'] == _key and not 'missing' in msg: - self._msgcache[_key] = msg['*'] - break - else: - raise KeyError("Site %(self)s has no message '%(_key)s'" - % locals()) + if not 'missing' in msg: + self._msgcache[msg['name']] = msg['*'] + return self._msgcache + # Return only given keys + else: + for _key in keys: + for msg in msg_query: + if msg['name'] == _key and not 'missing' in msg: + self._msgcache[_key] = msg['*'] + break + else: + raise KeyError("Site %(self)s has no message '%(_key)s'" + % locals())
return dict((_key, self._msgcache[_key]) for _key in keys)
@@ -1030,7 +1040,10 @@ return self.has_all_mediawiki_messages([key])
def has_all_mediawiki_messages(self, keys): - """Return True if this site defines MediaWiki messages for all 'keys'; False otherwise.""" + """Return True if this site defines MediaWiki messages for all 'keys'; + False otherwise. + + """ try: v = self.mediawiki_messages(keys) return True diff --git a/tests/site_tests.py b/tests/site_tests.py index ee86e70..3a01c9e 100644 --- a/tests/site_tests.py +++ b/tests/site_tests.py @@ -156,10 +156,15 @@ self.assertType(mysite.mediawiki_messages(msg), dict) self.assertTrue(mysite.mediawiki_messages(msg))
- msg = ("1movedto2", "about", "aboutpage", "nosuchmessage") + msg = ("nosuchmessage1", "about", "aboutpage", "nosuchmessage") self.assertFalse(mysite.has_all_mediawiki_messages(msg)) self.assertRaises(KeyError, mysite.mediawiki_messages, msg)
+ # Load all messages and check that '*' is not a valid key. + self.assertType(mysite.mediawiki_messages('*'), dict) + self.assertTrue(len(mysite.mediawiki_messages(['*'])) > 10) + self.assertFalse('*' in mysite.mediawiki_messages(['*'])) + self.assertType(mysite.getcurrenttimestamp(), basestring) self.assertType(mysite.siteinfo, dict) self.assertType(mysite.case(), basestring)
pywikibot-commits@lists.wikimedia.org