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 adjusted a warning check in the utils.config test due to python3

Also updated requests to 2.18.0 so that the python uploader can use
requests as a context manager which was not added until v2.18.0. See
4847f5b8cd

Change-Id: I78bffdf69113988192afc466d4ce04b3b97e796a
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Co-Authored-By: Alex Schultz <aschultz@redhat.com>
This commit is contained in:
Doug Hellmann 2018-03-22 19:01:24 -04:00 committed by Alex Schultz
parent 94201288aa
commit edf9b852d7
5 changed files with 136 additions and 3 deletions

114
lower-constraints.txt Normal file
View File

@ -0,0 +1,114 @@
alabaster==0.7.10
appdirs==1.3.0
asn1crypto==0.23.0
Babel==2.3.4
bashate==0.2
cffi==1.7.0
cliff==2.8.0
cmd2==0.8.0
coverage==4.0
cryptography==2.1
debtcollector==1.2.0
decorator==3.4.0
deprecation==1.0
docker-pycreds==0.2.1
docker==2.4.2
docutils==0.11
dogpile.cache==0.6.2
dulwich==0.15.0
eventlet==0.20.0
extras==1.0.0
fasteners==0.7.0
fixtures==3.0.0
flake8==2.5.5
futures==3.0.0;python_version=='2.7' or python_version=='2.6'
gitdb==0.6.4
GitPython==1.0.1
hacking==0.12.0
idna==2.6
imagesize==0.7.1
iso8601==0.1.11
Jinja2==2.10
jmespath==0.9.0
jsonpatch==1.16
jsonpointer==1.13
jsonschema==2.6.0
keystoneauth1==3.4.0
linecache2==1.0.0
MarkupSafe==1.0
mccabe==0.2.1
metalsmith==0.9.0
mistral-lib==0.3.0
mock==2.0.0
monotonic==0.6
mox3==0.20.0
msgpack-python==0.4.0
munch==2.1.0
netaddr==0.7.18
netifaces==0.10.4
openstackdocstheme==1.18.1
openstacksdk==0.11.2
os-client-config==1.28.0
os-service-types==1.2.0
osc-lib==1.8.0
oslo.concurrency==3.26.0
oslo.config==5.2.0
oslo.context==2.19.2
oslo.i18n==3.15.3
oslo.log==3.36.0
oslo.serialization==2.18.0
oslo.utils==3.33.0
oslotest==3.2.0
paramiko==2.0.0
passlib==1.7.0
pbr==2.0.0
pep8==1.5.7
positional==1.2.1
prettytable==0.7.2
pyasn1==0.1.8
pycparser==2.18
pyflakes==0.8.1
Pygments==2.2.0
pyinotify==0.9.6
pyOpenSSL==17.1.0
pyparsing==2.1.0
pyperclip==1.5.27
python-cinderclient==3.3.0
python-dateutil==2.5.3
python-glanceclient==2.8.0
python-heatclient==1.10.0
python-ironic-inspector-client==1.5.0
python-ironicclient==2.3.0
python-keystoneclient==3.8.0
python-mimeparse==1.6.0
python-mistralclient==3.1.0
python-novaclient==9.1.0
python-openstackclient==3.12.0
python-subunit==1.0.0
python-swiftclient==3.2.0
python-zaqarclient==1.0.0
pytz==2013.6
PyYAML==3.12
reno==2.5.0
requests-mock==1.2.0
requests==2.18.0
requestsexceptions==1.2.0
rfc3986==0.3.1
simplejson==3.5.1
six==1.10.0
smmap==0.9.0
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
stestr==2.0.0
stevedore==1.20.0
tenacity==4.4.0
testrepository==0.0.18
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
urllib3===1.21.1
warlock==1.2.0
websocket-client==0.44.0
wrapt==1.7.0

View File

@ -30,3 +30,4 @@ tenacity>=4.4.0 # Apache-2.0
futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD
metalsmith>=0.9.0 # Apache-2.0 metalsmith>=0.9.0 # Apache-2.0
jsonschema<3.0.0,>=2.6.0 # MIT jsonschema<3.0.0,>=2.6.0 # MIT
requests>=2.18.0,!=2.20.0 # Apache-2.0

View File

@ -69,3 +69,10 @@ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,releasenotes
[testenv:releasenotes] [testenv:releasenotes]
basepython = python3 basepython = python3
commands = bash -c tools/releasenotes_tox.sh commands = bash -c tools/releasenotes_tox.sh
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt

View File

@ -445,9 +445,17 @@ class TestConfig(base.TestCase):
with warnings.catch_warnings(record=True) as w: with warnings.catch_warnings(record=True) as w:
self.config.download_config(stack, self.tmp_dir) self.config.download_config(stack, self.tmp_dir)
mock_git_init.assert_called_once_with(self.tmp_dir) mock_git_init.assert_called_once_with(self.tmp_dir)
self.assertEqual(1, len(w)) # check that we got at least one of the warnings that we expected
assert issubclass(w[-1].category, DeprecationWarning) # to throw
assert "group:os-apply-config is deprecated" in str(w[-1].message) self.assertGreaterEqual(len(w), 1)
self.assertGreaterEqual(len([x for x in w
if issubclass(x.category,
DeprecationWarning)]),
1)
self.assertGreaterEqual(len([x for x in w
if "group:os-apply-config"
in str(x.message)]),
1)
@patch.object(ooo_config.Config, 'initialize_git_repo') @patch.object(ooo_config.Config, 'initialize_git_repo')
@patch('tripleo_common.utils.config.Config.get_deployment_resource_id') @patch('tripleo_common.utils.config.Config.get_deployment_resource_id')

View File

@ -67,5 +67,8 @@
dependencies: *deps_unit_lint dependencies: *deps_unit_lint
- tripleo-ci-centos-7-containerized-undercloud-upgrades: - tripleo-ci-centos-7-containerized-undercloud-upgrades:
dependencies: *deps_unit_lint dependencies: *deps_unit_lint
- openstack-tox-lower-constraints
gate: gate:
queue: tripleo queue: tripleo
jobs:
- openstack-tox-lower-constraints