Kaydet (Commit) b74777ed authored tarafından Benjamin Peterson's avatar Benjamin Peterson

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
........
üst 23681daa
...@@ -89,19 +89,23 @@ class FutureTest(unittest.TestCase): ...@@ -89,19 +89,23 @@ class FutureTest(unittest.TestCase):
# the parser hack disabled. If a new keyword is introduced in # the parser hack disabled. If a new keyword is introduced in
# 2.6, change this to refer to the new future import. # 2.6, change this to refer to the new future import.
try: try:
exec "from __future__ import division, with_statement; with = 0" exec "from __future__ import print_function; print 0"
except SyntaxError: except SyntaxError:
pass pass
else: else:
self.fail("syntax error didn't occur") self.fail("syntax error didn't occur")
try: try:
exec "from __future__ import (with_statement, division); with = 0" exec "from __future__ import (print_function); print 0"
except SyntaxError: except SyntaxError:
pass pass
else: else:
self.fail("syntax error didn't occur") self.fail("syntax error didn't occur")
def test_multiple_features(self):
test_support.unload("test.test_future5")
from test import test_future5
def test_main(): def test_main():
test_support.run_unittest(FutureTest) test_support.run_unittest(FutureTest)
......
# Check that multiple features can be enabled.
from __future__ import unicode_literals, print_function
import sys
import unittest
from . import test_support
class TestMultipleFeatures(unittest.TestCase):
def test_unicode_literals(self):
self.assertTrue(isinstance("", unicode))
def test_print_function(self):
with test_support.captured_output("stderr") as s:
print("foo", file=sys.stderr)
self.assertEqual(s.getvalue(), "foo\n")
def test_main():
test_support.run_unittest(TestMultipleFeatures)
...@@ -12,6 +12,9 @@ What's New in Python 2.6.1 alpha 1 ...@@ -12,6 +12,9 @@ What's New in Python 2.6.1 alpha 1
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #4209: Enabling unicode_literals and the print_function in the same
__future__ import didn't work.
- On windows, os.chdir given unicode was not working if GetCurrentDirectoryW - On windows, os.chdir given unicode was not working if GetCurrentDirectoryW
returned a path longer than MAX_PATH. (But It's doubtful this code path is returned a path longer than MAX_PATH. (But It's doubtful this code path is
really executed because I cannot move to such directory on win2k) really executed because I cannot move to such directory on win2k)
......
...@@ -206,13 +206,10 @@ future_hack(parser_state *ps) ...@@ -206,13 +206,10 @@ future_hack(parser_state *ps)
char *str_ch = STR(CHILD(cch, 0)); char *str_ch = STR(CHILD(cch, 0));
if (strcmp(str_ch, FUTURE_WITH_STATEMENT) == 0) { if (strcmp(str_ch, FUTURE_WITH_STATEMENT) == 0) {
ps->p_flags |= CO_FUTURE_WITH_STATEMENT; ps->p_flags |= CO_FUTURE_WITH_STATEMENT;
break;
} else if (strcmp(str_ch, FUTURE_PRINT_FUNCTION) == 0) { } else if (strcmp(str_ch, FUTURE_PRINT_FUNCTION) == 0) {
ps->p_flags |= CO_FUTURE_PRINT_FUNCTION; ps->p_flags |= CO_FUTURE_PRINT_FUNCTION;
break;
} else if (strcmp(str_ch, FUTURE_UNICODE_LITERALS) == 0) { } else if (strcmp(str_ch, FUTURE_UNICODE_LITERALS) == 0) {
ps->p_flags |= CO_FUTURE_UNICODE_LITERALS; ps->p_flags |= CO_FUTURE_UNICODE_LITERALS;
break;
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment