add lower-constraints job

Create a tox environment for running the unit tests against the lower
bounds of the dependencies.

Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.

Add openstack-tox-lower-constraints job to the zuul configuration.

See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.

Also: fix up test due to changes in requirements/make it work with
Python 3.6

Change-Id: Iedb7fe7e5bbb8935a5a958a301ed3c5540005bbc
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2018-03-22 16:41:49 -04:00 committed by Alex Kavanagh
parent 8b6d7bf97a
commit 2a17b6674d
6 changed files with 147 additions and 23 deletions

View File

@ -26,3 +26,7 @@
check:
jobs:
- openstack-ansible-nova-lxd
- openstack-tox-lower-constraints
gate:
jobs:
- openstack-tox-lower-constraints

111
lower-constraints.txt Normal file
View File

@ -0,0 +1,111 @@
alabaster==0.7.10
amqp==2.2.2
appdirs==1.4.3
asn1crypto==0.24.0
Babel==2.5.3
cachetools==2.0.1
certifi==2018.1.18
cffi==1.11.5
chardet==3.0.4
cliff==2.11.0
cmd2==0.8.1
contextlib2==0.5.5
coverage==4.5.1
cryptography==2.1.4
ddt==1.1.2
debtcollector==1.19.0
docutils==0.14
enum-compat==0.0.2
eventlet==0.20.0
extras==1.0.0
fasteners==0.14.1
fixtures==3.0.0
flake8==2.5.5
future==0.16.0
futurist==1.6.0
greenlet==0.4.13
hacking==0.12.0
idna==2.6
imagesize==1.0.0
iso8601==0.1.12
Jinja2==2.10
keystoneauth1==3.4.0
kombu==4.1.0
linecache2==1.0.0
MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0
monotonic==1.4
mox3==0.25.0
msgpack==0.5.6
netaddr==0.7.19
netifaces==0.10.6
nose==1.3.7
nosexcover==1.0.11
os-brick==2.3.0
os-client-config==1.29.0
os-testr==1.0.0
os-vif==1.9.0
os-win==4.0.0
oslo.concurrency==3.26.0
oslo.config==5.2.0
oslo.context==2.20.0
oslo.i18n==3.20.0
oslo.log==3.37.0
oslo.messaging==5.36.0
oslo.middleware==3.35.0
oslo.privsep==1.28.0
oslo.serialization==2.25.0
oslo.service==1.30.0
oslo.utils==3.36.0
oslo.versionedobjects==1.32.0
oslosphinx==4.18.0
oslotest==3.3.0
Paste==2.0.3
PasteDeploy==1.5.2
pbr==3.1.1
pep8==1.5.7
pika==0.10.0
pika-pool==0.1.3
prettytable==0.7.2
pycparser==2.18
pyflakes==0.8.1
Pygments==2.2.0
pyinotify==0.9.6
pylxd==2.2.6
pyparsing==2.2.0
pyperclip==1.6.0
pyroute2==0.4.21
python-dateutil==2.7.0
python-mimeparse==1.6.0
python-subunit==1.2.0
pytz==2018.3
PyYAML==3.12
repoze.lru==0.7
requests==2.18.4
requests-toolbelt==0.8.0
requests-unixsocket==0.1.5
requestsexceptions==1.4.0
retrying==1.3.3
rfc3986==1.1.0
Routes==2.4.1
six==1.11.0
snowballstemmer==1.2.1
Sphinx==1.6.5
sphinxcontrib-websupport==1.0.1
statsd==3.2.2
stestr==2.0.0
stevedore==1.28.0
tenacity==4.9.0
testrepository==0.0.20
testscenarios==0.5.0
testtools==2.3.0
traceback2==1.4.0
unittest2==1.1.0
urllib3==1.22
vine==1.1.4
voluptuous==0.11.1
WebOb==1.7.4
wrapt==1.10.11
ws4py==0.5.1
wsgi-intercept==1.6.0

View File

@ -40,11 +40,13 @@ class ToProfileTest(test.NoDBTestCase):
self.patchers.append(CONF_patcher)
self.CONF = CONF_patcher.start()
self.CONF.instances_path = '/i'
self.CONF.lxd.root_dir = ''
CONF_patcher = mock.patch('nova.virt.lxd.flavor.CONF')
self.patchers.append(CONF_patcher)
self.CONF2 = CONF_patcher.start()
self.CONF2.lxd.pool = None
self.CONF2.lxd.root_dir = ''
def tearDown(self):
super(ToProfileTest, self).tearDown()

View File

@ -2,15 +2,15 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
pbr!=2.1.0,>=2.0.0 # Apache-2.0
os-brick>=2.2.0 # Apache-2.0
os-vif!=1.8.0,>=1.7.0 # Apache-2.0
pbr!=2.1.0,>=3.1.1 # Apache-2.0
os-brick>=2.3.0 # Apache-2.0
os-vif!=1.8.0,>=1.9.0 # Apache-2.0
oslo.config>=5.2.0 # Apache-2.0
oslo.concurrency>=3.26.0 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0
oslo.i18n>=3.15.3 # Apache-2.0
oslo.log>=3.36.0 # Apache-2.0
pylxd>=2.2.5 # Apache-2.0
oslo.utils>=3.36.0 # Apache-2.0
oslo.i18n>=3.20.0 # Apache-2.0
oslo.log>=3.37.0 # Apache-2.0
pylxd>=2.2.6 # Apache-2.0
# XXX: rockstar (17 Feb 2016) - oslo_config imports
# debtcollector, which imports this, but doesn't

View File

@ -4,15 +4,15 @@
hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
ddt>=1.0.1 # MIT
python-subunit>=1.0.0 # Apache-2.0/BSD
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
oslosphinx>=4.7.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
testrepository>=0.0.18 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
coverage!=4.4,>=4.5.1 # Apache-2.0
ddt>=1.1.2 # MIT
python-subunit>=1.2.0 # Apache-2.0/BSD
sphinx!=1.6.6,!=1.6.7,>=1.6.5 # BSD
oslosphinx>=4.18.0 # Apache-2.0
oslotest>=3.3.0 # Apache-2.0
testrepository>=0.0.20 # Apache-2.0/BSD
testscenarios>=0.5.0 # Apache-2.0/BSD
testtools>=2.3.0 # MIT
os-testr>=1.0.0 # Apache-2.0
nosexcover>=1.0.10 # BSD
wsgi-intercept>=1.4.1 # MIT License
nosexcover>=1.0.11 # BSD
wsgi-intercept>=1.6.0 # MIT License

17
tox.ini
View File

@ -1,6 +1,6 @@
[tox]
minversion = 2.0
envlist = py{35,27},pep8
envlist = py{3,27},pep8
skipsdist = True
[testenv]
@ -29,13 +29,13 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY OS_DEB
commands =
{[testenv]commands}
/bin/cp -r {toxinidir}/nova/virt/lxd/ {toxinidir}/.tox/py27/src/nova/nova/virt/
ostestr '{posargs}'
ostestr {posargs}
[testenv:py35]
[testenv:py3]
commands =
{[testenv]commands}
/bin/cp -r {toxinidir}/nova/virt/lxd/ {toxinidir}/.tox/py35/src/nova/nova/virt/
ostestr '{posargs}'
/bin/cp -r {toxinidir}/nova/virt/lxd/ {toxinidir}/.tox/py3/src/nova/nova/virt/
ostestr {posargs}
[testenv:pep8]
basepython = python2.7
@ -65,3 +65,10 @@ show-source = True
ignore = E123,E125,H803,H904,H405,H404,H305,H306,H307
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools/colorizer.py
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt