mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +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()
 |