diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_future.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_future.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,119 @@ +# Test various flavors of legal and illegal future statements + +import unittest +from test import test_support +import re + +rx = re.compile('\((\S+).py, line (\d+)') + +def get_error_location(msg): + mo = rx.search(str(msg)) + return mo.group(1, 2) + +class FutureTest(unittest.TestCase): + + def test_future1(self): + test_support.unload('test_future1') + from test import test_future1 + self.assertEqual(test_future1.result, 6) + + def test_future2(self): + test_support.unload('test_future2') + from test import test_future2 + self.assertEqual(test_future2.result, 6) + + def test_future3(self): + test_support.unload('test_future3') + from test import test_future3 + + def test_badfuture3(self): + try: + from test import badsyntax_future3 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future3", '3')) + else: + self.fail("expected exception didn't occur") + + def test_badfuture4(self): + try: + from test import badsyntax_future4 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future4", '3')) + else: + self.fail("expected exception didn't occur") + + def test_badfuture5(self): + try: + from test import badsyntax_future5 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future5", '4')) + else: + self.fail("expected exception didn't occur") + + def test_badfuture6(self): + try: + from test import badsyntax_future6 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future6", '3')) + else: + self.fail("expected exception didn't occur") + + def test_badfuture7(self): + try: + from test import badsyntax_future7 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future7", '3')) + else: + self.fail("expected exception didn't occur") + + def test_badfuture8(self): + try: + from test import badsyntax_future8 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future8", '3')) + else: + self.fail("expected exception didn't occur") + + def test_badfuture9(self): + try: + from test import badsyntax_future9 + except SyntaxError, msg: + self.assertEqual(get_error_location(msg), ("badsyntax_future9", '3')) + else: + self.fail("expected exception didn't occur") + + def test_parserhack(self): + # test that the parser.c::future_hack function works as expected + # Note: although this test must pass, it's not testing the original + # bug as of 2.6 since the with statement is not optional and + # 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 print_function; print 0" + except SyntaxError: + pass + else: + self.fail("syntax error didn't occur") + + try: + 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_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) + +if __name__ == "__main__": + test_main()