class RabbitMqAgent(ConfigurableCluAgent): """ Rabbitmq agent """ def __init__(self, config, rmqconf): ConfigurableCluAgent.__init__(self, config) defaults = {"channel": {"exchange":"", "type":""}, "messages":{"routing_key":""} } self.__defaults__(defaults) self.rmqclient = RabbitmqClient(rmqconf) def ensure_after_execute(self): try: ConfigurableCluAgent.ensure_after_execute(self) finally: self.rmqclient.disconnect() def basic_publish_json(self, message): real_message = {} real_message["id"] = self.id real_message["payload"] = message self.rmqclient.basic_publish_json(self.config.channel.exchange, self.config.channel.type, self.config.messages.routing_key, real_message)
def test_disconnect_exception(self): conn = Mock() close = Mock() close.side_effect=Exception("In your face") connection_valid = Mock() connection_valid.return_value = True config={"host":"host", "port":5656, "user":"******","password":"******"} co = RabbitmqClient(config) co._connection=conn conn.close=close co.is_connection_valid = connection_valid with self.assertRaises(RabbitmqClientException): co.disconnect()
def test_disconnect(self): conn = Mock() close = Mock() connection_valid = Mock() connection_valid.return_value = True conn.close=close config={"host":"host", "port":5656, "user":"******","password":"******"} co = RabbitmqClient(config) co.is_connection_valid = connection_valid co._connection=conn co.disconnect() close.assert_called_once_with() self.assertTrue(co._connection is None) self.assertTrue(co._channel is None)