Source code for cis_interface.drivers.tests.test_RMQDriver

import nose.tools as nt
import cis_interface.drivers.tests.test_Driver as parent
from cis_interface.drivers.tests.test_IODriver import IOInfo
from cis_interface.config import cis_cfg


[docs]class TestRMQParam(parent.TestParam, IOInfo): r"""Test parameters for RMQDriver class. Attributes (in addition to parent class's): - """ def __init__(self, *args, **kwargs): super(TestRMQParam, self).__init__(*args, **kwargs) self.driver = 'RMQDriver' self.args = None self.attr_list += ['user', 'host', 'passwd', 'exchange', 'connection', 'queue', 'channel', 'routing_key', 'consumer_tag', '_opening', '_closing', 'times_connected'] self.inst_kwargs['user'] = cis_cfg.get('RMQ', 'user')
[docs]class TestRMQDriverNoStart(TestRMQParam, parent.TestDriverNoStart): r"""Test class for RMQDriver class without start. Attributes (in addition to parent class's): - """ pass
[docs]class TestRMQDriver(TestRMQParam, parent.TestDriver): r"""Test class for RMQDriver class. Attributes (in addition to parent class's): - """
[docs] def teardown(self): r"""Make sure the queue is empty before closing the driver.""" self.instance.purge_queue() super(TestRMQDriver, self).teardown()
[docs] def test_purge(self): r"""Test purge of queue.""" self.instance.rmq_send(self.msg_short) elapsed = 0.0 while self.instance.n_rmq_msg != 1 and elapsed < self.instance.timeout: self.instance.sleep() elapsed += self.instance.sleeptime nt.assert_equal(self.instance.n_rmq_msg, 1) self.instance.purge_queue() nt.assert_equal(self.instance.n_rmq_msg, 0)
[docs] def assert_after_terminate(self): r"""Make sure the connection is closed.""" nt.assert_equal(self.instance.connection, None) nt.assert_equal(self.instance.channel, None) assert(not self.instance._opening) assert(not self.instance._closing) super(TestRMQDriver, self).assert_after_terminate()
# def test_reconnect(self): # r"""Close the connection to simulation failure and force reconnect.""" # if self.driver == 'RMQDriver': # with self.instance.lock: # self.instance.connection.close(reply_code=100, # reply_text="Test shutdown") # self.instance.sleep() # import time # time.sleep(10) # print(self.instance.times_connected, 'times', self.instance._opening, # self.instance._closing) # self.instance.sleep() # self.instance.sleep()