Source code for cis_interface.drivers.tests.test_RMQClientDriver
# import os
import nose.tools as nt
import cis_interface.drivers.tests.test_RMQDriver as parent1
from cis_interface.drivers.tests.test_IODriver import IOInfo
from cis_interface import runner
# from cis_interface.examples import yamls as ex_yamls
# def test_yaml():
# r"""Test Server/Client setup using runner."""
# os.environ['FIB_ITERATIONS'] = '3'
# os.environ['FIB_SERVER_SLEEP_SECONDS'] = '0.002'
# cr = runner.get_runner(ex_yamls['rpcfib_python'])
# cr.run()
[docs]class TestRMQClientParam(parent1.TestRMQParam, IOInfo):
r"""Test parameters for RMQClientDriver class.
Attributes (in addition to parent class's):
-
"""
def __init__(self, *args, **kwargs):
super(TestRMQClientParam, self).__init__(*args, **kwargs)
self.driver = 'RMQClientDriver'
self.args = None
self.attr_list += ['request_queue', 'response', 'corr_id',
'_deliveries', '_acked', '_nacked',
'_message_number']
[docs]class TestRMQClientDriverNoStart(TestRMQClientParam,
parent1.TestRMQDriverNoStart):
r"""Test class for RMQClientDriver class without start.
Attributes (in addition to parent class's):
-
"""
pass
[docs]class TestRMQClientDriver(TestRMQClientParam, parent1.TestRMQDriver):
r"""Test class for RMQClientDriver class.
Attributes (in addition to parent class's):
-
"""
[docs] def setup(self):
r"""Recover new client message on start-up."""
super(TestRMQClientDriver, self).setup()
self.srv_rmq = self.create_server_rmq()
self.srv_rmq.start()
[docs] def teardown(self):
r"""Recover end client message on teardown."""
if hasattr(self, 'srv_rmq'):
self.remove_instance(self.srv_rmq)
delattr(self, 'srv_rmq')
super(TestRMQClientDriver, self).teardown()
[docs] def create_server_rmq(self):
r"""Create a new RMQServerDriver instance."""
inst = runner.create_driver(
'RMQServerDriver', self.name, None,
namespace=self.namespace, workingDir=self.workingDir)
return inst
# Disabled so that test message is not read by mistake
[docs] def test_purge(self):
r"""Test purge of queue."""
pass
[docs] def test_msg(self):
r"""Test routing of a message through the IPC & RMQ queues."""
# Send message to IPC output & receive from RMQ output
self.instance.oipc.ipc_send_nolimit(self.msg_short)
# Receive on server side, then send back
rmq_msg = self.srv_rmq.iipc.recv_wait_nolimit()
nt.assert_equal(rmq_msg, self.msg_short)
self.srv_rmq.oipc.ipc_send_nolimit(rmq_msg)
# Receive response from server
ipc_msg = self.instance.iipc.recv_wait_nolimit()
nt.assert_equal(ipc_msg, self.msg_short)