コード例 #1
0
    def test_deliver_when_fanout_supported(self):
        self.e.channel = Mock()
        self.e.channel.supports_fanout = True
        message = Mock()

        self.e.deliver(message, 'exchange', None)
        self.e.channel._put_fanout.assert_called_with('exchange', message)
コード例 #2
0
ファイル: test_pyamqp.py プロジェクト: FluidInc/8b-kombu
 def test_eventmap(self):
     t = pyamqp.Transport(Mock())
     conn = Mock()
     self.assertDictEqual(
         t.eventmap(conn),
         {conn.sock: t.client.drain_nowait},
     )
コード例 #3
0
ファイル: test_pyamqp.py プロジェクト: romand/kombu
    def test_close_connection(self):
        connection = Mock()
        connection.client = Mock()
        self.transport.close_connection(connection)

        self.assertIsNone(connection.client)
        connection.close.assert_called_with()
コード例 #4
0
 def test_ack_log_error_when_error(self):
     ack = self.message.ack = Mock()
     ack.side_effect = KeyError('foo')
     logger = Mock()
     self.message.ack_log_error(logger, KeyError)
     ack.assert_called_with()
     self.assertTrue(logger.critical.called)
     self.assertIn("Couldn't ack", logger.critical.call_args[0][0])
コード例 #5
0
    def test_deliver(self):
        self.e.channel = Mock()
        self.e.channel._lookup.return_value = ('a', 'b')
        message = Mock()
        self.e.deliver(message, 'exchange', 'rkey')

        expected = [(('a', message), {}), (('b', message), {})]
        self.assertListEqual(self.e.channel._put.call_args_list, expected)
コード例 #6
0
    def test_poll_error(self):
        c = self.channel.client = Mock()
        c.parse_response = Mock()
        self.channel._poll_error('BRPOP')

        c.parse_response.assert_called_with('BRPOP')

        c.parse_response.side_effect = KeyError('foo')
        self.assertIsNone(self.channel._poll_error('BRPOP'))
コード例 #7
0
    def test_delete(self):
        x = self.channel
        self.channel._in_poll = False
        delete = x.client.delete = Mock()
        srem = x.client.srem = Mock()

        x._delete('queue', 'exchange', 'routing_key', None)
        delete.assert_has_call('queue')
        srem.assert_has_call(x.keyprefix_queue % ('exchange', ),
                             x.sep.join(['routing_key', '', 'queue']))
コード例 #8
0
    def test_avail_client_when_in_poll(self):
        self.channel._in_poll = True
        self.channel._pool = Mock()
        cc = self.channel._create_client = Mock()
        client = cc.return_value = Mock()

        with self.channel.conn_or_acquire():
            pass
        self.channel.pool.release.assert_called_with(client.connection)
        cc.assert_called_with()
コード例 #9
0
ファイル: test_base.py プロジェクト: mozilla/firefox-flicks
    def test_drain_events_has_get_many(self):
        c = self.channel
        c._get_many = Mock()
        c._poll = Mock()
        c._consumers = [1]
        c._qos = Mock()
        c._qos.can_consume.return_value = True

        c.drain_events(timeout=10.0)
        c._get_many.assert_called_with(c._active_queues, timeout=10.0)
コード例 #10
0
ファイル: test_redis.py プロジェクト: imtapps/kombu
    def test_delete(self):
        x = self.channel
        self.channel._in_poll = False
        delete = x.client.delete = Mock()
        srem = x.client.srem = Mock()

        x._delete("queue", "exchange", "routing_key", None)
        delete.assert_has_call("queue")
        srem.assert_has_call(x.keyprefix_queue % ("exchange", ),
                             x.sep.join(["routing_key", "", "queue"]))
コード例 #11
0
ファイル: test_base.py プロジェクト: mozilla/firefox-flicks
    def test_restore_unacked_raises_BaseException(self):
        q = self.channel.qos
        q._flush = Mock()
        q._delivered = {1: 1}

        q.channel._restore = Mock()
        q.channel._restore.side_effect = SystemExit

        errors = q.restore_unacked()
        self.assertIsInstance(errors[0][0], SystemExit)
        self.assertEqual(errors[0][1], 1)
        self.assertFalse(q._delivered)
