diff options
author | Wesley Wiedenmeier <wesley.wiedenmeier@gmail.com> | 2017-06-08 18:23:31 -0400 |
---|---|---|
committer | Scott Moser <smoser@brickies.net> | 2017-06-08 18:24:17 -0400 |
commit | 76d58265e34851b78e952a7f275340863c90a9f5 (patch) | |
tree | 91bf17879724b180e43bff07e428bb9089cbb395 /tests/cloud_tests/__main__.py | |
parent | ad2680a689ab78847ccce7766d6591797d99e219 (diff) | |
download | vyos-cloud-init-76d58265e34851b78e952a7f275340863c90a9f5.tar.gz vyos-cloud-init-76d58265e34851b78e952a7f275340863c90a9f5.zip |
Integration Testing: tox env, pyxld 2.2.3, and revamp framework
Massive update to clean up and greatly enhance the integration testing
framework developed by Wesley Wiedenmeier.
- Updated tox environment to run integration test 'citest' to utilize
pylxd 2.2.3
- Add support for distro feature flags
- add framework for feature flags to release config with feature groups
and overrides allowed in any release conf override level
- add support for feature flags in platform and config handling
- during collect, skip testcases that require features not supported by
the image with a warning message
- Enable additional distros (i.e. centos, debian)
- Add 'bddeb' command to build a deb from the current working tree
cleanly in a container, so deps do not have to be installed on host
- Adds a command line option '--preserve-data' that ensures that
collected data will be left after tests run. This also allows the
directory to store collected data in during the run command to be
specified using '--data-dir'.
- Updated Read the Docs testing page and doc strings for pep 257
compliance
Diffstat (limited to 'tests/cloud_tests/__main__.py')
-rw-r--r-- | tests/cloud_tests/__main__.py | 45 |
1 files changed, 10 insertions, 35 deletions
diff --git a/tests/cloud_tests/__main__.py b/tests/cloud_tests/__main__.py index ed654ad3..260ddb3f 100644 --- a/tests/cloud_tests/__main__.py +++ b/tests/cloud_tests/__main__.py @@ -1,19 +1,17 @@ # This file is part of cloud-init. See LICENSE file for license information. +"""Main entry point.""" + import argparse import logging -import shutil import sys -import tempfile -from tests.cloud_tests import (args, collect, manage, verify) +from tests.cloud_tests import args, bddeb, collect, manage, run_funcs, verify from tests.cloud_tests import LOG def configure_log(args): - """ - configure logging - """ + """Configure logging.""" level = logging.INFO if args.verbose: level = logging.DEBUG @@ -22,41 +20,15 @@ def configure_log(args): LOG.setLevel(level) -def run(args): - """ - run full test suite - """ - failed = 0 - args.data_dir = tempfile.mkdtemp(prefix='cloud_test_data_') - LOG.debug('using tmpdir %s', args.data_dir) - try: - failed += collect.collect(args) - failed += verify.verify(args) - except Exception: - failed += 1 - raise - finally: - # TODO: make this configurable via environ or cmdline - if failed: - LOG.warning('some tests failed, leaving data in %s', args.data_dir) - else: - shutil.rmtree(args.data_dir) - return failed - - def main(): - """ - entry point for cloud test suite - """ + """Entry point for cloud test suite.""" # configure parser parser = argparse.ArgumentParser(prog='cloud_tests') subparsers = parser.add_subparsers(dest="subcmd") subparsers.required = True def add_subparser(name, description, arg_sets): - """ - add arguments to subparser - """ + """Add arguments to subparser.""" subparser = subparsers.add_parser(name, help=description) for (_args, _kwargs) in (a for arg_set in arg_sets for a in arg_set): subparser.add_argument(*_args, **_kwargs) @@ -80,9 +52,12 @@ def main(): # run handler LOG.debug('running with args: %s\n', parsed) return { + 'bddeb': bddeb.bddeb, 'collect': collect.collect, 'create': manage.create, - 'run': run, + 'run': run_funcs.run, + 'tree_collect': run_funcs.tree_collect, + 'tree_run': run_funcs.tree_run, 'verify': verify.verify, }[parsed.subcmd](parsed) |