Discussion:
[Python-3000-checkins] r67032 - in python/branches/py3k: Lib/test/test_future.py Lib/test/test_future5.py Parser/parser.c
benjamin.peterson
2008-10-26 20:58:53 UTC
Permalink
Author: benjamin.peterson
Date: Sun Oct 26 21:58:53 2008
New Revision: 67032

Log:
Merged revisions 67030-67031 via svnmerge from
svn+ssh://pythondev at 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
........


Added:
python/branches/py3k/Lib/test/test_future5.py
- copied, changed from r67031, /python/trunk/Lib/test/test_future5.py
Modified:
python/branches/py3k/ (props changed)
python/branches/py3k/Lib/test/test_future.py
python/branches/py3k/Parser/parser.c

Modified: python/branches/py3k/Lib/test/test_future.py
==============================================================================
--- python/branches/py3k/Lib/test/test_future.py (original)
+++ python/branches/py3k/Lib/test/test_future.py Sun Oct 26 21:58:53 2008
@@ -89,19 +89,23 @@
# 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)

Copied: python/branches/py3k/Lib/test/test_future5.py (from r67031, /python/trunk/Lib/test/test_future5.py)
==============================================================================
--- /python/trunk/Lib/test/test_future5.py (original)
+++ python/branches/py3k/Lib/test/test_future5.py Sun Oct 26 21:58:53 2008
@@ -3,19 +3,19 @@

import sys
import unittest
-from . import test_support
+from . import support


class TestMultipleFeatures(unittest.TestCase):

def test_unicode_literals(self):
- self.assertTrue(isinstance("", unicode))
+ self.assertTrue(isinstance("", str))

def test_print_function(self):
- with test_support.captured_output("stderr") as s:
+ with 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)
+ support.run_unittest(TestMultipleFeatures)

Modified: python/branches/py3k/Parser/parser.c
==============================================================================
--- python/branches/py3k/Parser/parser.c (original)
+++ python/branches/py3k/Parser/parser.c Sun Oct 26 21:58:53 2008
@@ -210,13 +210,10 @@
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...