From edf9b852d700f67dcb6c21ec1c1bd9b937c82b9b Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Thu, 22 Mar 2018 19:01:24 -0400 Subject: [PATCH] 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 https://github.com/requests/requests/pull/4137/commits/4847f5b8cd4071099f06e178856bc9e1b9193b2e Change-Id: I78bffdf69113988192afc466d4ce04b3b97e796a Depends-On: https://review.openstack.org/555034 Signed-off-by: Doug Hellmann Co-Authored-By: Alex Schultz --- lower-constraints.txt | 114 ++++++++++++++++++++++ requirements.txt | 1 + tox.ini | 7 ++ tripleo_common/tests/utils/test_config.py | 14 ++- zuul.d/layout.yaml | 3 + 5 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 lower-constraints.txt diff --git a/lower-constraints.txt b/lower-constraints.txt new file mode 100644 index 000000000..550828e82 --- /dev/null +++ b/lower-constraints.txt @@ -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 diff --git a/requirements.txt b/requirements.txt index 200ed81a0..813e1cc84 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 metalsmith>=0.9.0 # Apache-2.0 jsonschema<3.0.0,>=2.6.0 # MIT +requests>=2.18.0,!=2.20.0 # Apache-2.0 diff --git a/tox.ini b/tox.ini index 44da970ea..953073c9d 100644 --- a/tox.ini +++ b/tox.ini @@ -69,3 +69,10 @@ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,releasenotes [testenv:releasenotes] basepython = python3 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 diff --git a/tripleo_common/tests/utils/test_config.py b/tripleo_common/tests/utils/test_config.py index fa6b04e94..d3b0bbd21 100644 --- a/tripleo_common/tests/utils/test_config.py +++ b/tripleo_common/tests/utils/test_config.py @@ -445,9 +445,17 @@ class TestConfig(base.TestCase): with warnings.catch_warnings(record=True) as w: self.config.download_config(stack, self.tmp_dir) mock_git_init.assert_called_once_with(self.tmp_dir) - self.assertEqual(1, len(w)) - assert issubclass(w[-1].category, DeprecationWarning) - assert "group:os-apply-config is deprecated" in str(w[-1].message) + # check that we got at least one of the warnings that we expected + # to throw + 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('tripleo_common.utils.config.Config.get_deployment_resource_id') diff --git a/zuul.d/layout.yaml b/zuul.d/layout.yaml index f2c79ad25..25f086330 100644 --- a/zuul.d/layout.yaml +++ b/zuul.d/layout.yaml @@ -67,5 +67,8 @@ dependencies: *deps_unit_lint - tripleo-ci-centos-7-containerized-undercloud-upgrades: dependencies: *deps_unit_lint + - openstack-tox-lower-constraints gate: queue: tripleo + jobs: + - openstack-tox-lower-constraints