mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
quickstart: Rework 'do_prompt' function
The 'd' and 'key' values are used on a single line. Move these outside the function to allow us to do other things with this function. Signed-off-by: Stephen Finucane <stephen@that.guru>
This commit is contained in:
@@ -61,27 +61,7 @@ def teardown_module():
|
||||
coloron()
|
||||
|
||||
|
||||
def test_quickstart_inputstrip():
|
||||
d = {}
|
||||
answers = {
|
||||
'Q1': 'Y',
|
||||
'Q2': ' Yes ',
|
||||
'Q3': 'N',
|
||||
'Q4': 'N ',
|
||||
}
|
||||
qs.term_input = mock_input(answers)
|
||||
qs.do_prompt(d, 'k1', 'Q1')
|
||||
assert d['k1'] == 'Y'
|
||||
qs.do_prompt(d, 'k2', 'Q2')
|
||||
assert d['k2'] == 'Yes'
|
||||
qs.do_prompt(d, 'k3', 'Q3')
|
||||
assert d['k3'] == 'N'
|
||||
qs.do_prompt(d, 'k4', 'Q4')
|
||||
assert d['k4'] == 'N'
|
||||
|
||||
|
||||
def test_do_prompt():
|
||||
d = {}
|
||||
answers = {
|
||||
'Q2': 'v2',
|
||||
'Q3': 'v3',
|
||||
@@ -90,24 +70,29 @@ def test_do_prompt():
|
||||
'Q6': 'foo',
|
||||
}
|
||||
qs.term_input = mock_input(answers)
|
||||
try:
|
||||
qs.do_prompt(d, 'k1', 'Q1')
|
||||
except AssertionError:
|
||||
assert 'k1' not in d
|
||||
else:
|
||||
assert False, 'AssertionError not raised'
|
||||
qs.do_prompt(d, 'k1', 'Q1', default='v1')
|
||||
assert d['k1'] == 'v1'
|
||||
qs.do_prompt(d, 'k3', 'Q3', default='v3_default')
|
||||
assert d['k3'] == 'v3'
|
||||
qs.do_prompt(d, 'k2', 'Q2')
|
||||
assert d['k2'] == 'v2'
|
||||
qs.do_prompt(d, 'k4', 'Q4', validator=qs.boolean)
|
||||
assert d['k4'] is True
|
||||
qs.do_prompt(d, 'k5', 'Q5', validator=qs.boolean)
|
||||
assert d['k5'] is False
|
||||
|
||||
assert qs.do_prompt('Q1', default='v1') == 'v1'
|
||||
assert qs.do_prompt('Q3', default='v3_default') == 'v3'
|
||||
assert qs.do_prompt('Q2') == 'v2'
|
||||
assert qs.do_prompt('Q4', validator=qs.boolean) is True
|
||||
assert qs.do_prompt('Q5', validator=qs.boolean) is False
|
||||
with pytest.raises(AssertionError):
|
||||
qs.do_prompt(d, 'k6', 'Q6', validator=qs.boolean)
|
||||
qs.do_prompt('Q6', validator=qs.boolean)
|
||||
|
||||
|
||||
def test_do_prompt_inputstrip():
|
||||
answers = {
|
||||
'Q1': 'Y',
|
||||
'Q2': ' Yes ',
|
||||
'Q3': 'N',
|
||||
'Q4': 'N ',
|
||||
}
|
||||
qs.term_input = mock_input(answers)
|
||||
|
||||
assert qs.do_prompt('Q1') == 'Y'
|
||||
assert qs.do_prompt('Q2') == 'Yes'
|
||||
assert qs.do_prompt('Q3') == 'N'
|
||||
assert qs.do_prompt('Q4') == 'N'
|
||||
|
||||
|
||||
def test_do_prompt_with_nonascii():
|
||||
@@ -117,12 +102,12 @@ def test_do_prompt_with_nonascii():
|
||||
}
|
||||
qs.term_input = mock_input(answers)
|
||||
try:
|
||||
qs.do_prompt(d, 'k1', 'Q1', default=u'\u65e5\u672c')
|
||||
result = qs.do_prompt('Q1', default=u'\u65e5\u672c')
|
||||
except UnicodeEncodeError:
|
||||
raise pytest.skip.Exception(
|
||||
'non-ASCII console input not supported on this encoding: %s',
|
||||
qs.TERM_ENCODING)
|
||||
assert d['k1'] == u'\u30c9\u30a4\u30c4'
|
||||
assert result == u'\u30c9\u30a4\u30c4'
|
||||
|
||||
|
||||
def test_quickstart_defaults(tempdir):
|
||||
|
||||
Reference in New Issue
Block a user