fuel-main/test/integration.py

58 lines
1.7 KiB
Python

import os.path
import os
import sys
import logging
import argparse
paths = [
os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'devops'),
]
sys.path[:0] = paths
import integration
logger = logging.getLogger('integration')
def main():
parser = argparse.ArgumentParser(description="Integration test suite")
parser.add_argument("-i", "--iso", dest="iso",
help="iso image path or http://url")
parser.add_argument("-l", "--level", dest="log_level", type=str,
help="log level", choices=["DEBUG", "INFO", "WARNING", "ERROR"],
default="ERROR", metavar="LEVEL")
parser.add_argument('--cache-file', dest='cache_file', type=str,
help='file to store integration environment name')
parser.add_argument('command', choices=('setup', 'destroy', 'test'), default='test',
help="command to execute")
params = parser.parse_args()
numeric_level = getattr(logging, params.log_level.upper())
logging.basicConfig(level=numeric_level)
integration.ci = integration.Ci(cache_file=params.cache_file, iso=params.iso)
if params.command == 'setup':
result = integration.ci.setup_environment()
elif params.command == 'destroy':
result = integration.ci.destroy_environment()
elif params.command == 'test':
import nose
import nose.config
nc = nose.config.Config()
nc.verbosity = 3
nose.main(module=integration, config=nc, argv=[__file__])
result = True
else:
print("Unknown command '%s'" % params.command)
sys.exit(1)
if not result:
sys.exit(1)
if __name__ == "__main__":
main()