SF #736962, port test_future to unittest, add a bit more coverage, by Walter Dörwald
diff --git a/Lib/test/badsyntax_future3.py b/Lib/test/badsyntax_future3.py
index 166628c..f1c8417 100644
--- a/Lib/test/badsyntax_future3.py
+++ b/Lib/test/badsyntax_future3.py
@@ -7,4 +7,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)
diff --git a/Lib/test/badsyntax_future4.py b/Lib/test/badsyntax_future4.py
index 805263b..b5f4c98 100644
--- a/Lib/test/badsyntax_future4.py
+++ b/Lib/test/badsyntax_future4.py
@@ -7,4 +7,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)
diff --git a/Lib/test/badsyntax_future5.py b/Lib/test/badsyntax_future5.py
index 1186208..8a7e5fc 100644
--- a/Lib/test/badsyntax_future5.py
+++ b/Lib/test/badsyntax_future5.py
@@ -9,4 +9,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)
diff --git a/Lib/test/badsyntax_future6.py b/Lib/test/badsyntax_future6.py
index 35c1455..5a8b55a 100644
--- a/Lib/test/badsyntax_future6.py
+++ b/Lib/test/badsyntax_future6.py
@@ -7,4 +7,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)
diff --git a/Lib/test/badsyntax_future7.py b/Lib/test/badsyntax_future7.py
index 370372d..131db2c 100644
--- a/Lib/test/badsyntax_future7.py
+++ b/Lib/test/badsyntax_future7.py
@@ -8,4 +8,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)
diff --git a/Lib/test/badsyntax_future8.py b/Lib/test/badsyntax_future8.py
new file mode 100644
index 0000000..c167b09
--- /dev/null
+++ b/Lib/test/badsyntax_future8.py
@@ -0,0 +1,10 @@
+"""This is a test"""
+
+from __future__ import *
+
+def f(x):
+ def g(y):
+ return x + y
+ return g
+
+print f(2)(4)
diff --git a/Lib/test/badsyntax_future9.py b/Lib/test/badsyntax_future9.py
new file mode 100644
index 0000000..cdce32a
--- /dev/null
+++ b/Lib/test/badsyntax_future9.py
@@ -0,0 +1,10 @@
+"""This is a test"""
+
+from __future__ import nested_scopes, braces
+
+def f(x):
+ def g(y):
+ return x + y
+ return g
+
+print f(2)(4)
diff --git a/Lib/test/output/test_future b/Lib/test/output/test_future
deleted file mode 100644
index 4631489..0000000
--- a/Lib/test/output/test_future
+++ /dev/null
@@ -1,8 +0,0 @@
-test_future
-6
-6
-SyntaxError badsyntax_future3 3
-SyntaxError badsyntax_future4 3
-SyntaxError badsyntax_future5 4
-SyntaxError badsyntax_future6 3
-SyntaxError badsyntax_future7 3
diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py
index 12813d4..f5462e20 100644
--- a/Lib/test/test_future.py
+++ b/Lib/test/test_future.py
@@ -1,47 +1,89 @@
# Test various flavors of legal and illegal future statements
-from test.test_support import unload
+import unittest
+from test import test_support
import re
rx = re.compile('\((\S+).py, line (\d+)')
-def check_error_location(msg):
- mo = rx.search(msg)
- print "SyntaxError %s %s" % mo.group(1, 2)
+def get_error_location(msg):
+ mo = rx.search(str(msg))
+ return mo.group(1, 2)
-# The first two tests should work
+class FutureTest(unittest.TestCase):
-unload('test_future1')
-from test import test_future1
+ def test_future1(self):
+ test_support.unload('test_future1')
+ from test import test_future1
+ self.assertEqual(test_future1.result, 6)
-unload('test_future2')
-from test import test_future2
+ def test_future2(self):
+ test_support.unload('test_future2')
+ from test import test_future2
+ self.assertEqual(test_future2.result, 6)
-unload('test_future3')
-from test import test_future3
+ def test_future3(self):
+ test_support.unload('test_future3')
+ from test import test_future3
-# The remaining tests should fail
-try:
- from test import badsyntax_future3
-except SyntaxError, msg:
- check_error_location(str(msg))
+ 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")
-try:
- from test import badsyntax_future4
-except SyntaxError, msg:
- check_error_location(str(msg))
+ 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")
-try:
- from test import badsyntax_future5
-except SyntaxError, msg:
- check_error_location(str(msg))
+ 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")
-try:
- from test import badsyntax_future6
-except SyntaxError, msg:
- check_error_location(str(msg))
+ 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")
-try:
- from test import badsyntax_future7
-except SyntaxError, msg:
- check_error_location(str(msg))
+ 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_main():
+ test_support.run_unittest(FutureTest)
+
+if __name__ == "__main__":
+ test_main()
diff --git a/Lib/test/test_future1.py b/Lib/test/test_future1.py
index b0d2a5c..297c2e0 100644
--- a/Lib/test/test_future1.py
+++ b/Lib/test/test_future1.py
@@ -8,4 +8,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)
diff --git a/Lib/test/test_future2.py b/Lib/test/test_future2.py
index e3df0a6..79eb731 100644
--- a/Lib/test/test_future2.py
+++ b/Lib/test/test_future2.py
@@ -7,4 +7,4 @@
return x + y
return g
-print f(2)(4)
+result = f(2)(4)