jenkins-bot has submitted this change and it was merged.
Change subject: APISite: factor out validation of iterations params
......................................................................
APISite: factor out validation of iterations params
A few methods in APISite were reusing the exact same code to validate
parameters used with an iterator (start, end, reverse). The new
assert_valid_iter_params() now takes care of it.
Change-Id: I3e90ec613080c5257ce1ed1ebbd981841f0a192e
---
M pywikibot/site.py
1 file changed, 22 insertions(+), 50 deletions(-)
Approvals:
Ricordisamoa: Looks good to me, approved
jenkins-bot: Verified
Objections:
John Vandenberg: There's a problem with this change, please improve
diff --git a/pywikibot/site.py b/pywikibot/site.py
index b319a99..5e0d28b 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -1392,6 +1392,17 @@
# User blocked
raise UserBlocked('User is blocked in site %s' % self)
+ def assert_valid_iter_params(self, msg_prefix, start, end, reverse):
+ """Validate iterating API parameters."""
+ if reverse:
+ if end < start:
+ raise Error(
+ "%s: end must be later than start with reverse=True" %
msg_prefix)
+ else:
+ if start < end:
+ raise Error(
+ "%s: start must be later than end with reverse=False" %
msg_prefix)
+
def has_right(self, right, sysop=False):
"""Return true if and only if the user has a specific right.
@@ -2871,16 +2882,8 @@
"""
if start and end:
- if reverse:
- if end < start:
- raise Error(
- "logevents: "
- "end must be later than start with reverse=True")
- else:
- if start < end:
- raise Error(
- "logevents: "
- "start must be later than end with reverse=False")
+ self.assert_valid_iter_params('logevents', start, end, reverse)
+
legen = self._generator(api.LogEntryListGenerator, type_arg=logtype,
step=step, total=total)
if logtype is not None:
@@ -2941,16 +2944,8 @@
"""
if start and end:
- if reverse:
- if end < start:
- raise Error(
- "recentchanges: "
- "end must be later than start with reverse=True")
- else:
- if start < end:
- raise Error(
- "recentchanges: "
- "start must be later than end with reverse=False")
+ self.assert_valid_iter_params('recentchanges', start, end, reverse)
+
rcgen = self._generator(api.ListGenerator, type_arg="recentchanges",
rcprop="user|comment|timestamp|title|ids"
"|sizes|redirect|loginfo|flags",
@@ -3056,17 +3051,10 @@
if not (user or userprefix):
raise Error(
"usercontribs: either user or userprefix must be non-empty")
+
if start and end:
- if reverse:
- if end < start:
- raise Error(
- "usercontribs: "
- "end must be later than start with reverse=True")
- else:
- if start < end:
- raise Error(
- "usercontribs: "
- "start must be later than end with reverse=False")
+ self.assert_valid_iter_params('usercontribs', start, end, reverse)
+
ucgen = self._generator(api.ListGenerator, type_arg="usercontribs",
ucprop="ids|title|timestamp|comment|flags",
namespaces=namespaces, step=step,
@@ -3106,16 +3094,8 @@
"""
if start and end:
- if reverse:
- if end < start:
- raise Error(
- "watchlist_revs: "
- "end must be later than start with reverse=True")
- else:
- if start < end:
- raise Error(
- "watchlist_revs: "
- "start must be later than end with reverse=False")
+ self.assert_valid_iter_params('watchlist_revs', start, end,
reverse)
+
wlgen = self._generator(api.ListGenerator, type_arg="watchlist",
wlprop="user|comment|timestamp|title|ids|flags",
wlallrev="", namespaces=namespaces,
@@ -3157,16 +3137,8 @@
"""
if start and end:
- if reverse:
- if end < start:
- raise Error(
- "deletedrevs: "
- "end must be later than start with reverse=True")
- else:
- if start < end:
- raise Error(
- "deletedrevs: "
- "start must be later than end with reverse=False")
+ self.assert_valid_iter_params('deletedrevs', start, end, reverse)
+
if not self.logged_in():
self.login()
if "deletedhistory" not in self.userinfo['rights']:
--
To view, visit https://gerrit.wikimedia.org/r/145698
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I3e90ec613080c5257ce1ed1ebbd981841f0a192e
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Hashar <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: Ricordisamoa <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits