Fix SyntaxError indicator printing too many spaces for multi-line strings (GH-14433)

(cherry picked from commit 5b94f3578c)

Co-authored-by: Anthony Sottile <asottile@umich.edu>
This commit is contained in:
Miss Islington (bot) 2019-07-29 07:18:47 -07:00 committed by GitHub
parent 36fd7b6f01
commit cf52bd0b9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 0 deletions

View file

@ -601,6 +601,20 @@ class CmdLineTest(unittest.TestCase):
self.assertNotIn("\f", text)
self.assertIn("\n 1 + 1 = 2\n ^", text)
def test_syntaxerror_multi_line_fstring(self):
script = 'foo = f"""{}\nfoo"""\n'
with support.temp_dir() as script_dir:
script_name = _make_test_script(script_dir, 'script', script)
exitcode, stdout, stderr = assert_python_failure(script_name)
self.assertEqual(
stderr.splitlines()[-3:],
[
b' foo = f"""{}',
b' ^',
b'SyntaxError: f-string: empty expression not allowed',
],
)
def test_consistent_sys_path_for_direct_execution(self):
# This test case ensures that the following all give the same
# sys.path configuration: