Major Hayden b204440ddc Updating tests for openstack-ansible-security
This patch adds a framework for testing the role with check mode as well as a
fully functional test that secures a system.  The two new tests will be
enabled by default when the check mode improvements are merged and some common
playbook failures are removed.

Closes-bug: 1521229

Change-Id: Iaffb982c4c9776bcc4b219e257d83591d58d0cee
2015-12-02 20:50:54 +00:00

88 lines
2.3 KiB
INI

[tox]
minversion = 1.6
skipsdist = True
envlist = docs,pep8,bashate,ansible-syntax,ansible-lint,ansible-functional,ansible-check
[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt
[testenv:docs]
commands=
python setup.py build_sphinx
# environment used by the -infra templated docs job
[testenv:venv]
deps = -r{toxinidir}/test-requirements.txt
commands = {posargs}
# Run hacking/flake8 check for all python files
[testenv:pep8]
deps = flake8
whitelist_externals = bash
commands =
bash -c "grep -Irl \
-e '!/usr/bin/env python' \
-e '!/bin/python' \
-e '!/usr/bin/python' \
--exclude-dir '.*' \
--exclude-dir 'doc' \
--exclude-dir '*.egg' \
--exclude-dir '*.egg-info' \
--exclude 'tox.ini' \
--exclude '*.sh' \
{toxinidir} | xargs flake8 --verbose"
[flake8]
# Ignores the following rules due to how ansible modules work in general
# F403 'from ansible.module_utils.basic import *' used; unable to detect undefined names
# H303 No wildcard (*) import.
ignore=F403,H303
# Run bashate check for all bash scripts
# Ignores the following rules:
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
[testenv:bashate]
deps = bashate
whitelist_externals = bash
commands =
bash -c "grep -Irl \
-e '!/usr/bin/env bash' \
-e '!/bin/bash' \
-e '!/bin/sh' \
--exclude-dir '.*' \
--exclude-dir '*.egg' \
--exclude-dir '*.egg-info' \
--exclude 'tox.ini' \
{toxinidir} | xargs bashate --verbose --ignore=E003"
[testenv:ansible-syntax]
changedir = tests
commands =
ansible-playbook -i inventory \
--syntax-check \
--list-tasks \
-e "rolename={toxinidir}" \
test.yml
[testenv:ansible-lint]
changedir = tests
commands = ansible-lint test.yml
[testenv:ansible-functional]
changedir = tests
commands =
ansible-playbook -i inventory \
-e "rolename={toxinidir}" \
test.yml
[testenv:ansible-check]
changedir = tests
commands =
ansible-playbook -i inventory \
--check \
-e "rolename={toxinidir}" \
test.yml