Commit 328f3381 authored by Neal Norwitz's avatar Neal Norwitz

SF #736962, port test_future to unittest, add a bit more coverage, by Walter Dörwald

parent 378f7b5d
......@@ -7,4 +7,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
......@@ -7,4 +7,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
......@@ -9,4 +9,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
......@@ -7,4 +7,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
......@@ -8,4 +8,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
"""This is a test"""
from __future__ import *
def f(x):
def g(y):
return x + y
return g
print f(2)(4)
"""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)
test_future
6
6
SyntaxError badsyntax_future3 3
SyntaxError badsyntax_future4 3
SyntaxError badsyntax_future5 4
SyntaxError badsyntax_future6 3
SyntaxError badsyntax_future7 3
# 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()
......@@ -8,4 +8,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
......@@ -7,4 +7,4 @@ def f(x):
return x + y
return g
print f(2)(4)
result = f(2)(4)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment