mirror of
https://github.com/python/cpython.git
synced 2024-12-23 08:44:20 +08:00
41fe615539
Merged revisions 79534,79537,79539,79558,79606 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r79534 | florent.xicluna | 2010-03-31 23:21:54 +0200 (mer, 31 mar 2010) | 2 lines Fix test for xml.etree when using a non-ascii path. And use check_warnings instead of catch_warnings. ........ r79537 | florent.xicluna | 2010-03-31 23:40:32 +0200 (mer, 31 mar 2010) | 2 lines Fix typo ........ r79539 | florent.xicluna | 2010-04-01 00:01:03 +0200 (jeu, 01 avr 2010) | 2 lines Replace catch_warnings with check_warnings when it makes sense. Use assertRaises context manager to simplify some tests. ........ r79558 | florent.xicluna | 2010-04-01 20:17:09 +0200 (jeu, 01 avr 2010) | 2 lines #7092: Fix some -3 warnings, and fix Lib/platform.py when the path contains a double-quote. ........ r79606 | florent.xicluna | 2010-04-02 19:26:42 +0200 (ven, 02 avr 2010) | 2 lines Backport some robotparser test and skip the test if the external resource is not available. ........
62 lines
1.3 KiB
Python
62 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()
|