Add tox and testr config and fix apt_pkg error exposed by tox unit_test run

This commit is contained in:
Liam Young 2016-05-24 15:50:48 +00:00
parent 13571d0fb1
commit f4b4fd658e
8 changed files with 72 additions and 1 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.pyc
.tox
.testrepository

4
.gitreview Normal file
View File

@ -0,0 +1,4 @@
[gerrit]
host=review.openstack.org
port=29418
project=openstack/charm-hacluster.git

8
.testr.conf Normal file
View File

@ -0,0 +1,8 @@
[DEFAULT]
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
${PYTHON:-python} -m subunit.run discover -t ./ ./unit_tests $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list

View File

@ -3,19 +3,20 @@
import sys import sys
import os import os
sys.path.append('hooks/') sys.path.append('hooks/')
import subprocess
from charmhelpers.core.hookenv import action_fail from charmhelpers.core.hookenv import action_fail
from utils import ( from utils import (
pause_unit, pause_unit,
resume_unit, resume_unit,
) )
def pause(args): def pause(args):
"""Pause the hacluster services. """Pause the hacluster services.
@raises Exception should the service fail to stop. @raises Exception should the service fail to stop.
""" """
pause_unit() pause_unit()
def resume(args): def resume(args):
"""Resume the hacluster services. """Resume the hacluster services.
@raises Exception should the service fail to start.""" @raises Exception should the service fail to start."""
@ -24,6 +25,7 @@ def resume(args):
ACTIONS = {"pause": pause, "resume": resume} ACTIONS = {"pause": pause, "resume": resume}
def main(args): def main(args):
action_name = os.path.basename(args[0]) action_name = os.path.basename(args[0])
try: try:

12
requirements.txt Normal file
View File

@ -0,0 +1,12 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
pbr>=1.8.0,<1.9.0
PyYAML>=3.1.0
simplejson>=2.2.0
netifaces>=0.10.4
netaddr>=0.7.12,!=0.7.16
Jinja2>=2.6 # BSD License (3 clause)
six>=1.9.0
dnspython>=1.12.0
psutil>=1.1.1,<2.0.0

9
test-requirements.txt Normal file
View File

@ -0,0 +1,9 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
coverage>=3.6
mock>=1.2
flake8>=2.2.4,<=2.4.1
os-testr>=0.4.1
charm-tools>=2.0.0
requests==2.6.0

29
tox.ini Normal file
View File

@ -0,0 +1,29 @@
[tox]
envlist = pep8,py27
skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0
install_command =
pip install --allow-unverified python-apt {opts} {packages}
commands = ostestr {posargs}
[testenv:py27]
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:pep8]
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = flake8 {posargs} hooks unit_tests tests actions
charm-proof
[testenv:venv]
commands = {posargs}
[flake8]
ignore = E402,E226
exclude = hooks/charmhelpers

View File

@ -1,8 +1,12 @@
import mock import mock
import os import os
import sys
import tempfile import tempfile
import unittest import unittest
mock_apt = mock.MagicMock()
sys.modules['apt_pkg'] = mock_apt
import hooks import hooks