コード例 #12
0
    def test_close_resets_state(self):
        p = self.Poller()
        p.poller = Mock()
        p._channels = Mock()
        p._fd_to_chan = Mock()
        p._chan_to_sock = Mock()

        p._chan_to_sock.itervalues.return_value = []
        p._chan_to_sock.values.return_value = []  # py3k

        p.close()
        p._channels.clear.assert_called_with()
        p._fd_to_chan.clear.assert_called_with()
        p._chan_to_sock.clear.assert_called_with()
        self.assertIsNone(p.poller)
コード例 #13
0
ファイル: test_base.py プロジェクト: mozilla/firefox-flicks
    def test_restore_unacked_once_when_unrestored(self, say,
                                                  emergency_dump_state):
        q = self.channel.qos
        q._flush = Mock()

        class State(dict):
            restored = False

        q._delivered = State({1: 1})
        ru = q.restore_unacked = Mock()
        exc = None
        try:
            raise KeyError()
        except KeyError, exc_:
            exc = exc_
コード例 #14
0
ファイル: test_base.py プロジェクト: mozilla/firefox-flicks
 def test_create_no_body(self):
     virtual.Message(Mock(), {
         'body': None,
         'properties': {
             'delivery_tag': 1
         }
     })
コード例 #15
0
ファイル: test_redis.py プロジェクト: imtapps/kombu
    def test_put_fanout(self):
        self.channel._in_poll = False
        c = self.channel.client = Mock()

        body = {"hello": "world"}
        self.channel._put_fanout("exchange", body)
        c.publish.assert_called_with("exchange", dumps(body))
コード例 #16
0
    def test_put_fanout(self):
        self.channel._in_poll = False
        c = self.channel.client = Mock()

        body = {'hello': 'world'}
        self.channel._put_fanout('exchange', body)
        c.publish.assert_called_with('exchange', dumps(body))
コード例 #17
0
ファイル: test_pyamqp.py プロジェクト: romand/kombu
    def test_verify_connection(self):
        connection = Mock()
        connection.channels = None
        self.assertFalse(self.transport.verify_connection(connection))

        connection.channels = {1: 1, 2: 2}
        self.assertTrue(self.transport.verify_connection(connection))
コード例 #18
0
    def test_ack_not_no_ack(self):
        self.channel.no_ack_consumers = set()
        self.message.delivery_info['consumer_tag'] = 'abc'
        ack = self.channel.basic_ack = Mock()

        self.message.ack()
        ack.assert_called_with(self.message.delivery_tag)
コード例 #19
0
    def test_ack_missing_consumer_tag(self):
        self.channel.no_ack_consumers = set(['abc'])
        self.message.delivery_info = {}
        ack = self.channel.basic_ack = Mock()

        self.message.ack()
        ack.assert_called_with(self.message.delivery_tag)
コード例 #20
0
ファイル: test_redis.py プロジェクト: osamu0329nakamura/kombu
 def test_receive(self):
     s = self.channel.subclient = Mock()
     self.channel._fanout_to_queue['a'] = 'b'
     s.parse_response.return_value = ['message', 'a',
                                      dumps({'hello': 'world'})]
     payload, queue = self.channel._receive()
     self.assertDictEqual(payload, {'hello': 'world'})
     self.assertEqual(queue, 'b')
コード例 #21
0
ファイル: test_redis.py プロジェクト: imtapps/kombu
 def test_receive(self):
     s = self.channel.subclient = Mock()
     self.channel._fanout_to_queue["a"] = "b"
     s.parse_response.return_value = ["message", "a",
                                      dumps({"hello": "world"})]
     payload, queue = self.channel._receive()
     self.assertDictEqual(payload, {"hello": "world"})
     self.assertEqual(queue, "b")
