diff Lib/test/test_codeop.py @ 27878:be7683a6f521 legacy-trunk

- 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.)
author Guido van Rossum <guido@python.org>
date Thu, 13 Feb 2003 22:07:59 +0000
parents aa0d2d51fbde
children e6e100efbc7d
line wrap: on
line diff
--- a/Lib/test/test_codeop.py	Thu Feb 13 21:03:57 2003 +0000
+++ b/Lib/test/test_codeop.py	Thu Feb 13 22:07:59 2003 +0000
@@ -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 @@
 
         # 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")