From e766b9e47f904d38bf4667a3e95b0c55749657c4 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 19 Jun 2015 14:16:38 +0200 Subject: [PATCH] Fix tox -e py34 * Add requirements-py3.txt: get the master branch of glance_store from github until a new release of glance_store including all my Python 3 fixed will be released. * Add test-requirements-py3.txt: remove qpid-python and MySQL-python (not compatible with Python 3), add PyMySQL * tox.ini: add py34 test environment running tests with testtools.run. Use a whitelist of tests which are known to pass on Python 3.4. testr cannot be used because it loads all tests, and not all tests are compatible with Python 3.4 yet. Change-Id: If19af8351e9497db26c9cd62393d22d2043a3903 --- requirements-py3.txt | 64 +++++++++++++++++++++++++++++++++++++++ test-requirements-py3.txt | 33 ++++++++++++++++++++ tox.ini | 27 +++++++++++++++++ 3 files changed, 124 insertions(+) create mode 100644 requirements-py3.txt create mode 100644 test-requirements-py3.txt diff --git a/requirements-py3.txt b/requirements-py3.txt new file mode 100644 index 0000000000..13f7c39999 --- /dev/null +++ b/requirements-py3.txt @@ -0,0 +1,64 @@ +# 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. + +pbr>=0.11,<2.0 +# +# The greenlet package must be compiled with gcc and needs +# the Python.h headers. Make sure you install the python-dev +# package to get the right headers... +greenlet>=0.3.2 + +# < 0.8.0/0.8 does not work, see https://bugs.launchpad.net/bugs/1153983 +SQLAlchemy>=0.9.7,<=0.9.99 +anyjson>=0.3.3 +eventlet>=0.17.3 +PasteDeploy>=1.5.0 +Routes>=1.12.3,!=2.0 +WebOb>=1.2.3 +sqlalchemy-migrate>=0.9.5 +httplib2>=0.7.5 +kombu>=3.0.7 +pycrypto>=2.6 +iso8601>=0.1.9 +oslo.config>=1.11.0 # Apache-2.0 +oslo.concurrency>=1.8.0 # Apache-2.0 +oslo.context>=0.2.0 # Apache-2.0 +oslo.utils>=1.4.0 # Apache-2.0 +stevedore>=1.3.0 # Apache-2.0 +taskflow>=0.7.1 +keystonemiddleware>=1.5.0 +WSME>=0.6 +# For openstack/common/lockutils +posix_ipc + +# For Swift storage backend. +python-swiftclient>=2.2.0 + +# For VMware storage backed. +oslo.vmware>=0.11.1 # Apache-2.0 + +# For paste.util.template used in keystone.common.template +Paste + +jsonschema>=2.0.0,<3.0.0 +python-keystoneclient>=1.3.0 +pyOpenSSL>=0.11 +# Required by openstack.common libraries +six>=1.9.0 + +oslo.db>=1.7.0 # Apache-2.0 +oslo.i18n>=1.5.0 # Apache-2.0 +oslo.log>=1.0.0 # Apache-2.0 +oslo.messaging>=1.8.0 # Apache-2.0 +oslo.policy>=0.3.1 # Apache-2.0 +oslo.serialization>=1.4.0 # Apache-2.0 + +retrying>=1.2.3,!=1.3.0 # Apache-2.0 +osprofiler>=0.3.0 # Apache-2.0 + +# Glance Store +-e git+https://github.com/openstack/glance_store.git#egg=glance_store + +# Artifact repository +semantic_version>=2.3.1 diff --git a/test-requirements-py3.txt b/test-requirements-py3.txt new file mode 100644 index 0000000000..d1c5017d16 --- /dev/null +++ b/test-requirements-py3.txt @@ -0,0 +1,33 @@ +# 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. + +# Hacking already pins down pep8, pyflakes and flake8 +hacking>=0.10.0,<0.11 + +# For translations processing +Babel>=1.3 + +# Needed for testing +coverage>=3.6 +discover +fixtures>=0.3.14 +mox3>=0.7.0 +mock>=1.0 +sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 +requests>=2.5.2 +testrepository>=0.0.18 +testtools>=0.9.36,!=1.2.0 +psutil>=1.1.1,<2.0.0 +oslotest>=1.5.1 # Apache-2.0 +# Optional packages that should be installed when testing +PyMySQL>=0.6.2 # MIT License +psycopg2 +pysendfile>=2.0.0 +xattr>=0.4 + +# Documentation +oslosphinx>=2.5.0 # Apache-2.0 + +# Glance catalog index +elasticsearch>=1.3.0 diff --git a/tox.ini b/tox.ini index b1308e2283..027734c37b 100644 --- a/tox.ini +++ b/tox.ini @@ -16,6 +16,33 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY [tox:jenkins] downloadcache = ~/cache/pip +[testenv:py34] +deps = -r{toxinidir}/requirements-py3.txt + -r{toxinidir}/test-requirements-py3.txt +commands = + python -m testtools.run \ + glance.tests.unit.common.test_client \ + glance.tests.unit.common.test_property_utils \ + glance.tests.unit.common.test_scripts \ + glance.tests.unit.common.test_swift_store_utils \ + glance.tests.unit.test_artifacts_plugin_loader \ + glance.tests.unit.test_auth \ + glance.tests.unit.test_cached_images \ + glance.tests.unit.test_context \ + glance.tests.unit.test_context_middleware \ + glance.tests.unit.test_domain \ + glance.tests.unit.test_domain_proxy \ + glance.tests.unit.test_gateway \ + glance.tests.unit.test_image_cache_client \ + glance.tests.unit.test_jsonpatchmixin \ + glance.tests.unit.test_manage \ + glance.tests.unit.test_notifier \ + glance.tests.unit.test_opts \ + glance.tests.unit.test_schema \ + glance.tests.unit.test_scrubber \ + glance.tests.unit.test_store_artifact \ + glance.tests.unit.test_store_location + [testenv:pep8] commands = flake8 {posargs}