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)
|
||||
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)
|
||||
|
||||
response_headers = set(result.headers.keys())
|
||||
@ -151,7 +152,7 @@ class TestClaims(base.V1_1FunctionalTestBase):
|
||||
self.assertEqual(result.status_code, 201)
|
||||
|
||||
# Delete Claimed Messages
|
||||
for rst in result.json():
|
||||
for rst in result.json()['messages']:
|
||||
href = rst['href']
|
||||
url = self.cfg.zaqar.url + href
|
||||
result = self.client.delete(url)
|
||||
|
@ -122,19 +122,17 @@ class TestMessages(base.V1_1FunctionalTestBase):
|
||||
result = self.client.get(url)
|
||||
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
|
||||
self.assertSchema(result.json(), 'message_get_many')
|
||||
|
||||
self.skipTest('Bug #1273335 - Get set of messages returns wrong hrefs '
|
||||
'(happens randomly)')
|
||||
|
||||
# Compare message metadata
|
||||
result_body = [result.json()[i]['body']
|
||||
for i in range(len(result.json()))]
|
||||
result_body = [msg['body'] for msg in result.json()['messages']]
|
||||
result_body.sort()
|
||||
|
||||
posted_metadata = [doc[i]['body']
|
||||
for i in range(message_count)]
|
||||
posted_metadata = [msg['body'] for msg in doc['messages']]
|
||||
posted_metadata.sort()
|
||||
|
||||
self.assertEqual(result_body, posted_metadata)
|
||||
|
@ -60,10 +60,17 @@ class ResponseSchema(api.Api):
|
||||
|
||||
self.schema = {
|
||||
'message_get_many': {
|
||||
"type": "array",
|
||||
"items": message,
|
||||
"minItems": 1,
|
||||
"maxItems": self.limits.max_messages_per_page
|
||||
'type': 'object',
|
||||
'properties': {
|
||||
'messages': {
|
||||
"type": "array",
|
||||
"items": message,
|
||||
"minItems": 1,
|
||||
"maxItems": self.limits.max_messages_per_page
|
||||
}
|
||||
},
|
||||
'required': ['messages'],
|
||||
'additionalProperties': False,
|
||||
},
|
||||
|
||||
'queue_list': {
|
||||
@ -241,26 +248,33 @@ class ResponseSchema(api.Api):
|
||||
},
|
||||
|
||||
'claim_create': {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"href": claim_href,
|
||||
"ttl": {
|
||||
"type": "number",
|
||||
"minimum": 1,
|
||||
"maximum": self.limits.max_message_ttl
|
||||
'type': 'object',
|
||||
'properties': {
|
||||
'messages': {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"href": claim_href,
|
||||
"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,
|
||||
"body": {
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": ["href", "ttl", "age", "body"],
|
||||
"additionalProperties": False,
|
||||
"minItems": 1,
|
||||
"maxItems": self.limits.max_messages_per_page
|
||||
}
|
||||
},
|
||||
"minItems": 1,
|
||||
"maxItems": self.limits.max_messages_per_page
|
||||
'required': ['messages'],
|
||||
'additionalProperties': False
|
||||
},
|
||||
|
||||
'claim_get': {
|
||||
|
@ -110,7 +110,7 @@ class CollectionResource(object):
|
||||
del msg['id']
|
||||
|
||||
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
|
||||
else:
|
||||
resp.status = falcon.HTTP_204
|
||||
|
@ -83,7 +83,7 @@ class CollectionResource(object):
|
||||
each_message['href'] = base_path + each_message['id']
|
||||
del each_message['id']
|
||||
|
||||
return messages
|
||||
return {'messages': messages}
|
||||
|
||||
def _get(self, req, project_id, queue_name):
|
||||
client_uuid = wsgi_utils.get_client_uuid(req)
|
||||
|
@ -120,7 +120,7 @@ class ClaimsBaseTest(base.V1_1Base):
|
||||
headers=self.headers)
|
||||
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']
|
||||
message_href, params = claimed[0]['href'].split('?')
|
||||
|
||||
|
@ -98,7 +98,7 @@ class TestDefaultLimits(base.V1_1Base):
|
||||
|
||||
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)
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
@ -133,7 +133,7 @@ class MessagesBaseTest(base.V1_1Base):
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
result_doc = jsonutils.loads(result[0])
|
||||
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)
|
||||
|
||||
def test_exceeded_payloads(self):
|
||||
@ -487,7 +487,7 @@ class MessagesBaseTest(base.V1_1Base):
|
||||
messages = jsonutils.loads(body[0])
|
||||
|
||||
self.assertNotIn(self.queue_path + '/messages/messages',
|
||||
messages[0]['href'])
|
||||
messages['messages'][0]['href'])
|
||||
|
||||
def _post_messages(self, target, repeat=1):
|
||||
doc = {'messages': [{'body': 239, 'ttl': 300}] * repeat}
|
||||
|
Loading…
x
Reference in New Issue
Block a user