More improvements for yesno prompt key hints

This commit is contained in:
Florian Bruhin 2016-10-26 21:09:33 +02:00
parent 7d63795613
commit 741ecac9ef
2 changed files with 18 additions and 3 deletions

View File

@ -607,6 +607,8 @@ class YesNoPrompt(_BasePrompt):
def accept(self, value=None): def accept(self, value=None):
if value is None: if value is None:
if self.question.default is None:
raise Error("No default value was set for this question!")
self.question.answer = self.question.default self.question.answer = self.question.default
elif value == 'yes': elif value == 'yes':
self.question.answer = True self.question.answer = True
@ -617,13 +619,17 @@ class YesNoPrompt(_BasePrompt):
return True return True
def _allowed_commands(self): def _allowed_commands(self):
default = 'yes' if self.question.default else 'no'
cmds = [ cmds = [
('prompt-accept yes', "Yes"), ('prompt-accept yes', "Yes"),
('prompt-accept no', "No"), ('prompt-accept no', "No"),
('prompt-accept', "Use default ({})".format(default)),
('leave-mode', "Abort"),
] ]
if self.question.default is not None:
assert self.question.default in [True, False]
default = 'yes' if self.question.default else 'no'
cmds.append(('prompt-accept', "Use default ({})".format(default)))
cmds.append(('leave-mode', "Abort"))
return cmds return cmds

View File

@ -249,3 +249,12 @@ Feature: Prompts
And I run :prompt-accept yes And I run :prompt-accept yes
Then the javascript message "confirm reply: true" should be logged Then the javascript message "confirm reply: true" should be logged
And the error "Invalid value nope - expected yes/no!" should be shown And the error "Invalid value nope - expected yes/no!" should be shown
Scenario: Javascript confirm with default value
When I open data/prompt/jsconfirm.html
And I run :click-element id button
And I wait for a prompt
And I run :prompt-accept
And I run :prompt-accept yes
Then the javascript message "confirm reply: true" should be logged
And the error "No default value was set for this question!" should be shown