v1.1 and v2 claims return document not list
The current claims code doesn't work on v1.1 and v2 because on claims creation it expects a list rather than a document. This patch fixes this issue in a backwards compatible way. Change-Id: I64e824227f148297aba4c27bbd2053d5bab483c5 Closes-bug: #1489863
This commit is contained in:
parent
0d80728124
commit
baf6fa7eb8
|
@ -25,7 +25,7 @@ class QueuesV1ClaimsHttpUnitTest(claims.QueueV1ClaimUnitTest):
|
|||
version = 1
|
||||
|
||||
|
||||
class QueuesV1_1ClaimsHttpUnitTest(claims.QueueV1ClaimUnitTest):
|
||||
class QueuesV1_1ClaimsHttpUnitTest(claims.QueueV1_1ClaimUnitTest):
|
||||
|
||||
transport_cls = http.HttpTransport
|
||||
url = 'http://127.0.0.1:8888/v1.1'
|
||||
|
|
|
@ -59,9 +59,13 @@ class Claim(object):
|
|||
ttl=self._ttl,
|
||||
grace=self._grace,
|
||||
limit=self._limit)
|
||||
|
||||
# extract the id from the first message
|
||||
if msgs is not None:
|
||||
if self._queue.client.api_version >= 1.1:
|
||||
msgs = msgs['messages']
|
||||
self.id = msgs[0]['href'].split('=')[-1]
|
||||
|
||||
self._message_iter = iterate._Iterator(self._queue.client,
|
||||
msgs or [],
|
||||
'messages',
|
||||
|
|
|
@ -137,3 +137,33 @@ class QueuesV1ClaimFunctionalTest(base.QueuesTestBase):
|
|||
claim_id = cl.id
|
||||
cl.delete()
|
||||
self.assertRaises(errors.ResourceNotFound, queue.claim, id=claim_id)
|
||||
|
||||
|
||||
class QueueV1_1ClaimUnitTest(QueueV1ClaimUnitTest):
|
||||
|
||||
def test_claim(self):
|
||||
result = [{
|
||||
'href': '/v1/queues/fizbit/messages/50b68a50d6f5b8c8a7c62b01',
|
||||
'ttl': 800,
|
||||
'age': 790,
|
||||
'body': {'event': 'ActivateAccount', 'mode': 'active'}
|
||||
}, {
|
||||
'href': '/v1/queues/fizbit/messages/50b68a50d6f5b8c8a7c62b02',
|
||||
'ttl': 800,
|
||||
'age': 790,
|
||||
'body': {'event': 'ActivateAccount', 'mode': 'active'}
|
||||
}]
|
||||
|
||||
with mock.patch.object(self.transport, 'send',
|
||||
autospec=True) as send_method:
|
||||
|
||||
resp = response.Response(None, json.dumps({'messages': result}))
|
||||
send_method.return_value = resp
|
||||
|
||||
claimed = self.queue.claim(ttl=60, grace=60)
|
||||
# messages doesn't support len()
|
||||
num_tested = 0
|
||||
for num, msg in enumerate(claimed):
|
||||
num_tested += 1
|
||||
self.assertEqual(result[num]['href'], msg.href)
|
||||
self.assertEqual(len(result), num_tested)
|
||||
|
|
Loading…
Reference in New Issue