Пример #1
0
    def test_close(self):
        left = Mock()
        right = Mock()
        ct = ComposableTransport(left, right)

        ct.close()

        left.close.assert_called_once_with()
        right.close.assert_called_once_with()
Пример #2
0
    def test_overlay(self):
        left = Mock()
        ct = ComposableTransport(left, None)

        self.assertEquals(ct._transports, [left])

        right = Mock()

        ct.overlay(right, 'brambles')
        self.assertIn('brambles', ct._methods)
        self.assertEquals(ct._methods['brambles'], right.brambles)
Пример #3
0
    def test_overlay_multiple_times(self):
        left = Mock()
        ct = ComposableTransport(left, None)

        middle = Mock()
        ct.overlay(middle, 'wallof')
        right = Mock()
        ct.overlay(right, 'wallof')

        self.assertEquals(ct._transports, [left, middle, right])
        self.assertIn('wallof', ct._methods)
        self.assertEquals(ct._methods['wallof'], right.wallof)
Пример #4
0
    def test_close_with_callbacks(self):
        left = Mock()
        right = Mock()
        ct = ComposableTransport(left, right)
        cb = Mock()

        ct.add_on_close_callback(cb)
        self.assertEquals(ct._close_callbacks, [cb])

        ct.close()

        left.close.assert_called_once_with()
        right.close.assert_called_once_with()

        cb.assert_called_once_with(ct, 200, "Closed OK")
Пример #5
0
 def __init__(self, exchange_manager, priviledged_transport):
     self._exchange_manager = exchange_manager
     ComposableTransport.__init__(self, priviledged_transport, None, *ComposableTransport.common_methods)
Пример #6
0
    def test_channel_number(self):
        left = Mock()
        right = Mock()
        ct = ComposableTransport(left, right)

        self.assertEquals(ct.channel_number, right.channel_number)
Пример #7
0
    def test_overlay_and_call_all_methods(self):
        left = Mock()
        right = Mock()
        ct = ComposableTransport(left, right,
                                 *ComposableTransport.common_methods)

        ct.declare_exchange_impl(sentinel.exchange)
        ct.delete_exchange_impl(sentinel.exchange)
        ct.declare_queue_impl(sentinel.queue)
        ct.delete_queue_impl(sentinel.queue)
        ct.bind_impl(sentinel.exchange, sentinel.queue, sentinel.binding)
        ct.unbind_impl(sentinel.exchange, sentinel.queue, sentinel.binding)
        ct.ack_impl(sentinel.dtag)
        ct.reject_impl(sentinel.dtag)
        ct.start_consume_impl(sentinel.callback, sentinel.queue)
        ct.stop_consume_impl(sentinel.ctag)
        ct.setup_listener(sentinel.binding, sentinel.callback)
        ct.get_stats_impl(sentinel.queue)
        ct.purge_impl(sentinel.queue)
        ct.qos_impl()
        ct.publish_impl(sentinel.exchange, sentinel.rkey, sentinel.body,
                        sentinel.props)

        left.declare_exchange_impl.assert_called_once_with(sentinel.exchange)
        left.delete_exchange_impl.assert_called_once_with(sentinel.exchange)
        left.declare_queue_impl.assert_called_once_with(sentinel.queue)
        left.delete_queue_impl.assert_called_once_with(sentinel.queue)
        left.bind_impl.assert_called_once_with(sentinel.exchange,
                                               sentinel.queue,
                                               sentinel.binding)
        left.unbind_impl.assert_called_once_with(sentinel.exchange,
                                                 sentinel.queue,
                                                 sentinel.binding)
        left.purge_impl.assert_called_once_with(sentinel.queue)
        left.setup_listener.assert_called_once_with(sentinel.binding,
                                                    sentinel.callback)

        right.ack_impl.assert_called_once_with(sentinel.dtag)
        right.reject_impl.assert_called_once_with(sentinel.dtag, requeue=False)
        right.start_consume_impl.assert_called_once_with(sentinel.callback,
                                                         sentinel.queue,
                                                         no_ack=False,
                                                         exclusive=False)
        right.stop_consume_impl.assert_called_once_with(sentinel.ctag)
        right.get_stats_impl.assert_called_once_with(sentinel.queue)
        right.qos_impl.assert_called_once_with(prefetch_size=0,
                                               prefetch_count=0,
                                               global_=False)
        right.publish_impl.assert_called_once_with(sentinel.exchange,
                                                   sentinel.rkey,
                                                   sentinel.body,
                                                   sentinel.props,
                                                   immediate=False,
                                                   mandatory=False,
                                                   durable_msg=False)

        # assert non-calls on other side
        self.assertEquals(right.declare_exchange_impl.call_count, 0)
        self.assertEquals(right.delete_exchange_impl.call_count, 0)
        self.assertEquals(right.declare_queue_impl.call_count, 0)
        self.assertEquals(right.delete_queue_impl.call_count, 0)
        self.assertEquals(right.bind_impl.call_count, 0)
        self.assertEquals(right.unbind_impl.call_count, 0)
        self.assertEquals(right.purge_impl.call_count, 0)
        self.assertEquals(right.setup_listener.call_count, 0)

        self.assertEquals(left.ack_impl.call_count, 0)
        self.assertEquals(left.reject_impl.call_count, 0)
        self.assertEquals(left.start_consume_impl.call_count, 0)
        self.assertEquals(left.stop_consume_impl.call_count, 0)
        self.assertEquals(left.get_stats_impl.call_count, 0)
        self.assertEquals(left.qos_impl.call_count, 0)
        self.assertEquals(left.publish_impl.call_count, 0)
