Пример #1
0
    def test_qos_restore_visible(self):
        client = self.channel.client = Mock(name='client')
        client.zrevrangebyscore.return_value = [
            (1, 10),
            (2, 20),
            (3, 30),
        ]
        qos = redis.QoS(self.channel)
        restore = qos.restore_by_tag = Mock(name='restore_by_tag')
        qos._vrestore_count = 1
        qos.restore_visible()
        self.assertFalse(client.zrevrangebyscore.called)
        self.assertEqual(qos._vrestore_count, 2)

        qos._vrestore_count = 0
        qos.restore_visible()
        restore.assert_has_calls([
            call(1, client),
            call(2, client),
            call(3, client),
        ])
        self.assertEqual(qos._vrestore_count, 1)

        qos._vrestore_count = 0
        restore.reset_mock()
        client.zrevrangebyscore.return_value = []
        qos.restore_visible()
        self.assertFalse(restore.called)
        self.assertEqual(qos._vrestore_count, 1)

        qos._vrestore_count = 0
        client.setnx.side_effect = redis.MutexHeld()
        qos.restore_visible()
Пример #2
0
 def test_restore_visible_with_gevent(self):
     with patch('kombu.transport.redis.time') as time:
         with patch('kombu.transport.redis._detect_environment') as env:
             timeout = 3600
             time.return_value = timeout
             env.return_value = 'gevent'
             chan1 = Mock(name='chan1')
             redis_ctx_mock = Mock()
             redis_client_mock = Mock(name='redis_client_mock')
             redis_ctx_mock.__exit__ = Mock()
             redis_ctx_mock.__enter__ = Mock(return_value=redis_client_mock)
             chan1.conn_or_acquire.return_value = redis_ctx_mock
             qos = redis.QoS(chan1)
             qos.visibility_timeout = timeout
             qos.restore_visible()
             redis_client_mock.zrevrangebyscore\
                 .assert_called_with(chan1.unacked_index_key, timeout, 0,
                                     start=0, num=10, withscores=True)
Пример #3
0
    def test_qos_restore_visible(self):
        client = self.channel._create_client = Mock(name='client')
        client = client()

        def pipe(*args, **kwargs):
            return Pipeline(client)

        client.pipeline = pipe
        client.zrevrangebyscore.return_value = [
            (1, 10),
            (2, 20),
            (3, 30),
        ]
        qos = redis.QoS(self.channel)
        restore = qos.restore_by_tag = Mock(name='restore_by_tag')
        qos._vrestore_count = 1
        qos.restore_visible()
        client.zrevrangebyscore.assert_not_called()
        assert qos._vrestore_count == 2

        qos._vrestore_count = 0
        qos.restore_visible()
        restore.assert_has_calls([
            call(1, client),
            call(2, client),
            call(3, client),
        ])
        assert qos._vrestore_count == 1

        qos._vrestore_count = 0
        restore.reset_mock()
        client.zrevrangebyscore.return_value = []
        qos.restore_visible()
        restore.assert_not_called()
        assert qos._vrestore_count == 1

        qos._vrestore_count = 0
        client.setnx.side_effect = redis.MutexHeld()
        qos.restore_visible()
Пример #4
0
 def test_qos_reject(self):
     p, channel = self.create_get()
     qos = redis.QoS(channel)
     qos.ack = Mock(name='Qos.ack')
     qos.reject(1234)
     qos.ack.assert_called_with(1234)