# Test various flavors of legal and illegal future statements

from test.test_support import unload
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)

# The first two tests should work

unload('test_future1')
from test import test_future1

unload('test_future2')
from test import test_future2

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))

try:
    from test import badsyntax_future4
except SyntaxError, msg:
    check_error_location(str(msg))

try:
    from test import badsyntax_future5
except SyntaxError, msg:
    check_error_location(str(msg))

try:
    from test import badsyntax_future6
except SyntaxError, msg:
    check_error_location(str(msg))

try:
    from test import badsyntax_future7
except SyntaxError, msg:
    check_error_location(str(msg))
