Esempio n. 1
0
def _init_bus():
    global bus_client
    bus_client = BusCtlClient()
    bus_client.connect()
    bus_client.declare_exchange(config.BUS_EXCHANGE_NAME,
                                config.BUS_EXCHANGE_TYPE,
                                durable=config.BUS_EXCHANGE_DURABLE)
Esempio n. 2
0
    def test_connect_and_close_opens_and_closes_transport(self, amqp_client):
        transport = Mock()
        amqp_client.create_and_connect.return_value = transport

        client = BusCtlClient()
        client.connect()
        client.close()

        amqp_client.create_and_connect.assert_called_once_with()
        transport.close.assert_called_once_with()
Esempio n. 3
0
def _init_bus():
    global bus_client
    bus_client = BusCtlClient()
    bus_client.connect()
    bus_client.declare_exchange(config.BUS_EXCHANGE_NAME,
                                config.BUS_EXCHANGE_TYPE,
                                durable=config.BUS_EXCHANGE_DURABLE)
Esempio n. 4
0
    def test_connect_and_close_opens_and_closes_transport(self, amqp_client):
        transport = Mock()
        amqp_client.create_and_connect.return_value = transport

        client = BusCtlClient()
        client.connect()
        client.close()

        amqp_client.create_and_connect.assert_called_once_with()
        transport.close.assert_called_once_with()
Esempio n. 5
0
 def test_close_transport_with_no_connection(self, amqp_client):
     client = BusCtlClient()
     client.close()
     self.assertFalse(amqp_client.create_and_connect.called)
Esempio n. 6
0
    def test_connect_already_connected(self):
        client = BusCtlClient()
        client.connect()

        self.assertRaises(Exception, client.connect)
Esempio n. 7
0
    def test_connect_no_transport(self, amqp_client_constructor):
        client = BusCtlClient()
        client.connect()

        amqp_client_constructor.create_and_connect.assert_called_once_with()
Esempio n. 8
0
 def setUp(self):
     self.marshaler = Mock(Marshaler)
     self.transport = Mock(AMQPTransportClient)
     self.bus_ctl_client = BusCtlClient()
     self.bus_ctl_client._marshaler = self.marshaler
     self.bus_ctl_client._transport = self.transport
Esempio n. 9
0
class TestBusCtlClient(unittest.TestCase):

    def setUp(self):
        self.marshaler = Mock(Marshaler)
        self.transport = Mock(AMQPTransportClient)
        self.bus_ctl_client = BusCtlClient()
        self.bus_ctl_client._marshaler = self.marshaler
        self.bus_ctl_client._transport = self.transport

    @patch('xivo_bus.ctl.client.AMQPTransportClient')
    def test_connect_no_transport(self, amqp_client_constructor):
        client = BusCtlClient()
        client.connect()

        amqp_client_constructor.create_and_connect.assert_called_once_with()

    @patch('xivo_bus.ctl.client.AMQPTransportClient', Mock())
    def test_connect_already_connected(self):
        client = BusCtlClient()
        client.connect()

        self.assertRaises(Exception, client.connect)

    @patch('xivo_bus.ctl.client.AMQPTransportClient')
    def test_close_transport_with_no_connection(self, amqp_client):
        client = BusCtlClient()
        client.close()
        self.assertFalse(amqp_client.create_and_connect.called)

    @patch('xivo_bus.ctl.client.AMQPTransportClient')
    def test_connect_and_close_opens_and_closes_transport(self, amqp_client):
        transport = Mock()
        amqp_client.create_and_connect.return_value = transport

        client = BusCtlClient()
        client.connect()
        client.close()

        amqp_client.create_and_connect.assert_called_once_with()
        transport.close.assert_called_once_with()

    def test_declare_exchange(self):
        name = 'xivo-ami'
        exchange_type = 'topic'
        durable = True

        self.bus_ctl_client.declare_exchange(name, exchange_type, durable)

        self.transport.exchange_declare.assert_called_once_with(name, exchange_type, durable)

    def test_publish_event(self):
        event = Mock()
        event.name = 'foobar'
        exchange = 'xivo-ami'
        routing_key = event.name
        request = Mock()
        self.marshaler.marshal_command.return_value = request

        self.bus_ctl_client.publish_event(exchange, routing_key, event)

        self.marshaler.marshal_command.assert_called_once_with(event)
        self.transport.send.assert_called_once_with(exchange, routing_key, request)
Esempio n. 10
0
 def test_close_transport_with_no_connection(self, amqp_client):
     client = BusCtlClient()
     client.close()
     self.assertFalse(amqp_client.create_and_connect.called)
Esempio n. 11
0
    def test_connect_already_connected(self):
        client = BusCtlClient()
        client.connect()

        self.assertRaises(Exception, client.connect)
Esempio n. 12
0
    def test_connect_no_transport(self, amqp_client_constructor):
        client = BusCtlClient()
        client.connect()

        amqp_client_constructor.create_and_connect.assert_called_once_with()
Esempio n. 13
0
 def setUp(self):
     self.marshaler = Mock(Marshaler)
     self.transport = Mock(AMQPTransportClient)
     self.bus_ctl_client = BusCtlClient()
     self.bus_ctl_client._marshaler = self.marshaler
     self.bus_ctl_client._transport = self.transport
Esempio n. 14
0
class TestBusCtlClient(unittest.TestCase):
    def setUp(self):
        self.marshaler = Mock(Marshaler)
        self.transport = Mock(AMQPTransportClient)
        self.bus_ctl_client = BusCtlClient()
        self.bus_ctl_client._marshaler = self.marshaler
        self.bus_ctl_client._transport = self.transport

    @patch('xivo_bus.ctl.client.AMQPTransportClient')
    def test_connect_no_transport(self, amqp_client_constructor):
        client = BusCtlClient()
        client.connect()

        amqp_client_constructor.create_and_connect.assert_called_once_with()

    @patch('xivo_bus.ctl.client.AMQPTransportClient', Mock())
    def test_connect_already_connected(self):
        client = BusCtlClient()
        client.connect()

        self.assertRaises(Exception, client.connect)

    @patch('xivo_bus.ctl.client.AMQPTransportClient')
    def test_close_transport_with_no_connection(self, amqp_client):
        client = BusCtlClient()
        client.close()
        self.assertFalse(amqp_client.create_and_connect.called)

    @patch('xivo_bus.ctl.client.AMQPTransportClient')
    def test_connect_and_close_opens_and_closes_transport(self, amqp_client):
        transport = Mock()
        amqp_client.create_and_connect.return_value = transport

        client = BusCtlClient()
        client.connect()
        client.close()

        amqp_client.create_and_connect.assert_called_once_with()
        transport.close.assert_called_once_with()

    def test_declare_exchange(self):
        name = 'xivo-ami'
        exchange_type = 'topic'
        durable = True

        self.bus_ctl_client.declare_exchange(name, exchange_type, durable)

        self.transport.exchange_declare.assert_called_once_with(
            name, exchange_type, durable)

    def test_publish_event(self):
        event = Mock()
        event.name = 'foobar'
        exchange = 'xivo-ami'
        routing_key = event.name
        request = Mock()
        self.marshaler.marshal_command.return_value = request

        self.bus_ctl_client.publish_event(exchange, routing_key, event)

        self.marshaler.marshal_command.assert_called_once_with(event)
        self.transport.send.assert_called_once_with(exchange, routing_key,
                                                    request)
Esempio n. 15
0
 def __init__(self, fetch_response=True):
     BusCtlClient.__init__(self)
     self._fetch_response = fetch_response