Merge "test: Don't test message's reply timeout"

This commit is contained in:
Jenkins 2016-03-11 10:16:58 +00:00 committed by Gerrit Code Review
commit 5972b2310f

View File

@ -403,11 +403,6 @@ class TestSendReceive(test_utils.BaseTestCase):
('zero', dict(rx_id=False, reply=0)), ('zero', dict(rx_id=False, reply=0)),
] ]
_reply_fail = [
('reply_success', dict(reply_failure_404=False)),
('reply_failure', dict(reply_failure_404=True)),
]
_failure = [ _failure = [
('success', dict(failure=False)), ('success', dict(failure=False)),
('failure', dict(failure=True, expected=False)), ('failure', dict(failure=True, expected=False)),
@ -424,7 +419,6 @@ class TestSendReceive(test_utils.BaseTestCase):
cls.scenarios = testscenarios.multiply_scenarios(cls._n_senders, cls.scenarios = testscenarios.multiply_scenarios(cls._n_senders,
cls._context, cls._context,
cls._reply, cls._reply,
cls._reply_fail,
cls._failure, cls._failure,
cls._timeout) cls._timeout)
@ -457,10 +451,8 @@ class TestSendReceive(test_utils.BaseTestCase):
def send_and_wait_for_reply(i): def send_and_wait_for_reply(i):
try: try:
if self.reply_failure_404:
timeout = 0.01 timeout = self.timeout
else:
timeout = self.timeout
replies.append(driver.send(target, replies.append(driver.send(target,
self.ctxt, self.ctxt,
{'tx_id': i}, {'tx_id': i},
@ -470,8 +462,7 @@ class TestSendReceive(test_utils.BaseTestCase):
self.assertIsNone(self.timeout) self.assertIsNone(self.timeout)
except (ZeroDivisionError, oslo_messaging.MessagingTimeout) as e: except (ZeroDivisionError, oslo_messaging.MessagingTimeout) as e:
replies.append(e) replies.append(e)
self.assertTrue(self.failure or self.timeout is not None self.assertTrue(self.failure or self.timeout is not None)
or self.reply_failure_404)
while len(senders) < self.n_senders: while len(senders) < self.n_senders:
senders.append(threading.Thread(target=send_and_wait_for_reply, senders.append(threading.Thread(target=send_and_wait_for_reply,
@ -491,18 +482,6 @@ class TestSendReceive(test_utils.BaseTestCase):
if len(order) > 1: if len(order) > 1:
order[-1], order[-2] = order[-2], order[-1] order[-1], order[-2] = order[-2], order[-1]
if self.reply_failure_404:
start = time.time()
# NOTE(sileht): Simulate a rpc client restart
# By returning a ExchangeNotFound when we try to
# send reply
exc = (driver._reply_q_conn.connection.
connection.channel_errors[0]())
exc.code = 404
self.useFixture(mockpatch.Patch(
'kombu.messaging.Producer.publish',
side_effect=exc))
for i in order: for i in order:
if self.timeout is None: if self.timeout is None:
if self.failure: if self.failure:
@ -516,22 +495,11 @@ class TestSendReceive(test_utils.BaseTestCase):
msgs[i].reply({'rx_id': i}) msgs[i].reply({'rx_id': i})
else: else:
msgs[i].reply(self.reply) msgs[i].reply(self.reply)
elif self.reply_failure_404:
msgs[i].reply({})
senders[i].join() senders[i].join()
if self.reply_failure_404:
# NOTE(sileht) all reply fail, first take
# kombu_missing_consumer_retry_timeout seconds to fail
# next immediately fail
dt = time.time() - start
rabbit_conf = self.conf.oslo_messaging_rabbit
timeout = rabbit_conf.kombu_missing_consumer_retry_timeout
self.assertTrue(timeout <= dt < (timeout + 0.100), dt)
self.assertEqual(len(senders), len(replies)) self.assertEqual(len(senders), len(replies))
for i, reply in enumerate(replies): for i, reply in enumerate(replies):
if self.timeout is not None or self.reply_failure_404: if self.timeout is not None:
self.assertIsInstance(reply, oslo_messaging.MessagingTimeout) self.assertIsInstance(reply, oslo_messaging.MessagingTimeout)
elif self.failure: elif self.failure:
self.assertIsInstance(reply, ZeroDivisionError) self.assertIsInstance(reply, ZeroDivisionError)