mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 5822ab672a
			
		
	
	
		5822ab672a
		
			
		
	
	
	
	
		
			
			Instead of explicitly enumerate test classes for run_unittest()
use the unittest ability to discover tests. This also makes these
tests discoverable and runnable with unittest.
load_tests() can be used for dynamic generating tests and adding
doctests. setUpModule(), tearDownModule() and addModuleCleanup()
can be used for running code before and after all module tests..
(cherry picked from commit 40348acc18)
		
	
			
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Verify that warnings are issued for global statements following use."""
 | |
| 
 | |
| from test.support import 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, lineno=4, offset=5)
 | |
| 
 | |
|     def test2(self):
 | |
|         prog_text_2 = """\
 | |
| def wrong2():
 | |
|     print(x)
 | |
|     global x
 | |
| """
 | |
|         check_syntax_error(self, prog_text_2, lineno=3, offset=5)
 | |
| 
 | |
|     def test3(self):
 | |
|         prog_text_3 = """\
 | |
| def wrong3():
 | |
|     print(x)
 | |
|     x = 2
 | |
|     global x
 | |
| """
 | |
|         check_syntax_error(self, prog_text_3, lineno=4, offset=5)
 | |
| 
 | |
|     def test4(self):
 | |
|         prog_text_4 = """\
 | |
| global x
 | |
| x = 2
 | |
| """
 | |
|         # this should work
 | |
|         compile(prog_text_4, "<test string>", "exec")
 | |
| 
 | |
| 
 | |
| def setUpModule():
 | |
|     cm = warnings.catch_warnings()
 | |
|     cm.__enter__()
 | |
|     unittest.addModuleCleanup(cm.__exit__, None, None, None)
 | |
|     warnings.filterwarnings("error", module="<test string>")
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     unittest.main()
 |