Exemplo n.º 1
0
 def test_enqueue(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.pipeline.return_value.execute.return_value =\
         10, 1, 1, 10, 11
     l = queue.enqueue(qname, self.uuid, self.data)
     self.assertEqual(l, 10)
Exemplo n.º 2
0
 def test_enqueue(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.pipeline.return_value.execute.return_value =\
         10, 1, 1, 10, 11
     l = queue.enqueue(qname, self.uuid, self.data)
     self.assertEqual(l, 10)
Exemplo n.º 3
0
 def test_enqueue_timeout_error(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.pipeline.return_value.execute.side_effect = TimeoutError
     l = -1
     with self.assertRaises(TimeoutError) as ar:
         l = queue.enqueue(qname, self.uuid, self.data)
     self.assertEqual(l, -1)
     self.assertIsInstance(ar.exception, TimeoutError)
Exemplo n.º 4
0
 def test_dequeue(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = self.uuid
     mock_redis.pipeline.return_value.execute.return_value = \
         self.data, pickle.dumps(Job(self.uuid))
     k, data = queue.dequeue(qname, self.uuid)
     self.assertEqual(k, self.uuid)
     self.assertEqual(data, self.data)
Exemplo n.º 5
0
 def test_dequeue(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = self.uuid
     mock_redis.pipeline.return_value.execute.return_value = \
         self.data, pickle.dumps(Job(self.uuid))
     k, data = queue.dequeue(qname, self.uuid)
     self.assertEqual(k, self.uuid)
     self.assertEqual(data, self.data)
Exemplo n.º 6
0
 def test_enqueue_queue_full(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.get.return_value = 1024
     l = -1
     with self.assertRaises(ERedisQueueFull) as ar:
         l = queue.enqueue(qname, self.uuid, self.data)
     self.assertEqual(l, -1)
     self.assertIsInstance(ar.exception, ERedisQueueFull)
Exemplo n.º 7
0
 def test_enqueue_timeout_error(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.pipeline.return_value.execute.side_effect = TimeoutError
     l = -1
     with self.assertRaises(TimeoutError) as ar:
         l = queue.enqueue(qname, self.uuid, self.data)
     self.assertEqual(l, -1)
     self.assertIsInstance(ar.exception, TimeoutError)
Exemplo n.º 8
0
 def test_enqueue_queue_full(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.get.return_value = 1024
     l = -1
     with self.assertRaises(ERedisQueueFull) as ar:
         l = queue.enqueue(qname, self.uuid, self.data)
     self.assertEqual(l, -1)
     self.assertIsInstance(ar.exception, ERedisQueueFull)
Exemplo n.º 9
0
 def test_dequeue_key_not_found(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = "anan"
     k = data = None
     mock_redis.pipeline.return_value.execute.return_value = \
         None, None
     with self.assertRaises(ERedisKeyNotFound) as ar:
        k, data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(k)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ERedisKeyNotFound)
Exemplo n.º 10
0
 def test_release(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     job = Job(self.uuid)
     job.change_state(JOB_DEQUEUED)
     mock_redis.hget.return_value = pickle.dumps(job)
     mock_redis.pipeline.return_value.execute.return_value = \
         10, 1, 1, 1, 10
     q_len = total_len = -1
     q_len, total_len  = queue.release(qname, self.uuid)
     self.assertEqual(1, q_len)
     self.assertEqual(10, total_len)
Exemplo n.º 11
0
 def test_release(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     job = Job(self.uuid)
     job.change_state(JOB_DEQUEUED)
     mock_redis.hget.return_value = pickle.dumps(job)
     mock_redis.pipeline.return_value.execute.return_value = \
         10, 1, 1, 1, 10
     q_len = total_len = -1
     q_len, total_len = queue.release(qname, self.uuid)
     self.assertEqual(1, q_len)
     self.assertEqual(10, total_len)
Exemplo n.º 12
0
 def test_dequeue_data_missing(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = "anan"
     k = data = None
     mock_redis.pipeline.return_value.execute.return_value = \
         None, pickle.dumps(Job(self.uuid))
     with self.assertRaises(ERedisDataMissing) as ar:
         k, data = queue.dequeue(qname, "anan")
     self.assertIsNone(k)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ERedisDataMissing)
Exemplo n.º 13
0
 def test_dequeue_data_missing(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = "anan"
     k = data = None
     mock_redis.pipeline.return_value.execute.return_value = \
         None, pickle.dumps(Job(self.uuid))
     with self.assertRaises(ERedisDataMissing) as ar:
         k, data = queue.dequeue(qname, "anan")
     self.assertIsNone(k)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ERedisDataMissing)
Exemplo n.º 14
0
 def test_dequeue_empty_queue(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = None
     k = data = None
     with self.assertRaises(ERedisEmptyQueue) as ar:
         k, data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(k)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ERedisEmptyQueue)
     self.assertEqual("Redis Warn: {} queue is empty!".format(qname),
                      str(ar.exception))
Exemplo n.º 15
0
 def test_dequeue_key_not_found(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = "anan"
     k = data = None
     mock_redis.pipeline.return_value.execute.return_value = \
         None, None
     with self.assertRaises(ERedisKeyNotFound) as ar:
         k, data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(k)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ERedisKeyNotFound)
Exemplo n.º 16
0
 def test_dequeue_empty_queue(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.return_value = None
     k = data = None
     with self.assertRaises(ERedisEmptyQueue) as ar:
         k, data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(k)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ERedisEmptyQueue)
     self.assertEqual("Redis Warn: {} queue is empty!".format(qname),
                      str(ar.exception))
Exemplo n.º 17
0
 def test_release_undequeued_job(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     job = Job(self.uuid)
     mock_redis.hget.return_value = pickle.dumps(job)
     mock_redis.pipeline.return_value.execute.return_value = \
         10, 1, 1, 1, 10
     q_len = total_len = -1
     with self.assertRaises(ERedisReleaseError) as ar:
         q_len, total_len = queue.release(qname, self.uuid)
     self.assertEqual(-1, q_len)
     self.assertEqual(-1, total_len)
     self.assertIsInstance(ar.exception, ERedisReleaseError)
Exemplo n.º 18
0
 def test_release_undequeued_job(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     job = Job(self.uuid)
     mock_redis.hget.return_value = pickle.dumps(job)
     mock_redis.pipeline.return_value.execute.return_value = \
         10, 1, 1, 1, 10
     q_len = total_len = -1
     with self.assertRaises(ERedisReleaseError) as ar:
         q_len, total_len = queue.release(qname, self.uuid)
     self.assertEqual(-1, q_len)
     self.assertEqual(-1, total_len)
     self.assertIsInstance(ar.exception, ERedisReleaseError)
Exemplo n.º 19
0
 def test_dequeue_connection_error(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.side_effect = ConnectionError
     data = None
     with self.assertRaises(ConnectionError) as ar:
         data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ConnectionError)
     mock_redis.reset_mock()
     mock_redis.rpoplpush.return_value = "anan"
     mock_redis.pipeline.return_value.execute.side_effect = ConnectionError
     with self.assertRaises(ConnectionError) as ar:
         data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ConnectionError)
Exemplo n.º 20
0
 def test_dequeue_connection_error(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     qname = md5(self.user_id + "_queue").hexdigest()
     mock_redis.rpoplpush.side_effect = ConnectionError
     data = None
     with self.assertRaises(ConnectionError) as ar:
         data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ConnectionError)
     mock_redis.reset_mock()
     mock_redis.rpoplpush.return_value = "anan"
     mock_redis.pipeline.return_value.execute.side_effect= ConnectionError
     with self.assertRaises(ConnectionError) as ar:
         data = queue.dequeue(qname, self.uuid)
     self.assertIsNone(data)
     self.assertIsInstance(ar.exception, ConnectionError)
Exemplo n.º 21
0
 def test_queue_length_timeout_error(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     mock_redis.get.side_effect = TimeoutError
     l = -1
     with self.assertRaises(TimeoutError) as ar:
         l = len(queue)
     self.assertEqual(l, -1)
     self.assertIsInstance(ar.exception, TimeoutError)
Exemplo n.º 22
0
    def test_release_timeout_error(self, mock_redis):
        queue = ReliableQueue(mock_redis)
        qname = md5(self.user_id + "_queue").hexdigest()
        mock_redis.hget.side_effect = TimeoutError
        q_len = total_len = -1
        with self.assertRaises(TimeoutError) as ar:
            q_len, total_len = queue.release(qname, self.uuid)
        self.assertEqual(-1, q_len)
        self.assertEqual(-1, total_len)
        self.assertIsInstance(ar.exception, TimeoutError)

        mock_redis.reset_mock()
        mock_redis.hget.return_value = "anan"
        mock_redis.pipeline.return_value.execute.side_effect = TimeoutError
        with self.assertRaises(TimeoutError) as ar:
            q_len, total_len = queue.release(qname, self.uuid)
        self.assertEqual(-1, q_len)
        self.assertEqual(-1, total_len)
        self.assertIsInstance(ar.exception, TimeoutError)
Exemplo n.º 23
0
    def test_release_timeout_error(self, mock_redis):
        queue = ReliableQueue(mock_redis)
        qname = md5(self.user_id + "_queue").hexdigest()
        mock_redis.hget.side_effect = TimeoutError
        q_len = total_len = -1
        with self.assertRaises(TimeoutError) as ar:
            q_len, total_len= queue.release(qname, self.uuid)
        self.assertEqual(-1, q_len)
        self.assertEqual(-1, total_len)
        self.assertIsInstance(ar.exception, TimeoutError)

        mock_redis.reset_mock()
        mock_redis.hget.return_value= "anan"
        mock_redis.pipeline.return_value.execute.side_effect= TimeoutError
        with self.assertRaises(TimeoutError) as ar:
            q_len, total_len = queue.release(qname, self.uuid)
        self.assertEqual(-1, q_len)
        self.assertEqual(-1, total_len)
        self.assertIsInstance(ar.exception, TimeoutError)
Exemplo n.º 24
0
 def test_queue_length(self, mock_redis):
     queue = ReliableQueue(mock_redis)
     mock_redis.get.return_value = None
     self.assertEqual(0, len(queue))
     mock_redis.get.return_value = 1024
     self.assertEqual(1024, len(queue))
Exemplo n.º 25
0
 def test_queue_length_timeout_error(self):
     queue = ReliableQueue(self.mock_redis_conn)
     self.mock_redis_conn.get.side_effect = TimeoutError
     with self.assertRaises(TimeoutError) as ar:
         l = len(queue)
     self.assertIsInstance(ar.exception, TimeoutError)