Пример #8
0
    def test_overlay_and_call_all_methods(self):
        left = Mock()
        right = Mock()
        ct = ComposableTransport(left, right, *ComposableTransport.common_methods)

        ct.declare_exchange_impl(sentinel.exchange)
        ct.delete_exchange_impl(sentinel.exchange)
        ct.declare_queue_impl(sentinel.queue)
        ct.delete_queue_impl(sentinel.queue)
        ct.bind_impl(sentinel.exchange, sentinel.queue, sentinel.binding)
        ct.unbind_impl(sentinel.exchange, sentinel.queue, sentinel.binding)
        ct.ack_impl(sentinel.dtag)
        ct.reject_impl(sentinel.dtag)
        ct.start_consume_impl(sentinel.callback, sentinel.queue)
        ct.stop_consume_impl(sentinel.ctag)
        ct.setup_listener(sentinel.binding, sentinel.callback)
        ct.get_stats_impl(sentinel.queue)
        ct.purge_impl(sentinel.queue)
        ct.qos_impl()
        ct.publish_impl(sentinel.exchange, sentinel.rkey, sentinel.body, sentinel.props)

        left.declare_exchange_impl.assert_called_once_with(sentinel.exchange)
        left.delete_exchange_impl.assert_called_once_with(sentinel.exchange)
        left.declare_queue_impl.assert_called_once_with(sentinel.queue)
        left.delete_queue_impl.assert_called_once_with(sentinel.queue)
        left.bind_impl.assert_called_once_with(sentinel.exchange, sentinel.queue, sentinel.binding)
        left.unbind_impl.assert_called_once_with(sentinel.exchange, sentinel.queue, sentinel.binding)
        left.purge_impl.assert_called_once_with(sentinel.queue)
        left.setup_listener.assert_called_once_with(sentinel.binding, sentinel.callback)

        right.ack_impl.assert_called_once_with(sentinel.dtag)
        right.reject_impl.assert_called_once_with(sentinel.dtag, requeue=False)
        right.start_consume_impl.assert_called_once_with(sentinel.callback, sentinel.queue, no_ack=False, exclusive=False)
        right.stop_consume_impl.assert_called_once_with(sentinel.ctag)
        right.get_stats_impl.assert_called_once_with(sentinel.queue)
        right.qos_impl.assert_called_once_with(prefetch_size=0, prefetch_count=0, global_=False)
        right.publish_impl.assert_called_once_with(sentinel.exchange, sentinel.rkey, sentinel.body, sentinel.props, immediate=False, mandatory=False, durable_msg=False)

        # assert non-calls on other side
        self.assertEquals(right.declare_exchange_impl.call_count, 0)
        self.assertEquals(right.delete_exchange_impl.call_count, 0)
        self.assertEquals(right.declare_queue_impl.call_count, 0)
        self.assertEquals(right.delete_queue_impl.call_count, 0)
        self.assertEquals(right.bind_impl.call_count, 0)
        self.assertEquals(right.unbind_impl.call_count, 0)
        self.assertEquals(right.purge_impl.call_count, 0)
        self.assertEquals(right.setup_listener.call_count, 0)

        self.assertEquals(left.ack_impl.call_count, 0)
        self.assertEquals(left.reject_impl.call_count, 0)
        self.assertEquals(left.start_consume_impl.call_count, 0)
        self.assertEquals(left.stop_consume_impl.call_count, 0)
        self.assertEquals(left.get_stats_impl.call_count, 0)
        self.assertEquals(left.qos_impl.call_count, 0)
        self.assertEquals(left.publish_impl.call_count, 0)
Пример #9
0
 def __init__(self, exchange_manager, priviledged_transport):
     self._exchange_manager = exchange_manager
     ComposableTransport.__init__(self, priviledged_transport, None,
                                  *ComposableTransport.common_methods)