mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 7a6cc3eb66
			
		
	
	
		7a6cc3eb66
		
			
		
	
	
	
	
		
			
			The test_peg_generator and test_tools.test_freeze tests now require the 'cpu' resource. Skip these tests unless the 'cpu' resource is enabled (it is disabled by default). These tests are no longer skipped if Python is built with ASAN or MSAN sanitizer.
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Support functions for testing scripts in the Tools directory."""
 | |
| import contextlib
 | |
| import importlib
 | |
| import os.path
 | |
| import unittest
 | |
| from test import support
 | |
| from test.support import import_helper
 | |
| 
 | |
| 
 | |
| if not support.has_subprocess_support:
 | |
|     raise unittest.SkipTest("test module requires subprocess")
 | |
| 
 | |
| 
 | |
| basepath = os.path.normpath(
 | |
|         os.path.dirname(                 # <src/install dir>
 | |
|             os.path.dirname(                # Lib
 | |
|                 os.path.dirname(                # test
 | |
|                     os.path.dirname(__file__)))))    # test_tools
 | |
| 
 | |
| toolsdir = os.path.join(basepath, 'Tools')
 | |
| scriptsdir = os.path.join(toolsdir, 'scripts')
 | |
| 
 | |
| def skip_if_missing(tool=None):
 | |
|     if tool:
 | |
|         tooldir = os.path.join(toolsdir, tool)
 | |
|     else:
 | |
|         tool = 'scripts'
 | |
|         tooldir = scriptsdir
 | |
|     if not os.path.isdir(tooldir):
 | |
|         raise unittest.SkipTest(f'{tool} directory could not be found')
 | |
| 
 | |
| @contextlib.contextmanager
 | |
| def imports_under_tool(name, *subdirs):
 | |
|     tooldir = os.path.join(toolsdir, name, *subdirs)
 | |
|     with import_helper.DirsOnSysPath(tooldir) as cm:
 | |
|         yield cm
 | |
| 
 | |
| def import_tool(toolname):
 | |
|     with import_helper.DirsOnSysPath(scriptsdir):
 | |
|         return importlib.import_module(toolname)
 | |
| 
 | |
| def load_tests(*args):
 | |
|     return support.load_package_tests(os.path.dirname(__file__), *args)
 |