コード例 #22
0
    def test_ack_respects_no_ack_consumers(self):
        self.channel.no_ack_consumers = set(['abc'])
        self.message.delivery_info['consumer_tag'] = 'abc'
        ack = self.channel.basic_ack = Mock()

        self.message.ack()
        self.assertNotEqual(self.message._state, 'ACK')
        self.assertFalse(ack.called)
コード例 #23
0
    def test_register_LISTEN(self):
        p = self.Poller()
        channel = Mock()
        channel.subclient.connection._sock = None
        channel._in_listen = False
        p._register = Mock()

        p._register_LISTEN(channel)
        p._register.assert_called_with(channel, channel.subclient, 'LISTEN')
        self.assertEqual(p._register.call_count, 1)
        self.assertEqual(channel._subscribe.call_count, 1)

        channel._in_listen = True
        channel.subclient.connection._sock = Mock()
        p._register_LISTEN(channel)
        self.assertEqual(p._register.call_count, 1)
        self.assertEqual(channel._subscribe.call_count, 1)
コード例 #24
0
    def create_get(self, events=None, queues=None, fanouts=None):
        _pr = [] if events is None else events
        _aq = [] if queues is None else queues
        _af = [] if fanouts is None else fanouts
        p = self.Poller()
        p.poller = Mock()
        p.poller.poll.return_value = _pr

        p._register_BRPOP = Mock()
        p._register_LISTEN = Mock()

        channel = Mock()
        p._channels = [channel]
        channel.active_queues = _aq
        channel.active_fanout_queues = _af

        return p, channel
コード例 #25
0
    def test_register_BRPOP(self):
        p = self.Poller()
        channel = Mock()
        channel.client.connection._sock = None
        p._register = Mock()

        channel._in_poll = False
        p._register_BRPOP(channel)
        self.assertEqual(channel._brpop_start.call_count, 1)
        self.assertEqual(p._register.call_count, 1)

        channel.client.connection._sock = Mock()
        p._chan_to_sock[(channel, channel.client, 'BRPOP')] = True
        channel._in_poll = True
        p._register_BRPOP(channel)
        self.assertEqual(channel._brpop_start.call_count, 1)
        self.assertEqual(p._register.call_count, 1)
コード例 #26
0
    def test_receive_raises(self):
        self.channel._in_listen = True
        s = self.channel.subclient = Mock()
        s.parse_response.side_effect = KeyError('foo')

        with self.assertRaises(redis.Empty):
            self.channel._receive()
        self.assertFalse(self.channel._in_listen)
コード例 #27
0
    def test_brpop_read_raises(self):
        c = self.channel.client = Mock()
        c.parse_response.side_effect = KeyError('foo')

        with self.assertRaises(redis.Empty):
            self.channel._brpop_read()

        c.connection.disconnect.assert_called_with()
コード例 #28
0
ファイル: test_base.py プロジェクト: imtapps/kombu
    def test_ack_respects_no_ack_consumers(self):
        self.channel.no_ack_consumers = set(["abc"])
        self.message.delivery_info["consumer_tag"] = "abc"
        ack = self.channel.basic_ack = Mock()

        self.message.ack()
        self.assertNotEqual(self.message._state, "ACK")
        self.assertFalse(ack.called)
コード例 #29
0
ファイル: test_base.py プロジェクト: mozilla/firefox-flicks
    def test_basic_cancel_not_in_active_queues(self):
        c = self.channel
        c._consumers.add('x')
        c._tag_to_queue['x'] = 'foo'
        c._active_queues = Mock()
        c._active_queues.remove.side_effect = ValueError()

        c.basic_cancel('x')
        c._active_queues.remove.assert_called_with('foo')
コード例 #30
0
    def test_has_queue(self):
        self.channel._in_poll = False
        exists = self.channel.client.exists = Mock()
        exists.return_value = True
        self.assertTrue(self.channel._has_queue('foo'))
        exists.assert_has_call('foo')

        exists.return_value = False
        self.assertFalse(self.channel._has_queue('foo'))