Update testing bits for consistency

Change-Id: I32ce64eb490db8df7e379c7f39e0ec11973075bf
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
Kevin Carter 2016-09-16 20:54:25 -05:00 committed by Travis Truman
parent b35928cf83
commit 44196c54ed
3 changed files with 62 additions and 9 deletions

11
.gitignore vendored
View File

@ -29,7 +29,7 @@ doc/build/
*.log *.log
*.sql *.sql
*.sqlite *.sqlite
logs/ logs/*
# OS generated files # # OS generated files #
###################### ######################
@ -60,5 +60,12 @@ ChangeLog
# Files created by releasenotes build # Files created by releasenotes build
releasenotes/build releasenotes/build
# Vagrant testing artifacts # Test temp files
tests/plugins
tests/playbooks
tests/test.retry
# Vagrant artifacts
.vagrant .vagrant

33
manual-test.rc Normal file
View File

@ -0,0 +1,33 @@
export VIRTUAL_ENV=$(pwd)
export ANSIBLE_HOST_KEY_CHECKING=False
export ANSIBLE_SSH_CONTROL_PATH=/tmp/%%h-%%r
# TODO (odyssey4me) These are only here as they are non-standard folder
# names for Ansible 1.9.x. We are using the standard folder names for
# Ansible v2.x. We can remove this when we move to Ansible 2.x.
export ANSIBLE_ACTION_PLUGINS=${HOME}/.ansible/plugins/action
export ANSIBLE_CALLBACK_PLUGINS=${HOME}/.ansible/plugins/callback
export ANSIBLE_FILTER_PLUGINS=${HOME}/.ansible/plugins/filter
export ANSIBLE_LOOKUP_PLUGINS=${HOME}/.ansible/plugins/lookup
# This is required as the default is the current path or a path specified
# in ansible.cfg
export ANSIBLE_LIBRARY=${HOME}/.ansible/plugins/library
# This is required as the default is '/etc/ansible/roles' or a path
# specified in ansible.cfg
export ANSIBLE_ROLES_PATH=${HOME}/.ansible/roles:$(pwd)/..
export ANSIBLE_SSH_ARGS="-o ControlMaster=no \
-o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-o ServerAliveInterval=64 \
-o ServerAliveCountMax=1024 \
-o Compression=no \
-o TCPKeepAlive=yes \
-o VerifyHostKeyDNS=no \
-o ForwardX11=no \
-o ForwardAgent=yes"
echo "Run manual functional tests by executing the following:"
echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml -e \"rolename=$(pwd)\""

27
tox.ini
View File

@ -94,7 +94,7 @@ commands =
[testenv:ansible] [testenv:ansible]
deps = deps =
{[testenv]deps} {[testenv]deps}
ansible==2.1.1.0 ansible==2.1.1
ansible-lint>=2.7.0,<3.0.0 ansible-lint>=2.7.0,<3.0.0
setenv = setenv =
{[testenv]setenv} {[testenv]setenv}
@ -113,7 +113,7 @@ setenv =
# This is required as the default is '/etc/ansible/roles' or a path # This is required as the default is '/etc/ansible/roles' or a path
# specified in ansible.cfg # specified in ansible.cfg
ANSIBLE_ROLES_PATH = {homedir}/.ansible/roles:{toxinidir}/.. ANSIBLE_ROLES_PATH = {homedir}/.ansible/roles:{toxinidir}/..
ANSIBLE_TRANSPORT = ssh ANSIBLE_TRANSPORT = "ssh"
commands = commands =
rm -rf {homedir}/.ansible/plugins rm -rf {homedir}/.ansible/plugins
git clone https://git.openstack.org/openstack/openstack-ansible-plugins \ git clone https://git.openstack.org/openstack/openstack-ansible-plugins \
@ -151,6 +151,22 @@ commands =
ansible-lint {toxinidir} ansible-lint {toxinidir}
[testenv:func_base]
# NOTE(odyssey4me): this target does not use constraints because
# it doesn't work in OpenStack-CI yet. Once that's fixed, we can
# drop the install_command.
install_command =
pip install -U --force-reinstall {opts} {packages}
[testenv:func_logs]
commands =
bash -c 'mkdir -p {toxinidir}/logs'
bash -c 'rsync --archive --verbose --ignore-errors /var/log/ /openstack/log/ {toxinidir}/logs/ || true'
bash -c 'find "{toxinidir}/logs/" -type f | sed "p;s|$|.txt|" | xargs -n2 mv'
bash -c 'command gzip --best --recursive "{toxinidir}/logs/"'
[testenv:functional] [testenv:functional]
# Ignore_errors is set to true so that the logs are collected at the # Ignore_errors is set to true so that the logs are collected at the
# end of the run. This will not produce a false positive. Any # end of the run. This will not produce a false positive. Any
@ -161,7 +177,7 @@ ignore_errors = True
# it doesn't work in OpenStack-CI yet. Once that's fixed, we can # it doesn't work in OpenStack-CI yet. Once that's fixed, we can
# drop the install_command. # drop the install_command.
install_command = install_command =
pip install -U --force-reinstall {opts} {packages} {[testenv:func_base]install_command}
deps = deps =
{[testenv:ansible]deps} {[testenv:ansible]deps}
setenv = setenv =
@ -172,10 +188,7 @@ commands =
-e "rolename={toxinidir}" \ -e "rolename={toxinidir}" \
-e "install_test_packages=True" \ -e "install_test_packages=True" \
{toxinidir}/tests/test.yml -vvvv {toxinidir}/tests/test.yml -vvvv
bash -c 'mkdir -p {toxinidir}/logs' {[testenv:func_logs]commands}
bash -c 'rsync --archive --verbose --ignore-errors /var/log/ /openstack/log/ {toxinidir}/logs/ || true'
bash -c 'find "{toxinidir}/logs/" -type f | sed "p;s|$|.txt|" | xargs -n2 mv'
bash -c 'command gzip --best --recursive "{toxinidir}/logs/"'
[testenv:linters] [testenv:linters]