Takayuki Shimizukawa avatar Takayuki Shimizukawa committed 6807b94

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

Comments (4)

    1. Jon Waltman

      Putting it in the CHANGELOG sounds good.

      We should probably be more conscientious about updating the CHANGELOG in general anyways since we have made a lot of changes that have not been documented there yet.

Files changed (2)

sphinx/quickstart.py

             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):

tests/test_quickstart.py

     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 = {
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.