jenkins-bot has submitted this change and it was merged.
Change subject: Make transferbot exit cleanly when no arguments given. ......................................................................
Make transferbot exit cleanly when no arguments given.
Bug: 68662 Change-Id: If091461be0addece8600a413b7f64547e7cb7a8c --- M scripts/transferbot.py M tests/script_tests.py 2 files changed, 35 insertions(+), 4 deletions(-)
Approvals: John Vandenberg: Looks good to me, approved jenkins-bot: Verified
diff --git a/scripts/transferbot.py b/scripts/transferbot.py index 50372da..dcc6144 100644 --- a/scripts/transferbot.py +++ b/scripts/transferbot.py @@ -48,6 +48,29 @@ }
+class WikiTransferException(Exception): + """Base class for exceptions from this script. + + Makes it easier for clients to catch all expected exceptions that the script might + throw + """ + pass + + +class TargetSiteMissing(WikiTransferException): + """Thrown when the target site is the same as the source site. + + Based on the way each are initialized, this is likely to happen when the target site + simply hasn't been specified. + """ + pass + + +class TargetPagesMissing(WikiTransferException): + """Thrown if no page range has been specified for the script to operate on.""" + pass + + def main(): tohandle = pywikibot.handleArgs()
@@ -75,11 +98,11 @@
tosite = pywikibot.Site(tolang, tofamily) if fromsite == tosite: - raise Exception('Target site not different from source site') + raise TargetSiteMissing('Target site not different from source site')
gen = genFactory.getCombinedGenerator() if not gen: - raise Exception('Target pages not specified') + raise TargetPagesMissing('Target pages not specified')
gen_args = ' '.join(gen_args) pywikibot.output(u""" @@ -129,4 +152,13 @@
if __name__ == "__main__": - main() + try: + main() + except TargetSiteMissing as e: + pywikibot.error(u'Need to specify a target site and/or language') + pywikibot.error(u'Try running this script with -help for help/usage') + pywikibot.exception() + except TargetPagesMissing as e: + pywikibot.error(u'Need to specify a page range') + pywikibot.error(u'Try running this script with -help for help/usage') + pywikibot.exception() diff --git a/tests/script_tests.py b/tests/script_tests.py index 9b7ae9f..1e8e5a6 100644 --- a/tests/script_tests.py +++ b/tests/script_tests.py @@ -227,7 +227,6 @@ 'imagerecat', # bug 68658 'imagetransfer', # bug 68659 'pagefromfile', # bug 68660 - 'transferbot', # raises custom Exception 'upload', # raises custom ValueError ] or \ (config.family == 'wikidata' and script_name == 'lonelypages') or \
pywikibot-commits@lists.wikimedia.org