python-2.5.2/win32/Lib/test/test_global.py
changeset 0 ae805ac0140d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python-2.5.2/win32/Lib/test/test_global.py	Fri Apr 03 17:19:34 2009 +0100
@@ -0,0 +1,51 @@
+"""Verify that warnings are issued for global statements following use."""
+
+from test.test_support import check_syntax
+
+import warnings
+
+warnings.filterwarnings("error", module="<test code>")
+
+def compile_and_check(text, should_fail=1):
+    try:
+        compile(text, "<test code>", "exec")
+    except SyntaxError, msg:
+        if should_fail:
+            print "got SyntaxError as expected"
+        else:
+            print "raised unexpected SyntaxError:", text
+    else:
+        if should_fail:
+            print "should have raised SyntaxError:", text
+        else:
+            print "as expected, no SyntaxError"
+
+prog_text_1 = """
+def wrong1():
+    a = 1
+    b = 2
+    global a
+    global b
+"""
+compile_and_check(prog_text_1)
+
+prog_text_2 = """
+def wrong2():
+    print x
+    global x
+"""
+compile_and_check(prog_text_2)
+
+prog_text_3 = """
+def wrong3():
+    print x
+    x = 2
+    global x
+"""
+compile_and_check(prog_text_3)
+
+prog_text_4 = """
+global x
+x = 2
+"""
+compile_and_check(prog_text_4, 0)