Ejemplo n.º 1
0
    def test_get_channel_id(self):
        ch = BaseChannel()

        self.assertTrue(ch.get_channel_id() is None)

        ch.on_channel_open(Mock())
        self.assertEquals(ch.get_channel_id(), ch._transport.channel_number)
Ejemplo n.º 2
0
    def test_on_channel_close(self):
        ch = BaseChannel()
        ch._amq_chan = Mock()
        ch._amq_chan.channel_number = 1

        ch.on_channel_close(0, 'hi')
        self.assertIsNone(ch._amq_chan)
Ejemplo n.º 3
0
    def test_on_channel_close(self):
        ch = BaseChannel()
        ch.on_channel_open(Mock())
        ch._transport.channel_number = 1

        ch.on_channel_close(ch, 0, 'hi')
        self.assertIsNone(ch._transport)
Ejemplo n.º 4
0
    def test_get_channel_id(self):
        ch = BaseChannel()

        self.assertTrue(ch.get_channel_id() is None)

        ch._amq_chan = Mock()
        self.assertEquals(ch.get_channel_id(), ch._amq_chan.channel_number)
Ejemplo n.º 5
0
    def test__sync_call_with_mult_rets(self):
        def async_func(*args, **kwargs):
            cbparam = kwargs.get('callback')
            cbparam(sentinel.val, sentinel.val2)

        ch = BaseChannel()
        rv = ch._sync_call(async_func, 'callback')
        self.assertEquals(rv, (sentinel.val, sentinel.val2))
Ejemplo n.º 6
0
    def test__sync_call_with_normal_and_kwarg_rets(self):
        def async_func(*args, **kwargs):
            cbparam = kwargs.get('callback')
            cbparam(sentinel.arg, sup=sentinel.val, sup2=sentinel.val2)

        ch = BaseChannel()
        rv = ch._sync_call(async_func, 'callback')
        self.assertEquals(rv, (sentinel.arg, {'sup':sentinel.val, 'sup2':sentinel.val2}))
Ejemplo n.º 7
0
    def test_on_channel_open(self):
        ch = BaseChannel()

        ac = Mock(pchannel.Channel)
        ch.on_channel_open(ac)

        ac.add_on_close_callback.assert_called_once_with(ch.on_channel_close)
        self.assertEquals(ch._amq_chan, ac)
Ejemplo n.º 8
0
    def test_close_with_callback(self):
        # with close callback
        cbmock = Mock()
        ch = BaseChannel(close_callback=cbmock)
        ch._fsm.current_state = ch.S_ACTIVE
        ch.close()

        cbmock.assert_called_once_with(ch)
Ejemplo n.º 9
0
    def test_on_channel_open(self):
        ch = BaseChannel()

        transport = Mock()
        ch.on_channel_open(transport)

        transport.add_on_close_callback.assert_called_once_with(ch.on_channel_close)
        self.assertEquals(ch._transport, transport)
Ejemplo n.º 10
0
    def test__sync_call_with_kwarg_rets(self):
        def async_func(*args, **kwargs):
            cbparam = kwargs.get("callback")
            cbparam(sup=sentinel.val, sup2=sentinel.val2)

        ch = BaseChannel()
        rv = ch._sync_call(async_func, "callback")
        self.assertEquals(rv, {"sup": sentinel.val, "sup2": sentinel.val2})
Ejemplo n.º 11
0
    def test__sync_call_with_ret_value(self):
        def async_func(*args, **kwargs):
            cbparam = kwargs.get("callback")
            cbparam(sentinel.val)

        ch = BaseChannel()
        rv = ch._sync_call(async_func, "callback")
        self.assertEquals(rv, sentinel.val)
Ejemplo n.º 12
0
    def test__sync_call_no_ret_value(self):
        def async_func(*args, **kwargs):
            cbparam = kwargs.get("callback")
            cbparam()

        ch = BaseChannel()
        rv = ch._sync_call(async_func, "callback")
        self.assertIsNone(rv)
Ejemplo n.º 13
0
    def test_on_channel_open(self):
        ch = BaseChannel()

        transport = Mock()
        ch.on_channel_open(transport)

        transport.add_on_close_callback.assert_called_once_with(
            ch.on_channel_close)
        self.assertEquals(ch._transport, transport)
Ejemplo n.º 14
0
    def test_close(self):

        # without close callback
        transport = Mock()
        ch = BaseChannel()
        ch.on_channel_open(transport)
        ch._fsm.current_state = ch.S_ACTIVE
        
        ch.close()
        transport.close.assert_called_once_with()
Ejemplo n.º 15
0
    def test_close(self):

        # without close callback
        ac = Mock() #pchannel.Channel)  # cannot use this because callbacks is populated dynamically
        ch = BaseChannel()
        ch._amq_chan = ac
        ch._fsm.current_state = ch.S_ACTIVE
        
        ch.close()
        ac.close.assert_called_once_with()
        self.assertEquals(ac.callbacks.remove.call_count, 4)
