diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-10-26 20:58:53 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-10-26 20:58:53 (GMT) |
commit | 9aebc61ad8e3b0eddd43dc563380025cc2fd8d02 (patch) | |
tree | 95a3c735956df93136a3604b56510f3f103f636c | |
parent | cff882ce21f0870da9f59f4e1dad094caa379f5a (diff) | |
download | cpython-9aebc61ad8e3b0eddd43dc563380025cc2fd8d02.zip cpython-9aebc61ad8e3b0eddd43dc563380025cc2fd8d02.tar.gz cpython-9aebc61ad8e3b0eddd43dc563380025cc2fd8d02.tar.bz2 |
Merged revisions 67030-67031 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67030 | benjamin.peterson | 2008-10-26 15:21:13 -0500 (Sun, 26 Oct 2008) | 1 line
fix __future__ imports when multiple features are given
........
r67031 | benjamin.peterson | 2008-10-26 15:33:19 -0500 (Sun, 26 Oct 2008) | 1 line
add forgotten test for r67030
........
-rw-r--r-- | Lib/test/test_future.py | 8 | ||||
-rw-r--r-- | Lib/test/test_future5.py | 21 | ||||
-rw-r--r-- | Parser/parser.c | 3 |
3 files changed, 27 insertions, 5 deletions
diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py index 494f539..8846f6a 100644 --- a/Lib/test/test_future.py +++ b/Lib/test/test_future.py @@ -89,19 +89,23 @@ class FutureTest(unittest.TestCase): # 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") + exec("from __future__ import print_function; print 0") except SyntaxError: pass else: self.fail("syntax error didn't occur") try: - exec("from __future__ import (with_statement, division); with = 0") + exec("from __future__ import (print_function); print 0") except SyntaxError: pass else: self.fail("syntax error didn't occur") + def test_multiple_features(self): + support.unload("test.test_future5") + from test import test_future5 + def test_main(): support.run_unittest(FutureTest) diff --git a/Lib/test/test_future5.py b/Lib/test/test_future5.py new file mode 100644 index 0000000..57cbe9f --- /dev/null +++ b/Lib/test/test_future5.py @@ -0,0 +1,21 @@ +# Check that multiple features can be enabled. +from __future__ import unicode_literals, print_function + +import sys +import unittest +from . import support + + +class TestMultipleFeatures(unittest.TestCase): + + def test_unicode_literals(self): + self.assertTrue(isinstance("", str)) + + def test_print_function(self): + with support.captured_output("stderr") as s: + print("foo", file=sys.stderr) + self.assertEqual(s.getvalue(), "foo\n") + + +def test_main(): + support.run_unittest(TestMultipleFeatures) diff --git a/Parser/parser.c b/Parser/parser.c index 9e115df..ff4ce16 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -210,13 +210,10 @@ future_hack(parser_state *ps) char *str_ch = STR(CHILD(cch, 0)); if (strcmp(str_ch, FUTURE_WITH_STATEMENT) == 0) { ps->p_flags |= CO_FUTURE_WITH_STATEMENT; - break; } else if (strcmp(str_ch, FUTURE_PRINT_FUNCTION) == 0) { ps->p_flags |= CO_FUTURE_PRINT_FUNCTION; - break; } else if (strcmp(str_ch, FUTURE_UNICODE_LITERALS) == 0) { ps->p_flags |= CO_FUTURE_UNICODE_LITERALS; - break; } } } |