eb9f3d858b
The change moves the role out from the main repo lxc_host repository and into its own standalone repository. Items within this change: * The role has been updated to ensure it runs standalone. * Tests added to the role within tox. * Functional tests added to the role that can either be run via the run_tests.sh script or using tox. * dev requirements have been updated for testing usecases. * Docs added to both the README.rst file as well as the docs folder. Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
98 lines
2.8 KiB
INI
98 lines
2.8 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
envlist = docs,pep8,bashate,ansible-syntax,ansible-lint
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install -U {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
deps = -r{toxinidir}/dev-requirements.txt
|
|
commands =
|
|
/usr/bin/find . -type f -name "*.pyc" -delete
|
|
ansible-galaxy install \
|
|
--role-file=ansible-role-requirements.yml \
|
|
--ignore-errors \
|
|
--force
|
|
|
|
[testenv:docs]
|
|
commands = python setup.py build_sphinx
|
|
|
|
# environment used by the -infra templated docs job
|
|
[testenv:venv]
|
|
deps = -r{toxinidir}/dev-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-galaxy install \
|
|
--role-file=ansible-role-requirements.yml \
|
|
--ignore-errors \
|
|
--force
|
|
ansible-playbook -i inventory \
|
|
--syntax-check \
|
|
--list-tasks \
|
|
-e "rolename={toxinidir}" \
|
|
test.yml
|
|
|
|
[testenv:ansible-lint]
|
|
changedir = tests
|
|
commands =
|
|
ansible-galaxy install \
|
|
--role-file=ansible-role-requirements.yml \
|
|
--ignore-errors \
|
|
--force
|
|
ansible-lint test.yml
|
|
|
|
[testenv:ansible-functional]
|
|
changedir = tests
|
|
commands =
|
|
ansible-galaxy install \
|
|
--role-file=ansible-role-requirements.yml \
|
|
--ignore-errors \
|
|
--force
|
|
ansible-playbook -i inventory \
|
|
-e "rolename={toxinidir}" \
|
|
test.yml
|