1226031Sstas#!/usr/bin/env python
2226031Sstas# -*- coding: utf-8 -*-
3226031Sstas#
4226031Sstas# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
5226031Sstas#
6226031Sstas# SPDX-License-Identifier: BSD-2-Clause
7226031Sstas#
8226031Sstas
9226031Sstas"""
10226031SstasThis script is a quick way to execute the tests for all capdl-python modules.
11226031Sstas"""
12226031Sstas
13226031Sstasfrom __future__ import absolute_import, division, print_function, \
14226031Sstas    unicode_literals
15226031Sstasfrom concurrencytest import ConcurrentTestSuite, fork_for_tests
16226031Sstas
17226031Sstasimport argparse
18226031Sstasimport multiprocessing
19226031Sstasimport os
20226031Sstasimport sys
21226031Sstasimport unittest
22226031Sstas
23226031SstasME = os.path.abspath(__file__)
24226031Sstas
25226031Sstas
26226031Sstasdef main(argv):
27226031Sstas    parser = argparse.ArgumentParser(prog=argv[0],
28226031Sstas                                     description='Run capdl tests')
29226031Sstas    parser.add_argument('--verbosity', '-v', default=1, type=int,
30226031Sstas                        help="Verbosity to run tests. 0 = quiet. 1 = default. 2 = verbose")
31226031Sstas    options = parser.parse_args(argv[1:])
32226031Sstas
33226031Sstas    # load the tests we want to run
34226031Sstas    loader = unittest.TestLoader()
35226031Sstas    test_suite = unittest.TestSuite()
36226031Sstas    print("Looking for tests in {0}".format(os.path.dirname(ME)))
37226031Sstas    test_suite.addTests(loader.discover(os.path.dirname(ME), pattern="*.py"))
38226031Sstas
39226031Sstas    concurrent_suite = ConcurrentTestSuite(test_suite, fork_for_tests(multiprocessing.cpu_count()))
40226031Sstas    runner = unittest.TextTestRunner(verbosity=options.verbosity)
41226031Sstas    result = runner.run(concurrent_suite)
42226031Sstas    if result.wasSuccessful():
43226031Sstas        return 0
44226031Sstas    return 1
45226031Sstas
46226031Sstas
47226031Sstasif __name__ == '__main__':
48226031Sstas    sys.exit(main(sys.argv))
49226031Sstas