|
1 | 1 | # Test various flavors of legal and illegal future statements |
2 | 2 |
|
3 | | -from test.test_support import unload |
| 3 | +import unittest |
| 4 | +from test import test_support |
4 | 5 | import re |
5 | 6 |
|
6 | 7 | rx = re.compile('\((\S+).py, line (\d+)') |
7 | 8 |
|
8 | | -def check_error_location(msg): |
9 | | - mo = rx.search(msg) |
10 | | - print "SyntaxError %s %s" % mo.group(1, 2) |
| 9 | +def get_error_location(msg): |
| 10 | + mo = rx.search(str(msg)) |
| 11 | + return mo.group(1, 2) |
11 | 12 |
|
12 | | -# The first two tests should work |
| 13 | +class FutureTest(unittest.TestCase): |
13 | 14 |
|
14 | | -unload('test_future1') |
15 | | -from test import test_future1 |
| 15 | + def test_future1(self): |
| 16 | + test_support.unload('test_future1') |
| 17 | + from test import test_future1 |
| 18 | + self.assertEqual(test_future1.result, 6) |
16 | 19 |
|
17 | | -unload('test_future2') |
18 | | -from test import test_future2 |
| 20 | + def test_future2(self): |
| 21 | + test_support.unload('test_future2') |
| 22 | + from test import test_future2 |
| 23 | + self.assertEqual(test_future2.result, 6) |
19 | 24 |
|
20 | | -unload('test_future3') |
21 | | -from test import test_future3 |
| 25 | + def test_future3(self): |
| 26 | + test_support.unload('test_future3') |
| 27 | + from test import test_future3 |
22 | 28 |
|
23 | | -# The remaining tests should fail |
24 | | -try: |
25 | | - from test import badsyntax_future3 |
26 | | -except SyntaxError, msg: |
27 | | - check_error_location(str(msg)) |
| 29 | + def test_badfuture3(self): |
| 30 | + try: |
| 31 | + from test import badsyntax_future3 |
| 32 | + except SyntaxError, msg: |
| 33 | + self.assertEqual(get_error_location(msg), ("badsyntax_future3", '3')) |
| 34 | + else: |
| 35 | + self.fail("expected exception didn't occur") |
28 | 36 |
|
29 | | -try: |
30 | | - from test import badsyntax_future4 |
31 | | -except SyntaxError, msg: |
32 | | - check_error_location(str(msg)) |
| 37 | + def test_badfuture4(self): |
| 38 | + try: |
| 39 | + from test import badsyntax_future4 |
| 40 | + except SyntaxError, msg: |
| 41 | + self.assertEqual(get_error_location(msg), ("badsyntax_future4", '3')) |
| 42 | + else: |
| 43 | + self.fail("expected exception didn't occur") |
33 | 44 |
|
34 | | -try: |
35 | | - from test import badsyntax_future5 |
36 | | -except SyntaxError, msg: |
37 | | - check_error_location(str(msg)) |
| 45 | + def test_badfuture5(self): |
| 46 | + try: |
| 47 | + from test import badsyntax_future5 |
| 48 | + except SyntaxError, msg: |
| 49 | + self.assertEqual(get_error_location(msg), ("badsyntax_future5", '4')) |
| 50 | + else: |
| 51 | + self.fail("expected exception didn't occur") |
38 | 52 |
|
39 | | -try: |
40 | | - from test import badsyntax_future6 |
41 | | -except SyntaxError, msg: |
42 | | - check_error_location(str(msg)) |
| 53 | + def test_badfuture6(self): |
| 54 | + try: |
| 55 | + from test import badsyntax_future6 |
| 56 | + except SyntaxError, msg: |
| 57 | + self.assertEqual(get_error_location(msg), ("badsyntax_future6", '3')) |
| 58 | + else: |
| 59 | + self.fail("expected exception didn't occur") |
43 | 60 |
|
44 | | -try: |
45 | | - from test import badsyntax_future7 |
46 | | -except SyntaxError, msg: |
47 | | - check_error_location(str(msg)) |
| 61 | + def test_badfuture7(self): |
| 62 | + try: |
| 63 | + from test import badsyntax_future7 |
| 64 | + except SyntaxError, msg: |
| 65 | + self.assertEqual(get_error_location(msg), ("badsyntax_future7", '3')) |
| 66 | + else: |
| 67 | + self.fail("expected exception didn't occur") |
| 68 | + |
| 69 | + def test_badfuture8(self): |
| 70 | + try: |
| 71 | + from test import badsyntax_future8 |
| 72 | + except SyntaxError, msg: |
| 73 | + self.assertEqual(get_error_location(msg), ("badsyntax_future8", '3')) |
| 74 | + else: |
| 75 | + self.fail("expected exception didn't occur") |
| 76 | + |
| 77 | + def test_badfuture9(self): |
| 78 | + try: |
| 79 | + from test import badsyntax_future9 |
| 80 | + except SyntaxError, msg: |
| 81 | + self.assertEqual(get_error_location(msg), ("badsyntax_future9", '3')) |
| 82 | + else: |
| 83 | + self.fail("expected exception didn't occur") |
| 84 | + |
| 85 | +def test_main(): |
| 86 | + test_support.run_unittest(FutureTest) |
| 87 | + |
| 88 | +if __name__ == "__main__": |
| 89 | + test_main() |
0 commit comments