summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2003-02-13 22:07:59 (GMT)
committerGuido van Rossum <guido@python.org>2003-02-13 22:07:59 (GMT)
commit4b499dd3fb49181efbd99f87e45ff923146cba8a (patch)
tree2e70f5af9af45cf05d7cfa7eb8306b6dde1d001c /Lib/test
parent5aa3da649554f155dd0c82bfdcc92b1577c6935d (diff)
downloadcpython-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.py7
-rw-r--r--Lib/test/test_compile.py9
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"