diff options
author | Georg Brandl <georg@python.org> | 2006-09-24 12:35:36 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2006-09-24 12:35:36 (GMT) |
commit | a10d3afed2f27504768dffd3a915a7c876258505 (patch) | |
tree | 57bb038a659bdde20b75d38ca143476ee95ac59d /Lib/test/test_future.py | |
parent | 2c94bf7d410b151d6e7e38275c9dda871a5e8882 (diff) | |
download | cpython-a10d3afed2f27504768dffd3a915a7c876258505.zip cpython-a10d3afed2f27504768dffd3a915a7c876258505.tar.gz cpython-a10d3afed2f27504768dffd3a915a7c876258505.tar.bz2 |
Fix a bug in the parser's future statement handling that led to "with"
not being recognized as a keyword after, e.g., this statement:
from __future__ import division, with_statement
Diffstat (limited to 'Lib/test/test_future.py')
-rw-r--r-- | Lib/test/test_future.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py index f5462e20..ec60489 100644 --- a/Lib/test/test_future.py +++ b/Lib/test/test_future.py @@ -82,6 +82,27 @@ class FutureTest(unittest.TestCase): else: self.fail("expected exception didn't occur") + def test_parserhack(self): + # test that the parser.c::future_hack function works as expected + # Note: although this test must pass, it's not testing the original + # bug as of 2.6 since the with statement is not optional and + # the parser hack disabled. If a new keyword is introduced in + # 2.6, change this to refer to the new future import. + try: + exec "from __future__ import division, with_statement; with = 0" + except SyntaxError: + pass + else: + self.fail("syntax error didn't occur") + + try: + exec "from __future__ import (with_statement, division); with = 0" + except SyntaxError: + pass + else: + self.fail("syntax error didn't occur") + + def test_main(): test_support.run_unittest(FutureTest) |