From e3f9edb5064e280056addd6fc47535d3ee1a2435 Mon Sep 17 00:00:00 2001 From: dongwenjuan Date: Thu, 13 Apr 2017 09:09:41 +0800 Subject: add framework and tox JIRA: DOCTOR-93 Change-Id: Ife3255c4fe2d170c5d1b8354aaab24d5b1e3bc64 Signed-off-by: dongwenjuan --- .gitignore | 3 +++ test-requirements.txt | 22 +++++++++++++++++++++ tests/config.py | 24 ++++++++++++++++++++++ tests/logger.py | 2 +- tests/main.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ tox.ini | 13 ++++++++++++ 6 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 test-requirements.txt create mode 100644 tests/config.py create mode 100644 tests/main.py create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index d2ded272..65b51a69 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ /docs_output/ /releng/ /tests/*.img + +#Build results +.tox diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 00000000..a2ce1d9b --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,22 @@ +Flask==0.10.1 +paramiko==1.16.0 +scp==0.10.2 +requests>=2.8.0 +oslo.config==3.22.0 # Apache-2.0 +python-openstackclient==2.3.0 +python-ceilometerclient==2.6.2 +python-heatclient==1.7.0 +python-keystoneclient==3.5.0 +python-neutronclient==6.0.0 +python-novaclient==6.0.0 +python-congressclient==1.5.0 +virtualenv==15.1.0 +coverage>=4.0 # Apache-2.0 +oslotest>=1.10.0 # Apache-2.0 +python-subunit>=0.0.18 # Apache-2.0/BSD +testtools>=1.4.0 # MIT +oslotest>=1.10.0 # Apache-2.0 +testrepository>=0.0.18 # Apache-2.0/BSD +testresources>=0.2.4 # Apache-2.0/BSD +testscenarios>=0.4 # Apache-2.0/BSD +oslosphinx>=4.7.0 # Apache-2.0 \ No newline at end of file diff --git a/tests/config.py b/tests/config.py new file mode 100644 index 00000000..2a062c22 --- /dev/null +++ b/tests/config.py @@ -0,0 +1,24 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +from oslo_config import cfg + + +def list_opts(): + return [] + + +def prepare_conf(conf=None): + if conf is None: + conf = cfg.ConfigOpts() + + for group, options in list_opts(): + conf.register_opts(list(options), + group=None if group == 'DEFAULT' else group) + + return conf diff --git a/tests/logger.py b/tests/logger.py index a4f33234..72043ab3 100644 --- a/tests/logger.py +++ b/tests/logger.py @@ -16,7 +16,7 @@ import logging import os -class Logger: +class Logger(object): def __init__(self, logger_name): CI_DEBUG = os.getenv('CI_DEBUG') diff --git a/tests/main.py b/tests/main.py new file mode 100644 index 00000000..e36bb4f0 --- /dev/null +++ b/tests/main.py @@ -0,0 +1,55 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import sys + +import config +import logger as doctor_log + + +LOG = doctor_log.Logger(__name__).getLogger() + + +class DoctorTest(object): + + def __init__(self, conf): + self.conf = conf + + def run(self): + """run doctor test""" + try: + LOG.info('doctor test starting.......') + # prepare the cloud env + + # preparing VM image... + + # creating test user... + + # creating VM... + + # creating alarm... + + # starting doctor sample components... + + # injecting host failure... + + # verify the test results + except Exception as e: + LOG.error('doctor test failed: %s ', e) + + +def main(): + """doctor main""" + conf = config.prepare_conf() + + doctor = DoctorTest(conf) + doctor.run() + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..c859582e --- /dev/null +++ b/tox.ini @@ -0,0 +1,13 @@ +[tox] +minversion = 2.3.1 +envlist = verify +skipsdist = True + +[testenv] +install_command = pip install -U {opts} {packages} +setenv = VIRTUAL_ENV={envdir} +deps = -r{toxinidir}/test-requirements.txt + +[testenv:verify] +changedir = {toxinidir}/tests +commands = python main.py -- cgit 1.2.3-korg