diff options
author | Guido van Rossum <guido@python.org> | 2003-02-13 22:07:59 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2003-02-13 22:07:59 (GMT) |
commit | 4b499dd3fb49181efbd99f87e45ff923146cba8a (patch) | |
tree | 2e70f5af9af45cf05d7cfa7eb8306b6dde1d001c /Lib/test | |
parent | 5aa3da649554f155dd0c82bfdcc92b1577c6935d (diff) | |
download | cpython-4b499dd3fb49181efbd99f87e45ff923146cba8a.zip cpython-4b499dd3fb49181efbd99f87e45ff923146cba8a.tar.gz cpython-4b499dd3fb49181efbd99f87e45ff923146cba8a.tar.bz2 |
- Finally fixed the bug in compile() and exec where a string ending
with an indented code block but no newline would raise SyntaxError.
This would have been a four-line change in parsetok.c... Except
codeop.py depends on this behavior, so a compilation flag had to be
invented that causes the tokenizer to revert to the old behavior;
this required extra changes to 2 .h files, 2 .c files, and 2 .py
files. (Fixes SF bug #501622.)
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_codeop.py | 7 | ||||
-rw-r--r-- | Lib/test/test_compile.py | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py index a0ce0bc..7af83eb 100644 --- a/Lib/test/test_codeop.py +++ b/Lib/test/test_codeop.py @@ -5,13 +5,13 @@ import unittest from test.test_support import run_unittest -from codeop import compile_command +from codeop import compile_command, PyCF_DONT_IMPLY_DEDENT class CodeopTests(unittest.TestCase): def assertValid(self, str, symbol='single'): '''succeed iff str is a valid piece of code''' - expected = compile(str, "<input>", symbol) + expected = compile(str, "<input>", symbol, PyCF_DONT_IMPLY_DEDENT) self.assertEquals( compile_command(str, "<input>", symbol), expected) @@ -42,7 +42,8 @@ class CodeopTests(unittest.TestCase): # special case self.assertEquals(compile_command(""), - compile("pass", "<input>", 'single')) + compile("pass", "<input>", 'single', + PyCF_DONT_IMPLY_DEDENT)) av("3**3","eval") av("(lambda z: \n z**3)","eval") diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 1fe7f52..1812fbc 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -89,6 +89,15 @@ expect_error("2.0e+") expect_error("1e-") expect_error("3-4e/21") +if verbose: + print "testing compile() of indented block w/o trailing newline" + +s = """ +if 1: + if 2: + pass""" +compile(s, "<string>", "exec") + if verbose: print "testing literals with leading zeroes" |