[james-pages,r=corey.bryant] Add tox support for lint and unit tests.

This commit is contained in:
Corey Bryant 2015-11-02 21:17:02 +00:00
commit f4bdcb799f
8 changed files with 65 additions and 6 deletions

View File

@ -1,3 +1,5 @@
bin
.coverage
.tox
.testrepository
tags

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

@ -299,8 +299,9 @@ def resource_map():
conf = neutron_plugin_attribute(plugin, 'config', net_manager)
svcs = neutron_plugin_attribute(plugin, 'services', net_manager)
ctxts = (neutron_plugin_attribute(plugin, 'contexts', net_manager)
or [])
ctxts = (neutron_plugin_attribute(plugin,
'contexts', net_manager) or
[])
resource_map[conf] = {}
resource_map[conf]['services'] = svcs
resource_map[conf]['contexts'] = ctxts
@ -373,8 +374,8 @@ def determine_packages():
if (net_manager in ['flatmanager', 'flatdhcpmanager'] and
config('multi-host').lower() == 'yes'):
packages.extend(['nova-api', 'nova-network'])
elif (net_manager in ['quantum', 'neutron']
and neutron_plugin_legacy_mode()):
elif (net_manager in ['quantum', 'neutron'] and
neutron_plugin_legacy_mode()):
plugin = neutron_plugin()
pkg_lists = neutron_plugin_attribute(plugin, 'packages', net_manager)
for pkg_list in pkg_lists:

11
requirements.txt Normal file
View File

@ -0,0 +1,11 @@
# 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.
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

8
test-requirements.txt Normal file
View File

@ -0,0 +1,8 @@
# 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

29
tox.ini Normal file
View File

@ -0,0 +1,29 @@
[tox]
envlist = lint,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:lint]
basepython = python2.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = flake8 {posargs} actions hooks unit_tests tests
charm proof
[testenv:venv]
commands = {posargs}
[flake8]
ignore = E402,E226
exclude = hooks/charmhelpers

View File

@ -49,7 +49,7 @@ class TestNovaComputeUpgradeActions(CharmTestCase):
@patch('charmhelpers.contrib.openstack.utils.git_install_requested') # noqa
@patch('charmhelpers.contrib.openstack.utils.openstack_upgrade_available') # noqa
@patch('charmhelpers.contrib.openstack.utils.juju_log')
def test_openstack_upgrade_false(self, log, upgrade_avail, git_requested,
def test_openstack_upgrade_false(self, log, upgrade_avail, git_requested,
action_set, config):
git_requested.return_value = False

View File

@ -326,7 +326,7 @@ class NovaComputeUtilsTests(CharmTestCase):
call(authkey_root + '0'),
call(authkey_root + '1'),
call(authkey_root + '2')
]
]
self.assertEquals(sorted(self.relation_get.call_args_list),
sorted(expected_relations))