Add tox support
This commit is contained in:
parent
9cd5acc5d6
commit
2fb135098d
@ -1,2 +1,5 @@
|
|||||||
bin
|
bin
|
||||||
.coverage
|
.coverage
|
||||||
|
.testrepository
|
||||||
|
.tox
|
||||||
|
tags
|
||||||
|
8
.testr.conf
Normal file
8
.testr.conf
Normal 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
|
11
requirements.txt
Normal file
11
requirements.txt
Normal 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
8
test-requirements.txt
Normal 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
|
@ -14,7 +14,6 @@ from charmhelpers.contrib.openstack.amulet.deployment import (
|
|||||||
from charmhelpers.contrib.openstack.amulet.utils import (
|
from charmhelpers.contrib.openstack.amulet.utils import (
|
||||||
OpenStackAmuletUtils,
|
OpenStackAmuletUtils,
|
||||||
DEBUG,
|
DEBUG,
|
||||||
#ERROR
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Use DEBUG to turn on debug logging
|
# Use DEBUG to turn on debug logging
|
||||||
@ -306,12 +305,15 @@ class CinderCephBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
def get_broker_response(self):
|
def get_broker_response(self):
|
||||||
broker_request = self.get_broker_request()
|
broker_request = self.get_broker_request()
|
||||||
response_key = "broker-rsp-cinder-ceph-0"
|
response_key = "broker-rsp-cinder-ceph-0"
|
||||||
ceph_sentrys = [self.ceph0_sentry, self.ceph1_sentry, self.ceph2_sentry]
|
ceph_sentrys = [self.ceph0_sentry,
|
||||||
|
self.ceph1_sentry,
|
||||||
|
self.ceph2_sentry]
|
||||||
for sentry in ceph_sentrys:
|
for sentry in ceph_sentrys:
|
||||||
relation_data = sentry.relation('client', 'cinder-ceph:ceph')
|
relation_data = sentry.relation('client', 'cinder-ceph:ceph')
|
||||||
if relation_data.get(response_key):
|
if relation_data.get(response_key):
|
||||||
broker_response = json.loads(relation_data[response_key])
|
broker_response = json.loads(relation_data[response_key])
|
||||||
if broker_request['request-id'] == broker_response['request-id']:
|
if (broker_request['request-id'] ==
|
||||||
|
broker_response['request-id']):
|
||||||
return broker_response
|
return broker_response
|
||||||
|
|
||||||
def test_200_cinderceph_ceph_ceph_relation(self):
|
def test_200_cinderceph_ceph_ceph_relation(self):
|
||||||
@ -321,8 +323,10 @@ class CinderCephBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
relation = ['ceph', 'ceph:client']
|
relation = ['ceph', 'ceph:client']
|
||||||
|
|
||||||
req = {
|
req = {
|
||||||
"api-version": 1,
|
"api-version": 1,
|
||||||
"ops": [{"replicas": 3, "name": "cinder-ceph", "op": "create-pool"}]
|
"ops": [{"replicas": 3,
|
||||||
|
"name": "cinder-ceph",
|
||||||
|
"op": "create-pool"}]
|
||||||
}
|
}
|
||||||
expected = {
|
expected = {
|
||||||
'private-address': u.valid_ip,
|
'private-address': u.valid_ip,
|
||||||
@ -340,7 +344,6 @@ class CinderCephBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
def test_201_ceph_cinderceph_ceph_relation(self):
|
def test_201_ceph_cinderceph_ceph_relation(self):
|
||||||
u.log.debug('Checking ceph:client to cinder-ceph:ceph '
|
u.log.debug('Checking ceph:client to cinder-ceph:ceph '
|
||||||
'relation data...')
|
'relation data...')
|
||||||
response_key = "broker-rsp-cinder-ceph-0"
|
|
||||||
ceph_unit = self.ceph0_sentry
|
ceph_unit = self.ceph0_sentry
|
||||||
relation = ['client', 'cinder-ceph:ceph']
|
relation = ['client', 'cinder-ceph:ceph']
|
||||||
expected = {
|
expected = {
|
||||||
@ -355,7 +358,8 @@ class CinderCephBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
amulet.raise_status(amulet.FAIL, msg=msg)
|
amulet.raise_status(amulet.FAIL, msg=msg)
|
||||||
broker_response = self.get_broker_response()
|
broker_response = self.get_broker_response()
|
||||||
if not broker_response or broker_response['exit-code'] != 0:
|
if not broker_response or broker_response['exit-code'] != 0:
|
||||||
msg='Broker request invalid or failed: {}'.format(broker_response)
|
msg = ('Broker request invalid'
|
||||||
|
' or failed: {}'.format(broker_response))
|
||||||
amulet.raise_status(amulet.FAIL, msg=msg)
|
amulet.raise_status(amulet.FAIL, msg=msg)
|
||||||
|
|
||||||
def test_202_cinderceph_cinder_backend_relation(self):
|
def test_202_cinderceph_cinder_backend_relation(self):
|
||||||
|
29
tox.ini
Normal file
29
tox.ini
Normal 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} hooks unit_tests tests
|
||||||
|
charm proof
|
||||||
|
|
||||||
|
[testenv:venv]
|
||||||
|
commands = {posargs}
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
ignore = E402,E226
|
||||||
|
exclude = hooks/charmhelpers
|
@ -155,4 +155,4 @@ class TestCinderHooks(CharmTestCase):
|
|||||||
backend_name='test',
|
backend_name='test',
|
||||||
subordinate_configuration=json.dumps({'test': 1}),
|
subordinate_configuration=json.dumps({'test': 1}),
|
||||||
stateless=True,
|
stateless=True,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user