jenkins-bot submitted this change.

View Change

Approvals: Matěj Suchánek: Looks good to me, but someone else must approve Xqt: Looks good to me, approved jenkins-bot: Verified
[bugfix] Show OutputOption if before_question attribute is not set

OutputOption has before_question attribute. The output statement
inside option.result has been dropped to enable redirecting the
output stream. Therefore output the option.out after result is
called.

Bug: T283488
Change-Id: I7e64dddaecb1c89f8293f9748c3ad0c26e1c906f
---
M pywikibot/userinterfaces/terminal_interface_base.py
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/pywikibot/userinterfaces/terminal_interface_base.py b/pywikibot/userinterfaces/terminal_interface_base.py
index c4abe8b..d8ff5d2 100755
--- a/pywikibot/userinterfaces/terminal_interface_base.py
+++ b/pywikibot/userinterfaces/terminal_interface_base.py
@@ -373,6 +373,12 @@
options. If default is not a shortcut, it'll return -1.
@rtype: int (if not return_shortcut), lowercased str (otherwise)
"""
+ def output_option(option, before_question):
+ """Print an OutputOption before or after question."""
+ if isinstance(option, OutputOption) \
+ and option.before_question is before_question:
+ self.stream_output(option.out + '\n')
+
if force and default is None:
raise ValueError('With no default option it cannot be forced')
if isinstance(options, Option):
@@ -399,9 +405,7 @@
with self.lock:
while not handled:
for option in options:
- if isinstance(option, OutputOption) \
- and option.before_question:
- self.stream_output(option.out + '\n')
+ output_option(option, before_question=True)
output = Option.formatted(question, options, default)
if force:
self.stream_output(output + '\n')
@@ -413,6 +417,7 @@
for index, option in enumerate(options):
if option.handled(answer):
answer = option.result(answer)
+ output_option(option, before_question=False)
handled = option.stop
break

@@ -527,7 +532,7 @@
# Each warning appears twice
# the second time it has a 'message'
if 'message' in record.__dict__:
- return None
+ return

record.__dict__.setdefault('newline', '\n')


To view, visit change 693947. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I7e64dddaecb1c89f8293f9748c3ad0c26e1c906f
Gerrit-Change-Number: 693947
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Matěj Suchánek <matejsuchanek97@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged