More improvements for yesno prompt key hints
This commit is contained in:
parent
7d63795613
commit
741ecac9ef
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user