Merged revisions 67066 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67066 | benjamin.peterson | 2008-10-30 21:16:05 -0500 (Thu, 30 Oct 2008) | 5 lines

  make sure the parser flags and passed onto the compiler

  This fixes "from __future__ import unicode_literals" in an exec statment
  See #4225
........
diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py
index 1432e74..81d0a3e 100644
--- a/Lib/test/test_future.py
+++ b/Lib/test/test_future.py
@@ -106,6 +106,11 @@
         test_support.unload("test.test_future5")
         from test import test_future5
 
+    def test_unicode_literals_exec(self):
+        scope = {}
+        exec "from __future__ import unicode_literals; x = ''" in scope
+        self.assertTrue(isinstance(scope["x"], unicode))
+
 
 def test_main():
     test_support.run_unittest(FutureTest)
diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py
index ba77bb8..9ecca51 100644
--- a/Lib/test/test_parser.py
+++ b/Lib/test/test_parser.py
@@ -25,6 +25,15 @@
     def check_expr(self, s):
         self.roundtrip(parser.expr, s)
 
+    def test_flags_passed(self):
+        # The unicode literals flags has to be passed from the paser to AST
+        # generation.
+        suite = parser.suite("from __future__ import unicode_literals; x = ''")
+        code = suite.compile()
+        scope = {}
+        exec code in scope
+        self.assertTrue(isinstance(scope["x"], unicode))
+
     def check_suite(self, s):
         self.roundtrip(parser.suite, s)