summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordongwenjuan <dong.wenjuan@zte.com.cn>2017-04-13 09:09:41 +0800
committerdongwenjuan <dong.wenjuan@zte.com.cn>2017-04-26 09:57:43 +0800
commite3f9edb5064e280056addd6fc47535d3ee1a2435 (patch)
treeecee7fd75398f91bb8729b685e5109123a7ee5a3
parent263682e54a4d75d1f33c76735ffa2fe9debe0161 (diff)
add framework and tox
JIRA: DOCTOR-93 Change-Id: Ife3255c4fe2d170c5d1b8354aaab24d5b1e3bc64 Signed-off-by: dongwenjuan <dong.wenjuan@zte.com.cn>
-rw-r--r--.gitignore3
-rw-r--r--test-requirements.txt22
-rw-r--r--tests/config.py24
-rw-r--r--tests/logger.py2
-rw-r--r--tests/main.py55
-rw-r--r--tox.ini13
6 files changed, 118 insertions, 1 deletions
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