summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2008-10-26 20:58:53 (GMT)
committerBenjamin Peterson <benjamin@python.org>2008-10-26 20:58:53 (GMT)
commit9aebc61ad8e3b0eddd43dc563380025cc2fd8d02 (patch)
tree95a3c735956df93136a3604b56510f3f103f636c
parentcff882ce21f0870da9f59f4e1dad094caa379f5a (diff)
downloadcpython-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.py8
-rw-r--r--Lib/test/test_future5.py21
-rw-r--r--Parser/parser.c3
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;
}
}
}