From bf529e0d25856cac83fa47bbc0b80a8737f4885e Mon Sep 17 00:00:00 2001
From: Doug Hellmann <doug@doughellmann.com>
Date: Thu, 22 Mar 2018 15:11:02 -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.

Change-Id: I235adfdf373e3693dc5a83a35ae037e157eca6d2
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
---
 .zuul.yaml            |   2 +
 lower-constraints.txt | 131 ++++++++++++++++++++++++++++++++++++++++++
 tox.ini               |   7 +++
 3 files changed, 140 insertions(+)
 create mode 100644 lower-constraints.txt

diff --git a/.zuul.yaml b/.zuul.yaml
index 3e8467db..19cf1586 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -88,6 +88,7 @@
 - project:
     check:
       jobs:
+        - openstack-tox-lower-constraints
         - kuryr-libnetwork-install
         - kuryr-libnetwork-kuryr_lib-src-fullstack
         - kuryr-libnetwork-fullstack
@@ -96,6 +97,7 @@
         - kuryr-libnetwork-rally
     gate:
       jobs:
+        - openstack-tox-lower-constraints
         - kuryr-libnetwork-kuryr_lib-src-fullstack
         - kuryr-libnetwork-fullstack
         - kuryr-libnetwork-fullstack-py35
diff --git a/lower-constraints.txt b/lower-constraints.txt
new file mode 100644
index 00000000..e6316d58
--- /dev/null
+++ b/lower-constraints.txt
@@ -0,0 +1,131 @@
+alabaster==0.7.10
+alembic==0.9.9
+amqp==2.2.2
+appdirs==1.4.3
+Babel==2.3.4
+cachetools==2.0.1
+certifi==2018.1.18
+chardet==3.0.4
+click==6.7
+cliff==2.11.0
+cmd2==0.8.2
+contextlib2==0.5.5
+coverage==4.0
+ddt==1.0.1
+debtcollector==1.19.0
+decorator==4.2.1
+deprecation==2.0
+docker==2.4.2
+docker-pycreds==0.2.2
+docutils==0.14
+dogpile.cache==0.6.5
+dulwich==0.19.0
+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
+Flask==0.10
+future==0.16.0
+futurist==1.6.0
+greenlet==0.4.13
+hacking==0.12.0
+idna==2.6
+imagesize==1.0.0
+ipaddress==1.0.17
+iso8601==0.1.12
+itsdangerous==0.24
+Jinja2==2.10
+jmespath==0.9.3
+jsonpatch==1.21
+jsonpointer==2.0
+jsonschema==2.6.0
+keystoneauth1==3.4.0
+kombu==4.1.0
+kuryr-lib==0.5.0
+linecache2==1.0.0
+Mako==1.0.7
+MarkupSafe==1.0
+mccabe==0.2.1
+mock==2.0.0
+monotonic==1.4
+mox3==0.25.0
+msgpack==0.5.6
+munch==2.2.0
+netaddr==0.7.19
+netifaces==0.10.6
+neutron-lib==1.13.0
+openstackdocstheme==1.18.1
+openstacksdk==0.12.0
+os-client-config==1.28.0
+os-service-types==1.2.0
+os-testr==1.0.0
+osc-lib==1.10.0
+oslo.concurrency==3.25.0
+oslo.config==5.2.0
+oslo.context==2.20.0
+oslo.db==4.35.0
+oslo.i18n==3.20.0
+oslo.log==3.36.0
+oslo.messaging==5.36.0
+oslo.middleware==3.35.0
+oslo.policy==1.34.0
+oslo.serialization==2.18.0
+oslo.service==1.30.0
+oslo.utils==3.33.0
+oslotest==3.2.0
+packaging==17.1
+Paste==2.0.3
+PasteDeploy==1.5.2
+pbr==2.0.0
+pep8==1.5.7
+pika==0.10.0
+pika-pool==0.1.3
+prettytable==0.7.2
+pyflakes==0.8.1
+Pygments==2.2.0
+pyinotify==0.9.6
+pyparsing==2.2.0
+pyperclip==1.6.0
+pyroute2==0.5.0
+python-dateutil==2.7.0
+python-editor==1.0.3
+python-keystoneclient==3.15.0
+python-mimeparse==1.6.0
+python-neutronclient==6.7.0
+python-subunit==1.0.0
+pytz==2018.3
+PyYAML==3.12
+reno==2.5.0
+repoze.lru==0.7
+requests==2.18.4
+requestsexceptions==1.4.0
+rfc3986==1.1.0
+Routes==2.4.1
+simplejson==3.13.2
+six==1.10.0
+snowballstemmer==1.2.1
+Sphinx==1.6.2
+sphinxcontrib-websupport==1.0.1
+SQLAlchemy==1.2.5
+sqlalchemy-migrate==0.11.0
+sqlparse==0.2.4
+statsd==3.2.2
+stestr==2.0.0
+stevedore==1.28.0
+Tempita==0.5.2
+tenacity==4.9.0
+testrepository==0.0.20
+testresources==2.0.1
+testscenarios==0.4
+testtools==2.2.0
+traceback2==1.4.0
+unittest2==1.1.0
+urllib3==1.22
+vine==1.1.4
+voluptuous==0.11.1
+WebOb==1.7.4
+websocket-client==0.47.0
+Werkzeug==0.14.1
+wrapt==1.10.11
diff --git a/tox.ini b/tox.ini
index 7c457fda..0ccb1244 100644
--- a/tox.ini
+++ b/tox.ini
@@ -78,3 +78,10 @@ commands = {toxinidir}/tools/generate_config_file_samples.sh
 
 [testenv:releasenotes]
 commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
+
+[testenv:lower-constraints]
+basepython = python3
+deps =
+  -c{toxinidir}/lower-constraints.txt
+  -r{toxinidir}/test-requirements.txt
+  -r{toxinidir}/requirements.txt