Ejemplo n.º 16
0
    def test__sync_call_with_normal_and_kwarg_rets(self):
        def async_func(*args, **kwargs):
            cbparam = kwargs.get('callback')
            cbparam(sentinel.arg, sup=sentinel.val, sup2=sentinel.val2)

        ch = BaseChannel()
        rv = ch._sync_call(async_func, 'callback')
        self.assertEquals(rv, (sentinel.arg, {
            'sup': sentinel.val,
            'sup2': sentinel.val2
        }))
Ejemplo n.º 17
0
    def test_close(self):

        # without close callback
        ac = Mock(
        )  #pchannel.Channel)  # cannot use this because callbacks is populated dynamically
        ch = BaseChannel()
        ch._amq_chan = ac
        ch._fsm.current_state = ch.S_ACTIVE

        ch.close()
        ac.close.assert_called_once_with()
        self.assertEquals(ac.callbacks.remove.call_count, 4)
Ejemplo n.º 18
0
    def test_declare_exchange_point(self):
        # make sure no xp param results in assertion
        ch = BaseChannel()
        self.assertRaises(AssertionError, ch._declare_exchange, None)

        transport = Mock()
        ch.on_channel_open(transport)

        ch._declare_exchange('hello')
        self.assertTrue(transport.declare_exchange_impl.called)
        self.assertIn('hello',          transport.declare_exchange_impl.call_args[0])
        self.assertIn('exchange_type',  transport.declare_exchange_impl.call_args[1])
        self.assertIn('durable',        transport.declare_exchange_impl.call_args[1])
        self.assertIn('auto_delete',    transport.declare_exchange_impl.call_args[1])
Ejemplo n.º 19
0
    def test_declare_exchange_point(self):
        # make sure no xp param results in assertion
        ch = BaseChannel()
        self.assertRaises(AssertionError, ch._declare_exchange, None)

        ch._transport = Mock()
        ch._amq_chan = Mock()

        ch._declare_exchange("hello")
        self.assertTrue(ch._transport.declare_exchange_impl.called)
        self.assertIn(ch._amq_chan, ch._transport.declare_exchange_impl.call_args[0])
        self.assertIn("hello", ch._transport.declare_exchange_impl.call_args[0])
        self.assertIn("exchange_type", ch._transport.declare_exchange_impl.call_args[1])
        self.assertIn("durable", ch._transport.declare_exchange_impl.call_args[1])
        self.assertIn("auto_delete", ch._transport.declare_exchange_impl.call_args[1])
Ejemplo n.º 20
0
    def test__sync_call_with_error(self):
        ch = BaseChannel()

        def async_func(*args, **kwargs):
            ch.on_channel_close(1, 'bam')

        self.assertRaises(ChannelError, ch._sync_call, async_func, 'callback')
Ejemplo n.º 21
0
    def test_on_channel_closed_with_error_callback(self):
        ch = BaseChannel()
        ch.on_channel_open(Mock())
        ch._transport.channel_number = 1

        closemock = Mock()
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(ch, 1, 'hi')

        closemock.assert_called_once_with(ch, 1, 'hi')
Ejemplo n.º 22
0
    def test_on_channel_close_with_error_in_error_callback(self, logmock):
        ch = BaseChannel()
        ch.on_channel_open(Mock())
        ch._transport.channel_number = 1

        closemock = Mock()
        closemock.side_effect = StandardError
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(ch, 1, 'hi')

        self.assertEquals(logmock.warn.call_count, 1)
Ejemplo n.º 23
0
    def test_on_channel_close(self):
        ch = BaseChannel()
        ch.on_channel_open(Mock())
        ch._transport.channel_number = 1

        ch.on_channel_close(ch, 0, 'hi')
        self.assertIsNone(ch._transport)
Ejemplo n.º 24
0
    def test_get_channel_id(self):
        ch = BaseChannel()

        self.assertTrue(ch.get_channel_id() is None)

        ch.on_channel_open(Mock())
        self.assertEquals(ch.get_channel_id(), ch._transport.channel_number)
Ejemplo n.º 25
0
    def test_on_channel_closed_with_error_callback(self):
        ch = BaseChannel()
        ch._amq_chan = Mock()
        ch._amq_chan.channel_number = 1

        closemock = Mock()
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(1, 'hi')

        closemock.assert_called_once_with(ch, 1, 'hi')
Ejemplo n.º 26
0
    def test_declare_exchange_point(self):
        # make sure no xp param results in assertion
        ch = BaseChannel()
        self.assertRaises(AssertionError, ch._declare_exchange_point, None)

        # test it for real
        ac = Mock(spec=pchannel.Channel)
        def cbparam(*args, **kwargs):
            cbkwarg = kwargs.get('callback')
            cbkwarg(kwargs.get('exchange'))
            return kwargs.get('exchange')
        ac.exchange_declare.side_effect = cbparam

        ch._amq_chan = ac

        ch._declare_exchange_point('hello')
        self.assertTrue(ac.exchange_declare.called)
        self.assertIn('exchange',       ac.exchange_declare.call_args[1])
        self.assertIn('type',           ac.exchange_declare.call_args[1])
        self.assertIn('durable',        ac.exchange_declare.call_args[1])
        self.assertIn('auto_delete',    ac.exchange_declare.call_args[1])
        self.assertIn('hello',          ac.exchange_declare.call_args[1].itervalues())
