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()
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)
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()
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)