fix __future__ imports when multiple features are given
This commit is contained in:
parent
adc93b9499
commit
bdca942ffc
|
@ -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):
|
||||
test_support.unload("test.test_future5")
|
||||
from test import test_future5
|
||||
|
||||
|
||||
def test_main():
|
||||
test_support.run_unittest(FutureTest)
|
||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 2.7 alpha 1
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #4209: Enabling unicode_literals and the print_function in the same
|
||||
__future__ import didn't work.
|
||||
|
||||
- Using ``nonlocal`` as a variable name will now raise a Py3k SyntaxWarning
|
||||
because it is a reserved word in 3.x.
|
||||
|
||||
|
|
|
@ -206,13 +206,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue