From 0a125f7bc253eb87a5bec0c239a4547f2cd2cec4 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Tue, 9 Sep 2014 15:35:02 +0200 Subject: [PATCH] Start adding support for v1.1 This patch adds basic support for the API version 1.1. It basically re-uses the specs and implementations from v1 since the API hasn't really changed much. Future patches will add support for the new methods and other changes. Partially-Implements blueprint: api-v1.1 Change-Id: I40d02d6c2d3b932725f35204708d79785f59116b --- setup.cfg | 4 ++++ test-requirements.txt | 2 ++ tests/unit/queues/v1/test_claims.py | 7 +++++++ tests/unit/queues/v1/test_client.py | 15 ++++++++++----- tests/unit/queues/v1/test_message.py | 7 +++++++ tests/unit/queues/v1/test_queues.py | 7 +++++++ zaqarclient/queues/client.py | 3 ++- zaqarclient/queues/v1/api.py | 4 ++++ 8 files changed, 43 insertions(+), 6 deletions(-) diff --git a/setup.cfg b/setup.cfg index 0f0f36b1..348771f6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,8 +37,12 @@ zaqarclient.transport = http.v1 = zaqarclient.transport.http:HttpTransport https.v1 = zaqarclient.transport.http:HttpTransport + http.v1.1 = zaqarclient.transport.http:HttpTransport + https.v1.1 = zaqarclient.transport.http:HttpTransport + zaqarclient.api = queues.v1 = zaqarclient.queues.v1.api:V1 + queues.v1.1 = zaqarclient.queues.v1.api:V1_1 openstack.queuing.v1 = queue_list = zaqarclient.queues.v1.cli:ListQueues diff --git a/test-requirements.txt b/test-requirements.txt index bd5c683b..50c04e63 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -13,3 +13,5 @@ nose-exclude openstack.nose_plugin>=0.7 # Metrics and style coverage>=3.6 + +ddt>=0.4.0 diff --git a/tests/unit/queues/v1/test_claims.py b/tests/unit/queues/v1/test_claims.py index 0a171eaf..a33e9008 100644 --- a/tests/unit/queues/v1/test_claims.py +++ b/tests/unit/queues/v1/test_claims.py @@ -23,3 +23,10 @@ class QueuesV1ClaimsHttpUnitTest(claims.QueueV1ClaimUnitTest): transport_cls = http.HttpTransport url = 'http://127.0.0.1:8888/v1' version = 1 + + +class QueuesV1_1ClaimsHttpUnitTest(claims.QueueV1ClaimUnitTest): + + transport_cls = http.HttpTransport + url = 'http://127.0.0.1:8888/v1.1' + version = 1.1 diff --git a/tests/unit/queues/v1/test_client.py b/tests/unit/queues/v1/test_client.py index b8833481..2af3935c 100644 --- a/tests/unit/queues/v1/test_client.py +++ b/tests/unit/queues/v1/test_client.py @@ -15,24 +15,29 @@ import mock +import ddt + from zaqarclient.queues import client from zaqarclient.queues.v1 import core from zaqarclient.tests import base from zaqarclient.transport import response -VERSION = 1 +VERSIONS = [1, 1.1] +@ddt.ddt class TestClient(base.TestBase): - def test_transport(self): + @ddt.data(*VERSIONS) + def test_transport(self, version): cli = client.Client('http://example.com', - VERSION, {}) + version, {}) self.assertIsNotNone(cli.transport()) - def test_health(self): + @ddt.data(*VERSIONS) + def test_health(self, version): cli = client.Client('http://example.com', - VERSION, {}) + version, {}) with mock.patch.object(core, 'health', autospec=True) as core_health: resp = response.Response(None, None) core_health.return_value = resp diff --git a/tests/unit/queues/v1/test_message.py b/tests/unit/queues/v1/test_message.py index 2dbb0b3f..c89726ee 100644 --- a/tests/unit/queues/v1/test_message.py +++ b/tests/unit/queues/v1/test_message.py @@ -109,3 +109,10 @@ class QueuesV1MessageHttpUnitTest(test_message.QueuesV1MessageUnitTest): transport_cls = http.HttpTransport url = 'http://127.0.0.1:8888/v1' version = 1 + + +class QueuesV1_1MessageHttpUnitTest(test_message.QueuesV1MessageUnitTest): + + transport_cls = http.HttpTransport + url = 'http://127.0.0.1:8888/v1.1' + version = 1.1 diff --git a/tests/unit/queues/v1/test_queues.py b/tests/unit/queues/v1/test_queues.py index 2b70518b..70202fd1 100644 --- a/tests/unit/queues/v1/test_queues.py +++ b/tests/unit/queues/v1/test_queues.py @@ -23,3 +23,10 @@ class QueuesV1QueueHttpUnitTest(queues.QueuesV1QueueUnitTest): transport_cls = http.HttpTransport url = 'http://127.0.0.1:8888/v1' version = 1 + + +class QueuesV1_1QueueHttpUnitTest(queues.QueuesV1QueueUnitTest): + + transport_cls = http.HttpTransport + url = 'http://127.0.0.1:8888/v1.1' + version = 1.1 diff --git a/zaqarclient/queues/client.py b/zaqarclient/queues/client.py index 44dbe1c9..225c5b3b 100644 --- a/zaqarclient/queues/client.py +++ b/zaqarclient/queues/client.py @@ -16,7 +16,8 @@ from zaqarclient import errors from zaqarclient.queues.v1 import client as cv1 -_CLIENTS = {1: cv1.Client} +_CLIENTS = {1: cv1.Client, + 1.1: cv1.Client} def Client(url=None, version=None, conf=None): diff --git a/zaqarclient/queues/v1/api.py b/zaqarclient/queues/v1/api.py index a626e6a2..94c19092 100644 --- a/zaqarclient/queues/v1/api.py +++ b/zaqarclient/queues/v1/api.py @@ -210,3 +210,7 @@ class V1(api.Api): 'method': 'GET', }, } + + +class V1_1(V1): + label = 'v1.1'