python-2.5.2/win32/Lib/test/test_global.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     1 """Verify that warnings are issued for global statements following use."""
       
     2 
       
     3 from test.test_support import check_syntax
       
     4 
       
     5 import warnings
       
     6 
       
     7 warnings.filterwarnings("error", module="<test code>")
       
     8 
       
     9 def compile_and_check(text, should_fail=1):
       
    10     try:
       
    11         compile(text, "<test code>", "exec")
       
    12     except SyntaxError, msg:
       
    13         if should_fail:
       
    14             print "got SyntaxError as expected"
       
    15         else:
       
    16             print "raised unexpected SyntaxError:", text
       
    17     else:
       
    18         if should_fail:
       
    19             print "should have raised SyntaxError:", text
       
    20         else:
       
    21             print "as expected, no SyntaxError"
       
    22 
       
    23 prog_text_1 = """
       
    24 def wrong1():
       
    25     a = 1
       
    26     b = 2
       
    27     global a
       
    28     global b
       
    29 """
       
    30 compile_and_check(prog_text_1)
       
    31 
       
    32 prog_text_2 = """
       
    33 def wrong2():
       
    34     print x
       
    35     global x
       
    36 """
       
    37 compile_and_check(prog_text_2)
       
    38 
       
    39 prog_text_3 = """
       
    40 def wrong3():
       
    41     print x
       
    42     x = 2
       
    43     global x
       
    44 """
       
    45 compile_and_check(prog_text_3)
       
    46 
       
    47 prog_text_4 = """
       
    48 global x
       
    49 x = 2
       
    50 """
       
    51 compile_and_check(prog_text_4, 0)