Add Tests for non-existing resources

This patch adds tests for action on non-existing queues, messages & claims.

Change-Id: I68517b1b98f668eff86a0bcad19dc9ed8d01267c
Tests-Bug: #1243752
This commit is contained in:
Malini Kamalambal 2013-10-24 12:57:19 -04:00
parent a24ce88789
commit e515053dd1
5 changed files with 125 additions and 4 deletions

View File

@ -219,6 +219,31 @@ class TestClaims(base.FunctionalTestBase):
test_patch_claim_invalid_ttl.tags = ['negative']
def test_query_non_existing_claim(self):
"""Query Non Existing Claim."""
path = '/non-existing-claim'
result = self.client.get(path)
self.assertEqual(result.status_code, 404)
test_query_non_existing_claim.tags = ['negative']
def test_patch_non_existing_claim(self):
"""Patch Non Existing Claim."""
path = '/non-existing-claim'
doc = {"ttl": 400}
result = self.client.patch(path, data=doc)
self.assertEqual(result.status_code, 404)
test_patch_non_existing_claim.tags = ['negative']
def test_delete_non_existing_claim(self):
"""Patch Non Existing Claim."""
path = '/non-existing-claim'
result = self.client.delete(path)
self.assertEqual(result.status_code, 204)
test_delete_non_existing_claim.tags = ['negative']
def tearDown(self):
"""Delete Queue after Claim Test."""
super(TestClaims, self).tearDown()

View File

@ -301,6 +301,30 @@ class TestMessages(base.FunctionalTestBase):
test_get_messages_invalid_client_id.tags = ['negative']
def test_query_non_existing_message(self):
"""Get Non Existing Message."""
path = '/non-existing-message'
result = self.client.get(path)
self.assertEqual(result.status_code, 404)
test_query_non_existing_message.tags = ['negative']
def test_query_non_existing_message_set(self):
"""Get Set of Non Existing Messages."""
path = '?ids=not_there1,not_there2'
result = self.client.get(path)
self.assertEqual(result.status_code, 204)
test_query_non_existing_message_set.tags = ['negative']
def test_delete_non_existing_message(self):
"""Delete Non Existing Message."""
path = '/non-existing-message'
result = self.client.delete(path)
self.assertEqual(result.status_code, 204)
test_delete_non_existing_message.tags = ['negative']
def tearDown(self):
super(TestMessages, self).tearDown()
self.client.delete(self.queue_url)

View File

