Merge "Slighty refactored url_prefix usage in WSGI tests"
This commit is contained in:
commit
e218b3ad92
@ -31,11 +31,12 @@ class TestDefaultLimits(base.TestBase):
|
||||
def setUp(self):
|
||||
super(TestDefaultLimits, self).setUp()
|
||||
|
||||
self.queue_path = self.url_prefix + '/queues/q1'
|
||||
self.messages_path = self.queue_path + '/messages'
|
||||
self.claims_path = self.queue_path + '/claims'
|
||||
self.queue_path = self.url_prefix + '/queues'
|
||||
self.q1_queue_path = self.queue_path + '/q1'
|
||||
self.messages_path = self.q1_queue_path + '/messages'
|
||||
self.claims_path = self.q1_queue_path + '/claims'
|
||||
|
||||
self.simulate_put(self.queue_path)
|
||||
self.simulate_put(self.q1_queue_path)
|
||||
|
||||
def tearDown(self):
|
||||
self.simulate_delete(self.queue_path)
|
||||
@ -43,11 +44,11 @@ class TestDefaultLimits(base.TestBase):
|
||||
|
||||
def test_queue_listing(self):
|
||||
# 2 queues to list
|
||||
self.simulate_put(self.url_prefix + '/queues/q2')
|
||||
self.simulate_put(self.queue_path + '/q2')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
with self._prepare_queues(storage.DEFAULT_QUEUES_PER_PAGE + 1):
|
||||
result = self.simulate_get(self.url_prefix + '/queues')
|
||||
result = self.simulate_get(self.queue_path)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
|
||||
queues = json.loads(result[0])['queues']
|
||||
@ -77,7 +78,7 @@ class TestDefaultLimits(base.TestBase):
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _prepare_queues(self, count):
|
||||
queue_paths = [self.url_prefix + '/queues/multi-{0}'.format(i)
|
||||
queue_paths = [self.queue_path + '/multi-{0}'.format(i)
|
||||
for i in range(count)]
|
||||
|
||||
for path in queue_paths:
|
||||
|
@ -32,92 +32,100 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
def setUp(self):
|
||||
super(QueueLifecycleBaseTest, self).setUp()
|
||||
|
||||
self.queue_path = self.url_prefix + '/queues'
|
||||
self.gumshoe_queue_path = self.queue_path + '/gumshoe'
|
||||
self.fizbat_queue_path = self.queue_path + '/fizbat'
|
||||
self.fizbat_queue_path_metadata = self.fizbat_queue_path + '/metadata'
|
||||
|
||||
def test_empty_project_id(self):
|
||||
path = self.url_prefix + '/queues/gumshoe'
|
||||
|
||||
self.simulate_get(path, '')
|
||||
self.simulate_get(self.gumshoe_queue_path, '')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
self.simulate_put(path, '')
|
||||
self.simulate_put(self.gumshoe_queue_path, '')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
self.simulate_head(path, '')
|
||||
self.simulate_head(self.gumshoe_queue_path, '')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
self.simulate_delete(path, '')
|
||||
self.simulate_delete(self.gumshoe_queue_path, '')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
@ddt.data('480924', 'foo', None)
|
||||
def test_basics_thoroughly(self, project_id):
|
||||
path = self.url_prefix + '/queues/gumshoe'
|
||||
gumshoe_queue_path_metadata = self.gumshoe_queue_path + '/metadata'
|
||||
gumshoe_queue_path_stats = self.gumshoe_queue_path + '/stats'
|
||||
|
||||
# Stats not found - queue not created yet
|
||||
self.simulate_get(path + '/stats', project_id)
|
||||
self.simulate_get(gumshoe_queue_path_stats, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_404)
|
||||
|
||||
# Metadata not found - queue not created yet
|
||||
self.simulate_get(path + '/metadata', project_id)
|
||||
self.simulate_get(gumshoe_queue_path_metadata, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_404)
|
||||
|
||||
# Create
|
||||
self.simulate_put(path, project_id)
|
||||
self.simulate_put(self.gumshoe_queue_path, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
location = self.srmock.headers_dict['Location']
|
||||
self.assertEqual(location, self.url_prefix + '/queues/gumshoe')
|
||||
self.assertEqual(location, self.gumshoe_queue_path)
|
||||
|
||||
# Ensure queue existence
|
||||
self.simulate_head(path, project_id)
|
||||
self.simulate_head(self.gumshoe_queue_path, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Add metadata
|
||||
doc = '{"messages": {"ttl": 600}}'
|
||||
self.simulate_put(path + '/metadata', project_id, body=doc)
|
||||
self.simulate_put(gumshoe_queue_path_metadata,
|
||||
project_id, body=doc)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Fetch metadata
|
||||
result = self.simulate_get(path + '/metadata', project_id)
|
||||
result = self.simulate_get(gumshoe_queue_path_metadata,
|
||||
project_id)
|
||||
result_doc = json.loads(result[0])
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
self.assertEqual(result_doc, json.loads(doc))
|
||||
|
||||
# Stats empty queue
|
||||
self.simulate_get(path + '/stats', project_id)
|
||||
self.simulate_get(gumshoe_queue_path_stats, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
|
||||
# Delete
|
||||
self.simulate_delete(path, project_id)
|
||||
self.simulate_delete(self.gumshoe_queue_path, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Get non-existent queue
|
||||
self.simulate_get(path, project_id)
|
||||
self.simulate_get(self.gumshoe_queue_path, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_404)
|
||||
|
||||
# Get non-existent stats
|
||||
self.simulate_get(path + '/stats', project_id)
|
||||
self.simulate_get(gumshoe_queue_path_stats, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_404)
|
||||
|
||||
# Get non-existent metadata
|
||||
self.simulate_get(path + '/metadata', project_id)
|
||||
self.simulate_get(gumshoe_queue_path_metadata, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_404)
|
||||
|
||||
def test_name_restrictions(self):
|
||||
self.simulate_put(self.url_prefix + '/queues/Nice-Boat_2')
|
||||
self.simulate_put(self.queue_path + '/Nice-Boat_2')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/Nice-Bo@t')
|
||||
self.simulate_put(self.queue_path + '/Nice-Bo@t')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/_' + 'niceboat' * 8)
|
||||
self.simulate_put(self.queue_path + '/_' + 'niceboat' * 8)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_project_id_restriction(self):
|
||||
self.simulate_put(self.url_prefix + '/queues/Muv-Luv',
|
||||
muvluv_queue_path = self.queue_path + '/Muv-Luv'
|
||||
|
||||
self.simulate_put(muvluv_queue_path,
|
||||
headers={'X-Project-ID': 'JAM Project' * 24})
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
# no charset restrictions
|
||||
self.simulate_put(self.url_prefix + '/queues/Muv-Luv',
|
||||
self.simulate_put(muvluv_queue_path,
|
||||
headers={'X-Project-ID': 'JAM Project'})
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
@ -141,26 +149,26 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_no_metadata(self):
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat')
|
||||
self.simulate_put(self.fizbat_queue_path)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat/metadata')
|
||||
self.simulate_put(self.fizbat_queue_path_metadata)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat/metadata', body='')
|
||||
self.simulate_put(self.fizbat_queue_path_metadata, body='')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
@ddt.data('{', '[]', '.', ' ', '')
|
||||
def test_bad_metadata(self, document):
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat', '7e55e1a7e')
|
||||
self.simulate_put(self.fizbat_queue_path, '7e55e1a7e')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat/metadata',
|
||||
'7e55e1a7e', body=document)
|
||||
self.simulate_put(self.fizbat_queue_path_metadata, '7e55e1a7e',
|
||||
body=document)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_too_much_metadata(self):
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat', '7e55e1a7e')
|
||||
self.simulate_put(self.fizbat_queue_path, '7e55e1a7e')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
doc = '{{"messages": {{"ttl": 600}}, "padding": "{pad}"}}'
|
||||
|
||||
@ -169,12 +177,12 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
|
||||
doc = doc.format(pad='x' * padding_len)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat/metadata',
|
||||
'7e55e1a7e', body=doc)
|
||||
self.simulate_put(self.fizbat_queue_path_metadata, '7e55e1a7e',
|
||||
body=doc)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_way_too_much_metadata(self):
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat', '7e55e1a7e')
|
||||
self.simulate_put(self.fizbat_queue_path, '7e55e1a7e')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
doc = '{{"messages": {{"ttl": 600}}, "padding": "{pad}"}}'
|
||||
|
||||
@ -183,12 +191,12 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
|
||||
doc = doc.format(pad='x' * padding_len)
|
||||
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat/metadata',
|
||||
self.simulate_put(self.fizbat_queue_path_metadata,
|
||||
'7e55e1a7e', body=doc)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_custom_metadata(self):
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat', '480924')
|
||||
self.simulate_put(self.fizbat_queue_path, '480924')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
# Set
|
||||
@ -198,41 +206,41 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
padding_len = max_size - (len(doc) - 2)
|
||||
|
||||
doc = doc.format(pad='x' * padding_len)
|
||||
self.simulate_put(self.url_prefix + '/queues/fizbat/metadata',
|
||||
'480924', body=doc)
|
||||
self.simulate_put(self.fizbat_queue_path_metadata, '480924', body=doc)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Get
|
||||
result = self.simulate_get(self.url_prefix + '/queues/fizbat/metadata',
|
||||
'480924')
|
||||
result = self.simulate_get(self.fizbat_queue_path_metadata, '480924')
|
||||
result_doc = json.loads(result[0])
|
||||
self.assertEqual(result_doc, json.loads(doc))
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
|
||||
def test_update_metadata(self):
|
||||
xyz_queue_path = self.url_prefix + '/queues/xyz'
|
||||
xyz_queue_path_metadata = xyz_queue_path + '/metadata'
|
||||
|
||||
# Create
|
||||
path = self.url_prefix + '/queues/xyz'
|
||||
project_id = '480924'
|
||||
self.simulate_put(path, project_id)
|
||||
self.simulate_put(xyz_queue_path, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_201)
|
||||
|
||||
# Set meta
|
||||
doc1 = '{"messages": {"ttl": 600}}'
|
||||
self.simulate_put(path + '/metadata', project_id, body=doc1)
|
||||
self.simulate_put(xyz_queue_path_metadata, project_id, body=doc1)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Update
|
||||
doc2 = '{"messages": {"ttl": 100}}'
|
||||
self.simulate_put(path + '/metadata', project_id, body=doc2)
|
||||
self.simulate_put(xyz_queue_path_metadata, project_id, body=doc2)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Get
|
||||
result = self.simulate_get(path + '/metadata', project_id)
|
||||
result = self.simulate_get(xyz_queue_path_metadata, project_id)
|
||||
result_doc = json.loads(result[0])
|
||||
|
||||
self.assertEqual(result_doc, json.loads(doc2))
|
||||
self.assertEqual(self.srmock.headers_dict['Content-Location'],
|
||||
path + '/metadata')
|
||||
xyz_queue_path_metadata)
|
||||
|
||||
def test_list(self):
|
||||
arbitrary_number = 644079696574693
|
||||
@ -244,17 +252,16 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
alt_project_id = str(arbitrary_number + 1)
|
||||
|
||||
# List empty
|
||||
self.simulate_get(self.url_prefix + '/queues', project_id)
|
||||
self.simulate_get(self.queue_path, project_id)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_204)
|
||||
|
||||
# Payload exceeded
|
||||
self.simulate_get(self.url_prefix + '/queues', project_id,
|
||||
query_string='limit=21')
|
||||
self.simulate_get(self.queue_path, project_id, query_string='limit=21')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
# Create some
|
||||
def create_queue(name, project_id, body):
|
||||
uri = self.url_prefix + '/queues/' + name
|
||||
uri = self.queue_path + '/' + name
|
||||
self.simulate_put(uri, project_id)
|
||||
self.simulate_put(uri + '/metadata', project_id, body=body)
|
||||
|
||||
@ -268,7 +275,7 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
create_queue('q3', alt_project_id, '{"alt": 1}')
|
||||
|
||||
# List (global queues)
|
||||
result = self.simulate_get(self.url_prefix + '/queues', None,
|
||||
result = self.simulate_get(self.queue_path, None,
|
||||
query_string='limit=2&detailed=true')
|
||||
|
||||
result_doc = json.loads(result[0])
|
||||
@ -279,22 +286,22 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
self.assertEqual(queue['metadata'], {'answer': 42})
|
||||
|
||||
# List (limit)
|
||||
result = self.simulate_get(self.url_prefix + '/queues', project_id,
|
||||
result = self.simulate_get(self.queue_path, project_id,
|
||||
query_string='limit=2')
|
||||
|
||||
result_doc = json.loads(result[0])
|
||||
self.assertEqual(len(result_doc['queues']), 2)
|
||||
|
||||
# List (no metadata, get all)
|
||||
result = self.simulate_get(self.url_prefix + '/queues', project_id,
|
||||
query_string='limit=5')
|
||||
result = self.simulate_get(self.queue_path,
|
||||
project_id, query_string='limit=5')
|
||||
|
||||
result_doc = json.loads(result[0])
|
||||
[target, params] = result_doc['links'][0]['href'].split('?')
|
||||
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
self.assertEqual(self.srmock.headers_dict['Content-Location'],
|
||||
self.url_prefix + '/queues?limit=5')
|
||||
self.queue_path + '?limit=5')
|
||||
|
||||
# Ensure we didn't pick up the queue from the alt project.
|
||||
queues = result_doc['queues']
|
||||
@ -310,7 +317,7 @@ class QueueLifecycleBaseTest(base.TestBase):
|
||||
self.assertNotIn('metadata', queue)
|
||||
|
||||
# List with metadata
|
||||
result = self.simulate_get(self.url_prefix + '/queues', project_id,
|
||||
result = self.simulate_get(self.queue_path, project_id,
|
||||
query_string='detailed=true')
|
||||
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_200)
|
||||
@ -362,24 +369,24 @@ class TestQueueLifecycleFaultyDriver(base.TestBaseFaulty):
|
||||
config_file = 'wsgi_faulty.conf'
|
||||
|
||||
def test_simple(self):
|
||||
path = self.url_prefix + '/queues/gumshoe'
|
||||
gumshoe_queue_path = self.url_prefix + '/queues/gumshoe'
|
||||
doc = '{"messages": {"ttl": 600}}'
|
||||
self.simulate_put(path, '480924', body=doc)
|
||||
self.simulate_put(gumshoe_queue_path, '480924', body=doc)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_503)
|
||||
|
||||
location = ('Location', path)
|
||||
location = ('Location', gumshoe_queue_path)
|
||||
self.assertNotIn(location, self.srmock.headers)
|
||||
|
||||
result = self.simulate_get(path + '/metadata', '480924')
|
||||
result = self.simulate_get(gumshoe_queue_path + '/metadata', '480924')
|
||||
result_doc = json.loads(result[0])
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_503)
|
||||
self.assertNotEqual(result_doc, json.loads(doc))
|
||||
|
||||
self.simulate_get(path + '/stats', '480924')
|
||||
self.simulate_get(gumshoe_queue_path + '/stats', '480924')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_503)
|
||||
|
||||
self.simulate_get(self.url_prefix + '/queues', '480924')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_503)
|
||||
|
||||
self.simulate_delete(path, '480924')
|
||||
self.simulate_delete(gumshoe_queue_path, '480924')
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_503)
|
||||
|
Loading…
x
Reference in New Issue
Block a user