 4c8d86c1d9
			
		
	
	
		4c8d86c1d9
		
	
	
	
	
		
			
			This makes it clearer which files are for writing bot tests vs tests of the infrastructure.
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| import unittest
 | |
| import argparse
 | |
| 
 | |
| from importlib import import_module
 | |
| 
 | |
| def parse_args():
 | |
|     parser = argparse.ArgumentParser()
 | |
|     parser.add_argument('--coverage',
 | |
|                         nargs='?',
 | |
|                         const=True,
 | |
|                         default=False,
 | |
|                         help='compute test coverage ("--coverage combine" to combine with previous reports)')
 | |
|     return parser.parse_args()
 | |
| 
 | |
| def run_all():
 | |
|     TOOLS_DIR = os.path.dirname(os.path.abspath(__file__))
 | |
|     ROOT_DIR = os.path.abspath(os.path.join(TOOLS_DIR, '..'))
 | |
|     BOTS_DIR = os.path.join(ROOT_DIR, 'zulib_bots')
 | |
|     sys.path.insert(0, BOTS_DIR)
 | |
| 
 | |
|     options = parse_args()
 | |
| 
 | |
|     if options.coverage:
 | |
|         import coverage
 | |
|         cov = coverage.Coverage(config_file="tools/.coveragerc")
 | |
|         if options.coverage == 'combine':
 | |
|             cov.load()
 | |
|         cov.start()
 | |
| 
 | |
|     module = 'zulip_bots/zulip_bots/tests/'
 | |
|     suite = unittest.defaultTestLoader.discover(module)
 | |
| 
 | |
|     suite = unittest.TestSuite([suite])
 | |
|     runner = unittest.TextTestRunner(verbosity=2)
 | |
|     result = runner.run(suite)
 | |
|     if result.failures or result.errors:
 | |
|         sys.exit(1)
 | |
| 
 | |
|     if not result.failures and options.coverage:
 | |
|         cov.stop()
 | |
|         cov.data_suffix = False  # Disable suffix so that filename is .coverage
 | |
|         cov.save()
 | |
|         cov.html_report()
 | |
|         print("HTML report saved under directory 'htmlcov'.")
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     run_all()
 |