fix: sphinx-quickstart asks again and again Y|N because input() return value with extra '\r' on Python-3.2.0 + Windows. closes #1043

This commit is contained in:
Takayuki Shimizukawa 2012-11-28 23:21:02 +09:00
parent f24b1998f2
commit e9c0582713
2 changed files with 20 additions and 1 deletions

View File

@ -824,7 +824,7 @@ def do_prompt(d, key, text, default=None, validator=nonempty):
prompt = purple(PROMPT_PREFIX + '%s [%s]: ' % (text, default))
else:
prompt = purple(PROMPT_PREFIX + text + ': ')
x = term_input(prompt)
x = term_input(prompt).strip()
if default and not x:
x = default
if not isinstance(x, unicode):

View File

@ -46,6 +46,25 @@ def teardown_module():
coloron()
def test_quickstart_inputstrip():
d = {}
answers = {
'Q1': 'Y\r', # input() return with '\r' on Python-3.2.0 for Windows
'Q2': ' Yes \r',
'Q3': 'N',
'Q4': 'N ',
}
qs.term_input = mock_raw_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 = {