mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			957 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			957 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Verify that warnings are issued for global statements following use."""
 | 
						|
 | 
						|
from test.test_support import run_unittest, check_syntax_error
 | 
						|
import unittest
 | 
						|
 | 
						|
import warnings
 | 
						|
warnings.filterwarnings("error", module="<test string>")
 | 
						|
 | 
						|
class GlobalTests(unittest.TestCase):
 | 
						|
 | 
						|
    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():
 | 
						|
    run_unittest(GlobalTests)
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    test_main()
 |