Merge "Encapsulate top-level lists in responses in object"
This commit is contained in:
commit
0300181024
@ -62,8 +62,9 @@ class TestClaims(base.V1_1FunctionalTestBase):
|
|||||||
|
|
||||||
result = self.client.post(params=params, data=doc)
|
result = self.client.post(params=params, data=doc)
|
||||||
self.assertEqual(result.status_code, 201)
|
self.assertEqual(result.status_code, 201)
|
||||||
|
self.assertSchema(result.json(), 'claim_create')
|
||||||
|
|
||||||
actual_message_count = len(result.json())
|
actual_message_count = len(result.json()['messages'])
|
||||||
self.assertMessageCount(actual_message_count, message_count)
|
self.assertMessageCount(actual_message_count, message_count)
|
||||||
|
|
||||||
response_headers = set(result.headers.keys())
|
response_headers = set(result.headers.keys())
|
||||||
@ -151,7 +152,7 @@ class TestClaims(base.V1_1FunctionalTestBase):
|
|||||||
self.assertEqual(result.status_code, 201)
|
self.assertEqual(result.status_code, 201)
|
||||||
|
|
||||||
# Delete Claimed Messages
|
# Delete Claimed Messages
|
||||||
for rst in result.json():
|
for rst in result.json()['messages']:
|
||||||
href = rst['href']
|
href = rst['href']
|
||||||
url = self.cfg.zaqar.url + href
|
url = self.cfg.zaqar.url + href
|
||||||
result = self.client.delete(url)
|
result = self.client.delete(url)
|
||||||
|
@ -122,19 +122,17 @@ class TestMessages(base.V1_1FunctionalTestBase):
|
|||||||
result = self.client.get(url)
|
result = self.client.get(url)
|
||||||
self.assertEqual(result.status_code, 200)
|
self.assertEqual(result.status_code, 200)
|
||||||
|
|
||||||
self.skipTest('Bug #1273335 - Get set of messages returns wrong hrefs '
|
|
||||||
'(happens randomly)')
|
|
||||||
|
|
||||||
# Verify that the response json schema matches the expected schema
|
# Verify that the response json schema matches the expected schema
|
||||||
self.assertSchema(result.json(), 'message_get_many')
|
self.assertSchema(result.json(), 'message_get_many')
|
||||||
|
|
||||||
|
self.skipTest('Bug #1273335 - Get set of messages returns wrong hrefs '
|
||||||
|
'(happens randomly)')
|
||||||
|
|
||||||
# Compare message metadata
|
# Compare message metadata
|
||||||
result_body = [result.json()[i]['body']
|
result_body = [msg['body'] for msg in result.json()['messages']]
|
||||||
for i in range(len(result.json()))]
|
|
||||||
result_body.sort()
|
result_body.sort()
|
||||||
|
|
||||||
posted_metadata = [doc[i]['body']
|
posted_metadata = [msg['body'] for msg in doc['messages']]
|
||||||
for i in range(message_count)]
|
|
||||||
posted_metadata.sort()
|
posted_metadata.sort()
|
||||||
|
|
||||||
self.assertEqual(result_body, posted_metadata)
|
self.assertEqual(result_body, posted_metadata)
|
||||||
|
@ -60,10 +60,17 @@ class ResponseSchema(api.Api):
|
|||||||
|
|
||||||
self.schema = {
|
self.schema = {
|
||||||
'message_get_many': {
|
'message_get_many': {
|
||||||
"type": "array",
|
'type': 'object',
|
||||||
"items": message,
|
'properties': {
|
||||||
"minItems": 1,
|
'messages': {
|
||||||
"maxItems": self.limits.max_messages_per_page
|
"type": "array",
|
||||||
|
"items": message,
|
||||||
|
"minItems": 1,
|
||||||
|
"maxItems": self.limits.max_messages_per_page
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'required': ['messages'],
|
||||||
|
'additionalProperties': False,
|
||||||
},
|
},
|
||||||
|
|
||||||
'queue_list': {
|
'queue_list': {
|
||||||
@ -241,26 +248,33 @@ class ResponseSchema(api.Api):
|
|||||||
},
|
},
|
||||||
|
|
||||||
'claim_create': {
|
'claim_create': {
|
||||||
"type": "array",
|
'type': 'object',
|
||||||
"items": {
|
'properties': {
|
||||||
"type": "object",
|
'messages': {
|
||||||
"properties": {
|
"type": "array",
|
||||||
"href": claim_href,
|
"items": {
|
||||||
"ttl": {
|
"type": "object",
|
||||||
"type": "number",
|
"properties": {
|
||||||
"minimum": 1,
|
"href": claim_href,
|
||||||
"maximum": self.limits.max_message_ttl
|
"ttl": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": self.limits.max_message_ttl
|
||||||
|
},
|
||||||
|
"age": age,
|
||||||
|
"body": {
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["href", "ttl", "age", "body"],
|
||||||
|
"additionalProperties": False,
|
||||||
},
|
},
|
||||||
"age": age,
|
"minItems": 1,
|
||||||
"body": {
|
"maxItems": self.limits.max_messages_per_page
|
||||||
"type": "object"
|
}
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["href", "ttl", "age", "body"],
|
|
||||||
"additionalProperties": False,
|
|
||||||
},
|
},
|
||||||
"minItems": 1,
|
'required': ['messages'],
|
||||||
"maxItems": self.limits.max_messages_per_page
|
'additionalProperties': False
|
||||||
},
|
},
|
||||||
|
|
||||||
'claim_get': {
|
'claim_get': {
|
||||||
|
@ -110,7 +110,7 @@ class CollectionResource(object):
|
|||||||
del msg['id']
|
del msg['id']
|
||||||
|
|
||||||
resp.location = req.path + '/' + cid
|
resp.location = req.path + '/' + cid
|
||||||
resp.body = utils.to_json(resp_msgs)
|
resp.body = utils.to_json({'messages': resp_msgs})
|
||||||
resp.status = falcon.HTTP_201
|
resp.status = falcon.HTTP_201
|
||||||
else:
|
else:
|
||||||
resp.status = falcon.HTTP_204
|
resp.status = falcon.HTTP_204
|
||||||
|
@ -83,7 +83,7 @@ class CollectionResource(object):
|
|||||||
each_message['href'] = base_path + each_message['id']
|
each_message['href'] = base_path + each_message['id']
|
||||||
del each_message['id']
|
del each_message['id']
|
||||||
|
|
||||||
return messages
|
return {'messages': messages}
|
||||||
|
|
||||||
def _get(self, req, project_id, queue_name):
|
def _get(self, req, project_id, queue_name):
|
||||||
client_uuid = wsgi_utils.get_client_uuid(req)
|
client_uuid = wsgi_utils.get_client_uuid(req)
|
||||||
|
@ -120,7 +120,7 @@ class ClaimsBaseTest(base.V1_1Base):
|
|||||||
headers=self.headers)
|
headers=self.headers)
|
||||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||||
|
|
||||||
claimed = jsonutils.loads(body[0])
|
claimed = jsonutils.loads(body[0])['messages']
|
||||||
claim_href = self.srmock.headers_dict['Location']
|
claim_href = self.srmock.headers_dict['Location']
|
||||||
message_href, params = claimed[0]['href'].split('?')
|
message_href, params = claimed[0]['href'].split('?')
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ class TestDefaultLimits(base.V1_1Base):
|
|||||||
|
|
||||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||||
|
|
||||||
messages = jsonutils.loads(result[0])
|
messages = jsonutils.loads(result[0])['messages']
|
||||||
self.assertEqual(len(messages), storage.DEFAULT_MESSAGES_PER_CLAIM)
|
self.assertEqual(len(messages), storage.DEFAULT_MESSAGES_PER_CLAIM)
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
|
@ -133,7 +133,7 @@ class MessagesBaseTest(base.V1_1Base):
|
|||||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||||
result_doc = jsonutils.loads(result[0])
|
result_doc = jsonutils.loads(result[0])
|
||||||
expected_ttls = set(m['ttl'] for m in sample_messages)
|
expected_ttls = set(m['ttl'] for m in sample_messages)
|
||||||
actual_ttls = set(m['ttl'] for m in result_doc)
|
actual_ttls = set(m['ttl'] for m in result_doc['messages'])
|
||||||
self.assertFalse(expected_ttls - actual_ttls)
|
self.assertFalse(expected_ttls - actual_ttls)
|
||||||
|
|
||||||
def test_exceeded_payloads(self):
|
def test_exceeded_payloads(self):
|
||||||
@ -487,7 +487,7 @@ class MessagesBaseTest(base.V1_1Base):
|
|||||||
messages = jsonutils.loads(body[0])
|
messages = jsonutils.loads(body[0])
|
||||||
|
|
||||||
self.assertNotIn(self.queue_path + '/messages/messages',
|
self.assertNotIn(self.queue_path + '/messages/messages',
|
||||||
messages[0]['href'])
|
messages['messages'][0]['href'])
|
||||||
|
|
||||||
def _post_messages(self, target, repeat=1):
|
def _post_messages(self, target, repeat=1):
|
||||||
doc = {'messages': [{'body': 239, 'ttl': 300}] * repeat}
|
doc = {'messages': [{'body': 239, 'ttl': 300}] * repeat}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user