Source code for ample.testing.run_tests
#!/usr/bin/env ccp4-python
import argparse
from ample.testing import integration_util, unittest_util
from ample.util.argparse_util import add_core_options, add_cluster_submit_options
__author__ = "Felix Simkovic"
__date__ = "25-Mar-2016"
[docs]def run_integration(argd):
m = integration_util.AMPLEIntegrationFramework(test_cases=argd['test_cases'],
run_dir=argd['run_dir'])
if argd['clean']:
m.clean() if argd['test_cases'] else m.clean(clean_dir=True)
else:
m.run(**argd)
[docs]def run_unittest(argd):
m = unittest_util.AMPLEUnittestFramework()
m.run(buffer=argd['buffer'], cases=argd['test_cases'], verbosity=argd['verbosity'])
[docs]def main():
desc = """ccp4-python -m ample.testing <command> [<args>]
Available tests include:
integration Integration testing of typical Ample routines
unittest Unittesting of all Ample subroutines
"""
parser = argparse.ArgumentParser(prog="run_tests.py", usage=desc)
# Add options that work on all runtypes
add_core_options(parser)
suboptions = parser.add_subparsers(help="Testing framework options")
integ = suboptions.add_parser("integration", help="Integration testing with examples")
integ.set_defaults(which="integration")
integration_util.add_cmd_options(integ)
add_cluster_submit_options(integ)
unit = suboptions.add_parser("unittest", help="Unittest all functions")
unit.set_defaults(which="unittest")
unittest_util.add_cmd_options(unit)
argd = vars(parser.parse_args())
which_test = argd['which']
if which_test is 'integration':
run_integration(argd)
elif which_test is 'unittest':
run_unittest(argd)
if __name__ == "__main__":
main()