Cleanup py27 support
This repo is now testing only with Python 3, so let's make a few cleanups: - Remove py2 stanza from setup.py - Remove obsolete sections from setup.cfg - Update classifiers - Switch to using sphinx-build - Remove install_command from tox.ini, the default is fine - Remove Babel from requirements, it's not needed for running. - Remove obsolete babel.cfg - Use TOX_CONSTRAINTS_FILE instead of obsolete UPPER_CONSTRAINTS_FILE. - Update hacking to current 3.1.0 version - Remove use of six library Change-Id: I233dfc7a06cbd2e098499629f63d0b8f2db5258e
This commit is contained in:
parent
820a42650d
commit
4195ae11b2
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
pbr>=2.0 # Apache-2.0
|
pbr>=2.0 # Apache-2.0
|
||||||
oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
|
oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
|
||||||
six>=1.9.0 # MIT
|
|
||||||
oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0
|
oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0
|
||||||
oslo.utils>=3.20.0 # Apache-2.0
|
oslo.utils>=3.20.0 # Apache-2.0
|
||||||
testtools>=1.4.0 # MIT
|
testtools>=1.4.0 # MIT
|
||||||
|
30
setup.cfg
30
setup.cfg
@ -13,37 +13,17 @@ classifier =
|
|||||||
License :: OSI Approved :: Apache Software License
|
License :: OSI Approved :: Apache Software License
|
||||||
Operating System :: POSIX :: Linux
|
Operating System :: POSIX :: Linux
|
||||||
Programming Language :: Python
|
Programming Language :: Python
|
||||||
|
Programming Language :: Python :: Implementation :: CPython
|
||||||
|
Programming Language :: Python :: 3 :: Only
|
||||||
Programming Language :: Python :: 3
|
Programming Language :: Python :: 3
|
||||||
Programming Language :: Python :: 3.3
|
Programming Language :: Python :: 3.6
|
||||||
Programming Language :: Python :: 3.4
|
Programming Language :: Python :: 3.7
|
||||||
|
Programming Language :: Python :: 3.8
|
||||||
|
|
||||||
[files]
|
[files]
|
||||||
packages =
|
packages =
|
||||||
zaqar_tempest_plugin
|
zaqar_tempest_plugin
|
||||||
|
|
||||||
[build_sphinx]
|
|
||||||
all-files = 1
|
|
||||||
warning-is-error = 1
|
|
||||||
source-dir = doc/source
|
|
||||||
build-dir = doc/build
|
|
||||||
|
|
||||||
[upload_sphinx]
|
|
||||||
upload-dir = doc/build/html
|
|
||||||
|
|
||||||
[compile_catalog]
|
|
||||||
directory = zaqar_tempest_plugin/locale
|
|
||||||
domain = zaqar_tempest_plugin
|
|
||||||
|
|
||||||
[update_catalog]
|
|
||||||
domain = zaqar_tempest_plugin
|
|
||||||
output_dir = zaqar_tempest_plugin/locale
|
|
||||||
input_file = zaqar_tempest_plugin/locale/zaqar_tempest_plugin.pot
|
|
||||||
|
|
||||||
[extract_messages]
|
|
||||||
keywords = _ gettext ngettext l_ lazy_gettext
|
|
||||||
mapping_file = babel.cfg
|
|
||||||
output_file = zaqar_tempest_plugin/locale/zaqar_tempest_plugin.pot
|
|
||||||
|
|
||||||
[entry_points]
|
[entry_points]
|
||||||
tempest.test_plugins =
|
tempest.test_plugins =
|
||||||
zaqar_tests = zaqar_tempest_plugin.plugin:ZaqarTempestPlugin
|
zaqar_tests = zaqar_tempest_plugin.plugin:ZaqarTempestPlugin
|
||||||
|
9
setup.py
9
setup.py
@ -13,17 +13,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
|
||||||
import setuptools
|
import setuptools
|
||||||
|
|
||||||
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
|
||||||
# setuptools if some other modules registered functions in `atexit`.
|
|
||||||
# solution from: http://bugs.python.org/issue15881#msg170215
|
|
||||||
try:
|
|
||||||
import multiprocessing # noqa
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
setup_requires=['pbr'],
|
setup_requires=['pbr'],
|
||||||
pbr=True)
|
pbr=True)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# of appearance. Changing the order has an impact on the overall integration
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
# process, which may cause wedges in the gate later.
|
# process, which may cause wedges in the gate later.
|
||||||
|
|
||||||
hacking>=0.12.0,<0.13 # Apache-2.0
|
hacking>=3.1.0,<3.2.0 # Apache-2.0
|
||||||
|
|
||||||
coverage>=4.0,!=4.4 # Apache-2.0
|
coverage>=4.0,!=4.4 # Apache-2.0
|
||||||
python-subunit>=0.0.18 # Apache-2.0/BSD
|
python-subunit>=0.0.18 # Apache-2.0/BSD
|
||||||
|
7
tox.ini
7
tox.ini
@ -7,11 +7,12 @@ ignore_basepython_conflict = True
|
|||||||
[testenv]
|
[testenv]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
usedevelop = True
|
usedevelop = True
|
||||||
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
|
||||||
setenv =
|
setenv =
|
||||||
VIRTUAL_ENV={envdir}
|
VIRTUAL_ENV={envdir}
|
||||||
PYTHONWARNINGS=default::DeprecationWarning
|
PYTHONWARNINGS=default::DeprecationWarning
|
||||||
deps = -r{toxinidir}/requirements.txt
|
deps =
|
||||||
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||||
|
-r{toxinidir}/requirements.txt
|
||||||
-r{toxinidir}/test-requirements.txt
|
-r{toxinidir}/test-requirements.txt
|
||||||
commands = python setup.py test --slowest --testr-args='{posargs}'
|
commands = python setup.py test --slowest --testr-args='{posargs}'
|
||||||
|
|
||||||
@ -25,7 +26,7 @@ commands = {posargs}
|
|||||||
commands = python setup.py test --coverage --testr-args='{posargs}'
|
commands = python setup.py test --coverage --testr-args='{posargs}'
|
||||||
|
|
||||||
[testenv:docs]
|
[testenv:docs]
|
||||||
commands = python setup.py build_sphinx
|
commands = sphinx-build -a -W -b html doc/source doc/build/html
|
||||||
|
|
||||||
[testenv:releasenotes]
|
[testenv:releasenotes]
|
||||||
commands =
|
commands =
|
||||||
|
@ -13,10 +13,11 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import urllib
|
||||||
|
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
|
|
||||||
from oslo_serialization import jsonutils as json
|
from oslo_serialization import jsonutils as json
|
||||||
from six.moves.urllib import parse as urllib
|
|
||||||
from tempest.lib.common import rest_client
|
from tempest.lib.common import rest_client
|
||||||
|
|
||||||
from zaqar_tempest_plugin.api_schema.response.v1 \
|
from zaqar_tempest_plugin.api_schema.response.v1 \
|
||||||
@ -150,7 +151,7 @@ class V1MessagingClient(MessagingClient):
|
|||||||
def post_claims(self, queue_name, rbody, url_params=False):
|
def post_claims(self, queue_name, rbody, url_params=False):
|
||||||
uri = '{0}/queues/{1}/claims'.format(self.uri_prefix, queue_name)
|
uri = '{0}/queues/{1}/claims'.format(self.uri_prefix, queue_name)
|
||||||
if url_params:
|
if url_params:
|
||||||
uri += '?%s' % urllib.urlencode(url_params)
|
uri += '?%s' % urllib.parse.urlencode(url_params)
|
||||||
|
|
||||||
resp, body = self.post(uri, body=json.dumps(rbody),
|
resp, body = self.post(uri, body=json.dumps(rbody),
|
||||||
extra_headers=True,
|
extra_headers=True,
|
||||||
@ -285,7 +286,7 @@ class V11MessagingClient(MessagingClient):
|
|||||||
def post_claims(self, queue_name, rbody, url_params=False):
|
def post_claims(self, queue_name, rbody, url_params=False):
|
||||||
uri = '{0}/queues/{1}/claims'.format(self.uri_prefix, queue_name)
|
uri = '{0}/queues/{1}/claims'.format(self.uri_prefix, queue_name)
|
||||||
if url_params:
|
if url_params:
|
||||||
uri += '?%s' % urllib.urlencode(url_params)
|
uri += '?%s' % urllib.parse.urlencode(url_params)
|
||||||
|
|
||||||
resp, body = self.post(uri, body=json.dumps(rbody),
|
resp, body = self.post(uri, body=json.dumps(rbody),
|
||||||
extra_headers=True,
|
extra_headers=True,
|
||||||
@ -326,7 +327,7 @@ class V2MessagingClient(MessagingClient):
|
|||||||
def list_queues(self, url_params=False):
|
def list_queues(self, url_params=False):
|
||||||
uri = '{0}/queues'.format(self.uri_prefix)
|
uri = '{0}/queues'.format(self.uri_prefix)
|
||||||
if url_params:
|
if url_params:
|
||||||
uri += '?%s' % urllib.urlencode(url_params)
|
uri += '?%s' % urllib.parse.urlencode(url_params)
|
||||||
|
|
||||||
resp, body = self.get(uri, headers=self.headers)
|
resp, body = self.get(uri, headers=self.headers)
|
||||||
if resp['status'] != '204':
|
if resp['status'] != '204':
|
||||||
@ -436,7 +437,7 @@ class V2MessagingClient(MessagingClient):
|
|||||||
def post_claims(self, queue_name, rbody, url_params=False):
|
def post_claims(self, queue_name, rbody, url_params=False):
|
||||||
uri = '{0}/queues/{1}/claims'.format(self.uri_prefix, queue_name)
|
uri = '{0}/queues/{1}/claims'.format(self.uri_prefix, queue_name)
|
||||||
if url_params:
|
if url_params:
|
||||||
uri += '?%s' % urllib.urlencode(url_params)
|
uri += '?%s' % urllib.parse.urlencode(url_params)
|
||||||
|
|
||||||
resp, body = self.post(uri, body=json.dumps(rbody),
|
resp, body = self.post(uri, body=json.dumps(rbody),
|
||||||
extra_headers=True,
|
extra_headers=True,
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from six.moves.urllib import parse as urlparse
|
import urllib
|
||||||
|
|
||||||
from tempest import config
|
from tempest import config
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
@ -105,7 +106,7 @@ class TestClaims(base.BaseV1MessagingTest):
|
|||||||
|
|
||||||
# Delete Claimed message
|
# Delete Claimed message
|
||||||
# This will implicitly verify that the claim is deleted.
|
# This will implicitly verify that the claim is deleted.
|
||||||
message_uri = urlparse.urlparse(claim_uri).path
|
message_uri = urllib.parse.urlparse(claim_uri).path
|
||||||
self.client.delete_messages(message_uri)
|
self.client.delete_messages(message_uri)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from six.moves.urllib import parse as urlparse
|
import urllib
|
||||||
|
|
||||||
from tempest import config
|
from tempest import config
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
@ -105,7 +106,7 @@ class TestClaims(base.BaseV11MessagingTest):
|
|||||||
|
|
||||||
# Delete Claimed message
|
# Delete Claimed message
|
||||||
# This will implicitly verify that the claim is deleted.
|
# This will implicitly verify that the claim is deleted.
|
||||||
message_uri = urlparse.urlparse(claim_uri).path
|
message_uri = urllib.parse.urlparse(claim_uri).path
|
||||||
self.client.delete_messages(message_uri)
|
self.client.delete_messages(message_uri)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
import urllib
|
||||||
|
|
||||||
from six.moves.urllib import parse as urlparse
|
|
||||||
from tempest import config
|
from tempest import config
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
@ -107,7 +107,7 @@ class TestClaims(base.BaseV2MessagingTest):
|
|||||||
|
|
||||||
# Delete Claimed message
|
# Delete Claimed message
|
||||||
# This will implicitly verify that the claim is deleted.
|
# This will implicitly verify that the claim is deleted.
|
||||||
message_uri = urlparse.urlparse(claim_uri).path
|
message_uri = urllib.parse.urlparse(claim_uri).path
|
||||||
self.client.delete_messages(message_uri)
|
self.client.delete_messages(message_uri)
|
||||||
|
|
||||||
@decorators.idempotent_id('c1975970-66e7-11e7-a771-fa163e40e1ff')
|
@decorators.idempotent_id('c1975970-66e7-11e7-a771-fa163e40e1ff')
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
from six import moves
|
|
||||||
from tempest import config
|
from tempest import config
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
@ -33,7 +32,7 @@ class TestMessagesNegative(base.BaseV2MessagingTest):
|
|||||||
def resource_setup(cls):
|
def resource_setup(cls):
|
||||||
super(TestMessagesNegative, cls).resource_setup()
|
super(TestMessagesNegative, cls).resource_setup()
|
||||||
cls.queues = list()
|
cls.queues = list()
|
||||||
for _ in moves.xrange(1):
|
for _ in range(1):
|
||||||
queue_name = data_utils.rand_name('Queues-Test')
|
queue_name = data_utils.rand_name('Queues-Test')
|
||||||
cls.queues.append(queue_name)
|
cls.queues.append(queue_name)
|
||||||
# Create Queue
|
# Create Queue
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
from six import moves
|
|
||||||
from tempest import config
|
from tempest import config
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
@ -49,7 +48,7 @@ class TestManageQueue(base.BaseV2MessagingTest):
|
|||||||
def resource_setup(cls):
|
def resource_setup(cls):
|
||||||
super(TestManageQueue, cls).resource_setup()
|
super(TestManageQueue, cls).resource_setup()
|
||||||
cls.queues = list()
|
cls.queues = list()
|
||||||
for _ in moves.xrange(5):
|
for _ in range(5):
|
||||||
queue_name = data_utils.rand_name('Queues-Test')
|
queue_name = data_utils.rand_name('Queues-Test')
|
||||||
cls.queues.append(queue_name)
|
cls.queues.append(queue_name)
|
||||||
# Create Queue
|
# Create Queue
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from six import moves
|
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
from tempest.lib import decorators
|
from tempest.lib import decorators
|
||||||
from tempest.lib import exceptions as lib_exc
|
from tempest.lib import exceptions as lib_exc
|
||||||
@ -27,7 +26,7 @@ class QueueNegativeTestJSON(base.BaseV2MessagingTest):
|
|||||||
def resource_setup(cls):
|
def resource_setup(cls):
|
||||||
super(QueueNegativeTestJSON, cls).resource_setup()
|
super(QueueNegativeTestJSON, cls).resource_setup()
|
||||||
cls.queues = list()
|
cls.queues = list()
|
||||||
for _ in moves.xrange(1):
|
for _ in range(1):
|
||||||
queue_name = data_utils.rand_name('Queues-Test')
|
queue_name = data_utils.rand_name('Queues-Test')
|
||||||
cls.queues.append(queue_name)
|
cls.queues.append(queue_name)
|
||||||
cls.client.create_queue(queue_name)
|
cls.client.create_queue(queue_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user