@ -24,11 +24,14 @@ from marconi.tests.functional import helpers
class NamedBinaryStr(six.binary_type):
"""Wrapper for six.binary_type to facilitate overriding __name__."""
class NamedUnicodeStr(object):
"""Unicode string look-alike to facilitate overriding __name__."""
def __init__(self, value):
self.value = value
@ -48,6 +51,7 @@ class NamedUnicodeStr(object):
class NamedDict(dict):
"""Wrapper for dict to facilitate overriding __name__."""
@ -65,6 +69,7 @@ def annotated(test_name, test_input):
@ddt.ddt
class TestInsertQueue(base.FunctionalTestBase):
"""Tests for Insert queue."""
server_class = base.MarconiServer
@ -185,6 +190,7 @@ class TestInsertQueue(base.FunctionalTestBase):
@ddt.ddt
class TestQueueMetaData(base.FunctionalTestBase):
"""Tests for queue metadata."""
server_class = base.MarconiServer
@ -359,7 +365,7 @@ class TestQueueMisc(base.FunctionalTestBase):
stats_url = self.queue_url + '/stats'
#Get stats on an empty queue
# Get stats on an empty queue
result = self.client.get(stats_url)
self.assertEqual(result.status_code, 200)
@ -376,7 +382,7 @@ class TestQueueMisc(base.FunctionalTestBase):
self.addCleanup(self.client.delete, self.queue_url)
self.assertEqual(result.status_code, 201)
#Post Messages to the test queue
# Post Messages to the test queue
doc = helpers.create_message_body(messagecount=
self.limits.message_paging_uplimit)
message_url = self.queue_url + '/messages'
@ -389,7 +395,7 @@ class TestQueueMisc(base.FunctionalTestBase):
result = self.client.post(claim_url, data=doc)
self.assertEqual(result.status_code, 201)
#Get stats on the queue.
# Get stats on the queue.
stats_url = self.queue_url + '/stats'
result = self.client.get(stats_url)
self.assertEqual(result.status_code, 200)
@ -400,3 +406,59 @@ class TestQueueMisc(base.FunctionalTestBase):
def tearDown(self):
super(TestQueueMisc, self).tearDown()
class TestQueueNonExisting(base.FunctionalTestBase):
"""Test Actions on non existing queue."""
server_class = base.MarconiServer
def setUp(self):
super(TestQueueNonExisting, self).setUp()
self.base_url = '{0}/{1}'.format(self.cfg.marconi.url,
self.cfg.marconi.version)
self.queue_url = self.base_url + \
'/queues/0a5b1b85-4263-11e3-b034-28cfe91478b9'
self.client.set_base_url(self.queue_url)
self.header = helpers.create_marconi_headers(self.cfg)
self.headers_response_empty = set(['location'])
self.header = helpers.create_marconi_headers(self.cfg)
def test_get_queue(self):
"""Get non existing Queue."""
result = self.client.get()
self.assertEqual(result.status_code, 404)
def test_get_stats(self):
"""Get stats on non existing Queue."""
result = self.client.get('/stats')
self.assertEqual(result.status_code, 404)
def test_get_metadata(self):
"""Get metadata on non existing Queue."""
result = self.client.get('/metadata')
self.assertEqual(result.status_code, 404)
def test_get_messages(self):
"""Get messages on non existing Queue."""
result = self.client.get('/messages')
self.assertEqual(result.status_code, 204)
def test_post_messages(self):
"""Post messages to a non existing Queue."""
doc = [{"ttl": 200, "body": {"Home": ""}}]
result = self.client.post('/messages', data=doc)
self.assertEqual(result.status_code, 404)
def test_claim_messages(self):
"""Claim messages from a non existing Queue."""
doc = {"ttl": 200, "grace": 300}
result = self.client.post('/claims', data=doc)
self.assertEqual(result.status_code, 204)
def test_delete_queue(self):
"""Delete non existing Queue."""
result = self.client.delete()
self.assertEqual(result.status_code, 204)

View File

@ -208,11 +208,15 @@ class ClaimsBaseTest(base.TestBase):
self.simulate_patch(claim['href'], body=doc)
self.assertEqual(self.srmock.status, falcon.HTTP_404)
def test_nonexistent(self):
def test_post_claim_nonexistent_queue(self):
self.simulate_post('/v1/queues/nonexistent/claims', self.project_id,
body='{"ttl": 100, "grace": 60}')
self.assertEqual(self.srmock.status, falcon.HTTP_204)
def test_get_claim_nonexistent_queue(self):
self.simulate_get('/v1/queues/nonexistent/claims/aaabbbba')
self.assertEqual(self.srmock.status, falcon.HTTP_404)
# NOTE(cpp-cabrera): regression test against bug #1203842
def test_get_nonexistent_claim_404s(self):
self.simulate_get(self.claims_path + '/a')

View File

@ -184,6 +184,12 @@ class MessagesBaseTest(base.TestBase):
self._post_messages('/v1/queues/nonexistent/messages')
self.assertEqual(self.srmock.status, falcon.HTTP_404)
def test_get_from_missing_queue(self):
self.simulate_get('/v1/queues/nonexistent/messages', self.project_id,
headers={'Client-ID':
'dfcd3238-425c-11e3-8a80-28cfe91478b9'})
self.assertEqual(self.srmock.status, falcon.HTTP_204)
@ddt.data('', '0xdeadbeef', '550893e0-2b6e-11e3-835a-5cf9dd72369')
def test_bad_client_id(self, text_id):
self.simulate_post(self.queue_path + '/messages',