Add integration job for Zuul

Change-Id: I0f4d71322eef32dd9ff14ea14f3287d6c2559a09
This commit is contained in:
Ilya Shakhat 2017-11-02 14:11:21 +01:00
parent acdd04e4e0
commit 9534077689
5 changed files with 110 additions and 0 deletions

30
.zuul.yaml Normal file
View File

@ -0,0 +1,30 @@
- project:
name: openstack/os-faults
check:
jobs:
- os-faults-integration-py27
- os-faults-integration-py35
gate:
jobs:
- os-faults-integration-py27
- os-faults-integration-py35
- job:
name: os-faults-integration-py27
parent: openstack-tox
description: |
Run integration tests under Python 2.7
To run tests manually use ``tox -e integration-py27`` command.
vars:
tox_envlist: integration-py27
- job:
name: os-faults-integration-py35
parent: openstack-tox
description: |
Run integration tests under Python 3.5
To run tests manually use ``tox -e integration-py35`` command.
vars:
tox_envlist: integration-py35

View File

View File

@ -0,0 +1,12 @@
cloud_management:
driver: universal
node_discover:
driver: node_list
args:
- ip: localhost
services:
memcached:
args:
grep: memcached
service_name: memcached
driver: system_service

View File

@ -0,0 +1,48 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import logging
import os
import re
import shlex
from oslo_concurrency import processutils
from os_faults.tests.unit import test
CONFIG_FILE = os.path.join(os.path.dirname(__file__), 'os-faults.yaml')
LOG = logging.getLogger(__name__)
class TestOSInjectFault(test.TestCase):
def test_connect(self):
cmd = 'os-inject-fault -c %s -v' % CONFIG_FILE
command_stdout, command_stderr = processutils.execute(
*shlex.split(cmd))
success = re.search('Connected to cloud successfully', command_stderr)
self.assertTrue(success)
class TestOSFaults(test.TestCase):
def test_connect(self):
cmd = 'os-faults verify -c %s' % CONFIG_FILE
command_stdout, command_stderr = processutils.execute(
*shlex.split(cmd))
success = re.search('Connected to cloud successfully', command_stderr)
self.assertTrue(success)

20
tox.ini
View File

@ -50,6 +50,26 @@ commands =
install_command = {[testenv:common-constraints]install_command}
commands = {[testenv:cover]commands}
[testenv:integration]
setenv = {[testenv]setenv}
OS_TEST_PATH=./os_faults/tests/integration
deps = {[testenv]deps}
oslo.concurrency
commands =
py.test -vvvv --html={envlogdir}/pytest_results.html --self-contained-html --durations=10 "os_faults/tests/integration" {posargs}
[testenv:integration-py27]
basepython = python2.7
setenv = {[testenv:integration]setenv}
deps = {[testenv:integration]deps}
commands = {[testenv:integration]commands}
[testenv:integration-py35]
basepython = python3.5
setenv = {[testenv:integration]setenv}
deps = {[testenv:integration]deps}
commands = {[testenv:integration]commands}
[testenv:docs]
commands =
rm -rf doc/build