edq.cli.testing.cli-test

Run specified CLI test files.

 1#  # pylint: disable=invalid-name
 2
 3"""
 4Run specified CLI test files.
 5"""
 6
 7import argparse
 8import sys
 9import unittest
10
11import edq.core.argparser
12import edq.testing.cli
13import edq.testing.cli_test
14
15def run_cli(args: argparse.Namespace) -> int:
16    """ Run the CLI. """
17
18    edq.testing.cli.add_test_paths(edq.testing.cli_test.CLITest, args.data_dir, args.paths)
19
20    runner = unittest.TextTestRunner(verbosity = 2)
21    tests = unittest.defaultTestLoader.loadTestsFromTestCase(edq.testing.cli_test.CLITest)
22    results = runner.run(tests)
23
24    return len(results.errors) + len(results.failures)
25
26def main() -> int:
27    """ Get a parser, parse the args, and call run. """
28    return run_cli(_get_parser().parse_args())
29
30def _get_parser() -> edq.core.argparser.Parser:
31    """ Get the parser. """
32
33    parser = edq.core.argparser.get_default_parser(__doc__.strip())
34
35    parser.add_argument('paths', metavar = 'PATH',
36        type = str, nargs = '+',
37        help = 'Path to CLI test case files.')
38
39    parser.add_argument('--data-dir', dest = 'data_dir',
40        action = 'store', type = str, default = '.',
41        help = 'The additional data directory (expansion of __DATA_DIR__) used for tests (default: %(default)s).')
42
43    return parser
44
45if (__name__ == '__main__'):
46    sys.exit(main())
def run_cli(args: argparse.Namespace) -> int:
16def run_cli(args: argparse.Namespace) -> int:
17    """ Run the CLI. """
18
19    edq.testing.cli.add_test_paths(edq.testing.cli_test.CLITest, args.data_dir, args.paths)
20
21    runner = unittest.TextTestRunner(verbosity = 2)
22    tests = unittest.defaultTestLoader.loadTestsFromTestCase(edq.testing.cli_test.CLITest)
23    results = runner.run(tests)
24
25    return len(results.errors) + len(results.failures)

Run the CLI.

def main() -> int:
27def main() -> int:
28    """ Get a parser, parse the args, and call run. """
29    return run_cli(_get_parser().parse_args())

Get a parser, parse the args, and call run.