mirror of
				https://github.com/python/cpython.git
				synced 2025-10-27 19:54:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Support functions for testing scripts in the Tools directory."""
 | |
| import contextlib
 | |
| import importlib
 | |
| import os.path
 | |
| import unittest
 | |
| from test import support
 | |
| 
 | |
| 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 support.DirsOnSysPath(tooldir) as cm:
 | |
|         yield cm
 | |
| 
 | |
| def import_tool(toolname):
 | |
|     with support.DirsOnSysPath(scriptsdir):
 | |
|         return importlib.import_module(toolname)
 | |
| 
 | |
| def load_tests(*args):
 | |
|     return support.load_package_tests(os.path.dirname(__file__), *args)
 | 
