summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-02-28 01:51:01 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-02-28 01:51:01 (GMT)
commit8e43cd79293d70ddb6728ef90335e442d96ce038 (patch)
tree6cacd9efabf15eddaccbdbdfd86214efe7da38d4
parentff443a51ebdb290fb329213e887eda54a2eaad62 (diff)
downloadcpython-8e43cd79293d70ddb6728ef90335e442d96ce038.zip
cpython-8e43cd79293d70ddb6728ef90335e442d96ce038.tar.gz
cpython-8e43cd79293d70ddb6728ef90335e442d96ce038.tar.bz2
verify that warnings are issued for bogus uses of global
-rw-r--r--Lib/test/output/test_global4
-rw-r--r--Lib/test/test_global.py40
2 files changed, 44 insertions, 0 deletions
diff --git a/Lib/test/output/test_global b/Lib/test/output/test_global
new file mode 100644
index 0000000..8208920
--- /dev/null
+++ b/Lib/test/output/test_global
@@ -0,0 +1,4 @@
+test_global
+got SyntaxWarning as expected
+got SyntaxWarning as expected
+got SyntaxWarning as expected
diff --git a/Lib/test/test_global.py b/Lib/test/test_global.py
new file mode 100644
index 0000000..7670ad1
--- /dev/null
+++ b/Lib/test/test_global.py
@@ -0,0 +1,40 @@
+"""Verify that warnings are issued for global statements following use"""
+
+from test_support import check_syntax
+
+import warnings
+
+warnings.filterwarnings("error", category=SyntaxWarning, module=__name__)
+
+def compile_and_catch_warning(text):
+ try:
+ compile(text, "<test code>", "exec")
+ except SyntaxWarning, msg:
+ print "got SyntaxWarning as expected"
+ else:
+ print "expected SyntaxWarning"
+
+prog_text_1 = """
+def wrong1():
+ a = 1
+ b = 2
+ global a
+ global b
+"""
+compile_and_catch_warning(prog_text_1)
+
+prog_text_2 = """
+def wrong2():
+ print x
+ global x
+"""
+compile_and_catch_warning(prog_text_2)
+
+prog_text_3 = """
+def wrong3():
+ print x
+ x = 2
+ global x
+"""
+compile_and_catch_warning(prog_text_3)
+