mirror of
https://github.com/python/cpython.git
synced 2025-10-20 16:33:53 +00:00

svn+ssh://pythondev@svn.python.org/python/trunk ........ r79539 | florent.xicluna | 2010-04-01 01:01:03 +0300 (Thu, 01 Apr 2010) | 2 lines Replace catch_warnings with check_warnings when it makes sense. Use assertRaises context manager to simplify some tests. ........
61 lines
1.3 KiB
Python
61 lines
1.3 KiB
Python
"""Verify that warnings are issued for global statements following use."""
|
|
|
|
from test.support import run_unittest, check_syntax_error, check_warnings
|
|
import unittest
|
|
import warnings
|
|
|
|
|
|
class GlobalTests(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self._warnings_manager = check_warnings()
|
|
self._warnings_manager.__enter__()
|
|
warnings.filterwarnings("error", module="<test string>")
|
|
|
|
def tearDown(self):
|
|
self._warnings_manager.__exit__(None, None, None)
|
|
|
|
|
|
def test1(self):
|
|
prog_text_1 = """\
|
|
def wrong1():
|
|
a = 1
|
|
b = 2
|
|
global a
|
|
global b
|
|
"""
|
|
check_syntax_error(self, prog_text_1)
|
|
|
|
def test2(self):
|
|
prog_text_2 = """\
|
|
def wrong2():
|
|
print(x)
|
|
global x
|
|
"""
|
|
check_syntax_error(self, prog_text_2)
|
|
|
|
def test3(self):
|
|
prog_text_3 = """\
|
|
def wrong3():
|
|
print(x)
|
|
x = 2
|
|
global x
|
|
"""
|
|
check_syntax_error(self, prog_text_3)
|
|
|
|
def test4(self):
|
|
prog_text_4 = """\
|
|
global x
|
|
x = 2
|
|
"""
|
|
# this should work
|
|
compile(prog_text_4, "<test string>", "exec")
|
|
|
|
|
|
def test_main():
|
|
with warnings.catch_warnings():
|
|
warnings.filterwarnings("error", module="<test string>")
|
|
run_unittest(GlobalTests)
|
|
|
|
if __name__ == "__main__":
|
|
test_main()
|