python-2.5.2/win32/Lib/test/test_future.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     1 # Test various flavors of legal and illegal future statements
       
     2 
       
     3 import unittest
       
     4 from test import test_support
       
     5 import re
       
     6 
       
     7 rx = re.compile('\((\S+).py, line (\d+)')
       
     8 
       
     9 def get_error_location(msg):
       
    10     mo = rx.search(str(msg))
       
    11     return mo.group(1, 2)
       
    12 
       
    13 class FutureTest(unittest.TestCase):
       
    14 
       
    15     def test_future1(self):
       
    16         test_support.unload('test_future1')
       
    17         from test import test_future1
       
    18         self.assertEqual(test_future1.result, 6)
       
    19 
       
    20     def test_future2(self):
       
    21         test_support.unload('test_future2')
       
    22         from test import test_future2
       
    23         self.assertEqual(test_future2.result, 6)
       
    24 
       
    25     def test_future3(self):
       
    26         test_support.unload('test_future3')
       
    27         from test import test_future3
       
    28 
       
    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")
       
    36 
       
    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")
       
    44 
       
    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")
       
    52 
       
    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")
       
    60 
       
    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_parserhack(self):
       
    86         # test that the parser.c::future_hack function works as expected
       
    87         try:
       
    88             exec "from __future__ import division, with_statement; with = 0"
       
    89         except SyntaxError:
       
    90             pass
       
    91         else:
       
    92             self.fail("syntax error didn't occur")
       
    93 
       
    94         try:
       
    95             exec "from __future__ import (with_statement, division); with = 0"
       
    96         except SyntaxError:
       
    97             pass
       
    98         else:
       
    99             self.fail("syntax error didn't occur")
       
   100 
       
   101 
       
   102 def test_main():
       
   103     test_support.run_unittest(FutureTest)
       
   104 
       
   105 if __name__ == "__main__":
       
   106     test_main()