mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| # Runs all tests for Python-based scripts.
 | |
| # Any Python test suites located in test/scripts/ will be executed automatically by this script.
 | |
| 
 | |
| import sys
 | |
| from pathlib import Path
 | |
| from unittest import TestLoader, TextTestRunner
 | |
| 
 | |
| SCRIPTS_DIR = Path(__file__).parent.parent / "scripts"
 | |
| TEST_DIR = Path(__file__).parent.parent / "test/scripts/"
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     # Add the directory containing scripts to be tested to PYTHONPATH. This means that these
 | |
|     # scripts can be imported from anywhere (in particular from the test suites) as if they were
 | |
|     # installed globally. This is necessary because scripts and their tests are in separate
 | |
|     # directories not recognized by Python as a part of the same package (i.e. their common parent
 | |
|     # directory does not have an __init__.py file).
 | |
|     # NOTE: This does not play well with relative imports from test suites so the suites must be
 | |
|     # placed directly in TEST_DIR and not in its subdirectories. Relative imports from scripts
 | |
|     # themselves work fine though.
 | |
|     sys.path.insert(0, str(SCRIPTS_DIR))
 | |
| 
 | |
|     # This is equivalent to `python -m unittest discover --start-directory $TEST_DIR`
 | |
|     test_suite = TestLoader().discover(start_dir=TEST_DIR)
 | |
|     result = TextTestRunner().run(test_suite)
 | |
| 
 | |
|     if len(result.errors) > 0 or len(result.failures) > 0:
 | |
|         sys.exit(1)
 |