Ejemplo n.º 27
0
    def test_on_channel_closed_with_error_callback(self):
        ch = BaseChannel()
        ch.on_channel_open(Mock())
        ch._transport.channel_number = 1

        closemock = Mock()
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(ch, 1, 'hi')

        closemock.assert_called_once_with(ch, 1, 'hi')
Ejemplo n.º 28
0
    def test_on_channel_close(self):
        # er this just does logging, make the calls anyway for coverage.
        ch = BaseChannel()
        ch._amq_chan = Mock()
        ch._amq_chan.channel_number = 1

        ch.on_channel_close(0, 'hi')
        ch.on_channel_close(1, 'onoes')
Ejemplo n.º 29
0
    def test_on_channel_close_with_error_in_error_callback(self, logmock):
        ch = BaseChannel()
        ch.on_channel_open(Mock())
        ch._transport.channel_number = 1

        closemock = Mock()
        closemock.side_effect = StandardError
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(ch, 1, 'hi')

        self.assertEquals(logmock.warn.call_count, 1)
Ejemplo n.º 30
0
    def test_close(self):

        # without close callback
        transport = Mock()
        ch = BaseChannel()
        ch.on_channel_open(transport)
        ch._fsm.current_state = ch.S_ACTIVE

        ch.close()
        transport.close.assert_called_once_with()
Ejemplo n.º 31
0
    def test_on_channel_closed_with_error_callback(self):
        ch = BaseChannel()
        ch._amq_chan = Mock()
        ch._amq_chan.channel_number = 1

        closemock = Mock()
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(1, 'hi')

        closemock.assert_called_once_with(ch, 1, 'hi')
Ejemplo n.º 32
0
    def test_on_channel_close_with_error_in_error_callback(self, logmock):
        ch = BaseChannel()
        ch._amq_chan = Mock()
        ch._amq_chan.channel_number = 1

        closemock = Mock()
        closemock.side_effect = StandardError
        ch.set_closed_error_callback(closemock)

        ch.on_channel_close(1, "hi")

        self.assertEquals(logmock.warn.call_count, 1)
Ejemplo n.º 33
0
    def test_close(self):
        # with close callback
        cbmock = Mock()
        ch = BaseChannel(close_callback=cbmock)
        ch.close()

        cbmock.assert_called_once_with(ch)

        # without close callback
        ac = Mock() #pchannel.Channel)  # cannot use this because callbacks is populated dynamically
        ch = BaseChannel()
        ch._amq_chan = ac
        
        ch.close()
        ac.close.assert_called_once_with()
        self.assertEquals(ac.callbacks.remove.call_count, 4)
Ejemplo n.º 34
0
    def test_declare_exchange_point(self):
        # make sure no xp param results in assertion
        ch = BaseChannel()
        self.assertRaises(AssertionError, ch._declare_exchange, None)

        transport = Mock()
        ch.on_channel_open(transport)

        ch._declare_exchange('hello')
        self.assertTrue(transport.declare_exchange_impl.called)
        self.assertIn('hello', transport.declare_exchange_impl.call_args[0])
        self.assertIn('exchange_type',
                      transport.declare_exchange_impl.call_args[1])
        self.assertIn('durable', transport.declare_exchange_impl.call_args[1])
        self.assertIn('auto_delete',
                      transport.declare_exchange_impl.call_args[1])
Ejemplo n.º 35
0
 def test__ensure_transport(self):
     ch = BaseChannel()
     with self.assertRaises(ChannelError):
         with ch._ensure_transport():
             pass
Ejemplo n.º 36
0
    def test_attach_underlying_channel(self):
        ch = BaseChannel()
        ch.attach_underlying_channel(sentinel.amq_chan)

        self.assertEquals(ch._amq_chan, sentinel.amq_chan)
Ejemplo n.º 37
0
    def test_init(self):
        ch = BaseChannel()
        self.assertIsNone(ch._close_callback)

        ch = BaseChannel(close_callback=sentinel.closecb)
        self.assertEquals(ch._close_callback, sentinel.closecb)
Ejemplo n.º 38
0
 def test__ensure_transport(self):
     ch = BaseChannel()
     with self.assertRaises(ChannelError):
         with ch._ensure_transport():
             pass
Ejemplo n.º 39
0
 def test__ensure_amq_chan(self):
     ch = BaseChannel()
     self.assertRaises(ChannelError, ch._ensure_amq_chan)
Ejemplo n.º 40
0
    def test_attach_underlying_channel(self):
        ch = BaseChannel()
        ch.attach_underlying_channel(sentinel.amq_chan)

        self.assertEquals(ch._amq_chan, sentinel.amq_chan)