From 2490ed44bd7dc6ce5b0a0bb14b0e84d1ea23ff74 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Fri, 28 Aug 2015 14:40:52 +0200 Subject: [PATCH] Send claims `limit` as a query param The limit argument, as specified by the API, should be a query parameter. The current client version is sending it as part of the claims' creation body. Change-Id: Id068795dc87d7380151e27de29b96597a76dd602 Closes-bug: #1489870 --- zaqarclient/queues/v1/core.py | 4 ++++ zaqarclient/tests/queues/claims.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/zaqarclient/queues/v1/core.py b/zaqarclient/queues/v1/core.py index 19f85b29..22026aa0 100644 --- a/zaqarclient/queues/v1/core.py +++ b/zaqarclient/queues/v1/core.py @@ -356,6 +356,10 @@ def claim_create(transport, request, queue_name, **kwargs): request.operation = 'claim_create' request.params['queue_name'] = queue_name + + if 'limit' in kwargs: + request.params['limit'] = kwargs.pop('limit') + request.content = json.dumps(kwargs) resp = transport.send(request) diff --git a/zaqarclient/tests/queues/claims.py b/zaqarclient/tests/queues/claims.py index 96f6c348..01b13cbd 100644 --- a/zaqarclient/tests/queues/claims.py +++ b/zaqarclient/tests/queues/claims.py @@ -51,6 +51,20 @@ class QueueV1ClaimUnitTest(base.QueuesTestBase): self.assertEqual(result[num]['href'], msg.href) self.assertEqual(len(result), num_tested) + def test_claim_limit(self): + def verify_limit(request): + self.assertIn('limit', request.params) + self.assertEqual(request.params['limit'], 10) + # NOTE(flaper87): We don't care about the response here, + # fake it. + return response.Response(None, "{0: [], 'messages': []}") + + with mock.patch.object(self.transport, 'send', + autospec=True) as send_method: + + send_method.side_effect = verify_limit + self.queue.claim(ttl=60, grace=60, limit=10) + def test_claim_get_by_id(self): result = { 'href': '/v1/queues/fizbit/messages/50b68a50d6cb01?claim_id=4524',