jenkins-bot merged this change.

View Change

Approvals: Dvorapa: Looks good to me, but someone else must approve Framawiki: Looks good to me, approved jenkins-bot: Verified
[bugfix] Terminate QuitKeyboardInterrupt sucessfully

Terminate a BaseBot script sucessfully even when an input answer is [q]uit
which raises QuitKeyboardInterrupt. On Python 2 Plattforms this terminates
as an exception.

Bug: T195687
Change-Id: I284e2452521fe5915d7e9d6451ee2729869cf16e
---
M pywikibot/bot.py
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index e6a058b..c246d99 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -1394,10 +1394,14 @@

# exc_info contains exception from self.run() while terminating
exc_info = sys.exc_info()
- if exc_info[0] is None or exc_info[0] is KeyboardInterrupt:
- pywikibot.output("Script terminated successfully.")
+ pywikibot.output('Script terminated ', newline=False)
+ # Python 2 also needs QuitKeyboardInterrupt
+ # to be compared with exc_info[0] (T195687)
+ if exc_info[0] is None or exc_info[0] in (KeyboardInterrupt,
+ QuitKeyboardInterrupt):
+ pywikibot.output('successfully.')
else:
- pywikibot.output("Script terminated by exception:\n")
+ pywikibot.output('by exception:\n')
pywikibot.exception()

def treat(self, page):

To view, visit change 435666. To unsubscribe, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I284e2452521fe5915d7e9d6451ee2729869cf16e
Gerrit-Change-Number: 435666
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Dvorapa <dvorapa@seznam.cz>
Gerrit-Reviewer: Framawiki <framawiki@tools.wmflabs.org>
Gerrit-Reviewer: John Vandenberg <jayvdb@gmail.com>
Gerrit-Reviewer: Zoranzoki21 <zorandori4444@gmail.com>
Gerrit-Reviewer: jenkins-bot <>