Merge "Validation for messages returned by queue/stats"

This commit is contained in:
Jenkins 2013-10-17 15:41:31 +00:00 committed by Gerrit Code Review
commit d8c26e5648
2 changed files with 66 additions and 11 deletions

View File

@ -17,6 +17,8 @@
import abc
import multiprocessing
from marconi.openstack.common import timeutils
from marconi.queues import bootstrap
# NOTE(flaper87): This is necessary to register,
# wsgi configs and won't be permanent. It'll be
@ -112,6 +114,52 @@ class FunctionalTestBase(testing.TestBase):
self.assertEqual(result_json['messages']['total'],
total)
if 'oldest' in result_json['messages']:
oldest_message = result_json['messages']['oldest']
self.verify_message_stats(oldest_message)
newest_message = result_json['messages']['newest']
self.verify_message_stats(newest_message)
def verify_message_stats(self, message):
"""Verifies the oldest & newest message stats
:param message: oldest (or) newest message returned by
queue_name/stats.
"""
expected_keys = ['age', 'created', 'href']
response_keys = message.keys()
response_keys.sort()
self.assertEqual(response_keys, expected_keys)
# Verify that age has valid values
age = message['age']
self.assertTrue(0 <= age <= self.limits.message_ttl_max,
msg='Invalid Age {0}'.format(age))
# Verify that GET on href returns 200
path = message['href']
result = self.client.get(path)
self.assertEqual(result.status_code, 200)
# Verify that created time falls within the last 10 minutes
# NOTE(malini): The messages are created during the test.
created_time = message['created']
created_time = timeutils.normalize_time(
timeutils.parse_isotime(created_time))
now = timeutils.utcnow()
delta = timeutils.delta_seconds(before=created_time, after=now)
# NOTE(malini): The 'int()' below is a work around for the small time
# difference between julianday & UTC.
# (needed to pass this test on sqlite driver)
delta = int(delta)
msg = 'Invalid Time Delta {0}, Created time {1}, Now {2}' \
.format(delta, created_time, now)
self.assertTrue(0 <= delta <= 6000, msg)
class Server(object):

View File

@ -77,6 +77,7 @@ class TestInsertQueue(base.FunctionalTestBase):
self.header = helpers.create_marconi_headers(self.cfg)
self.headers_response_empty = set(['location'])
self.client.set_base_url(self.base_url)
self.header = helpers.create_marconi_headers(self.cfg)
@ddt.data('qtestqueue', 'TESTqueue', 'hyphen-name', '_undersore',
annotated('test_insert_queue_long_name', 'i' * 64))
@ -254,12 +255,12 @@ class TestQueueMisc(base.FunctionalTestBase):
def setUp(self):
super(TestQueueMisc, self).setUp()
self.base_url = '{0}/{1}'.format(self.cfg.marconi.url,
self.cfg.marconi.version)
self.base_url = self.cfg.marconi.url
self.client.set_base_url(self.base_url)
self.queue_url = self.base_url + '/queues/{0}'.format(uuid.uuid1())
self.queue_url = self.base_url + '/{0}/queues/{1}' \
.format(self.cfg.marconi.version,
uuid.uuid1())
def test_list_queues(self):
"""List Queues."""
@ -267,7 +268,8 @@ class TestQueueMisc(base.FunctionalTestBase):
self.client.put(self.queue_url)
self.addCleanup(self.client.delete, self.queue_url)
result = self.client.get('/queues')
result = self.client.get('/{0}/queues'
.format(self.cfg.marconi.version))
self.assertEqual(result.status_code, 200)
response_keys = result.json().keys()
@ -283,7 +285,9 @@ class TestQueueMisc(base.FunctionalTestBase):
self.addCleanup(self.client.delete, self.queue_url)
params = {'detailed': True}
result = self.client.get('/queues', params=params)
result = self.client.get('/{0}/queues'
.format(self.cfg.marconi.version),
params=params)
self.assertEqual(result.status_code, 200)
response_keys = result.json()['queues'][0].keys()
@ -297,7 +301,9 @@ class TestQueueMisc(base.FunctionalTestBase):
"""List Queues with a limit value that is not allowed."""
params = {'limit': limit}
result = self.client.get('/queues', params=params)
result = self.client.get('/{0}/queues'
.format(self.cfg.marconi.version),
params=params)
self.assertEqual(result.status_code, 400)
test_list_queue_invalid_limit.tags = ['negative']
@ -305,7 +311,8 @@ class TestQueueMisc(base.FunctionalTestBase):
def test_check_health(self):
"""Test health endpoint."""
result = self.client.get('/health')
result = self.client.get('/{0}/health'
.format(self.cfg.marconi.version))
self.assertEqual(result.status_code, 204)
test_check_health.tags = ['positive']
@ -325,7 +332,7 @@ class TestQueueMisc(base.FunctionalTestBase):
def test_check_queue_exists_negative(self):
"""Checks non-existing queue."""
path = '/queues/nonexistingqueue'
path = '/{0}/queues/nonexistingqueue'.format(self.cfg.marconi.version)
result = self.client.get(path)
self.assertEqual(result.status_code, 404)
@ -337,8 +344,8 @@ class TestQueueMisc(base.FunctionalTestBase):
def test_get_queue_malformed_marker(self):
"""List queues with invalid marker."""
url = self.base_url + '/queues?marker=zzz'
result = self.client.get(url)
path = '/{0}/queues?marker=zzz'.format(self.cfg.marconi.version)
result = self.client.get(path)
self.assertEqual(result.status_code, 204)
test_get_queue_malformed_marker.tags = ['negative']