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)
--
To view, visit
https://gerrit.wikimedia.org/r/107727
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I82e93a31346ebf780c8e5a120ef5d6156ee0a044
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Mpaa <mpaa.wiki(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>