示例#1
0
    def test_acquire_timeout(self):
        queue = Queue(maxsize=1)
        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)

        queue.put("1.txt", {"content": "file content"}, timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)

        queue_message = queue.get(timeout=1, acquire_timeout=0.1)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)
        self.assertEqual(queue_message.content, {"content": "file content"})
        self.assertEqual(queue_message.id, "1.txt")

        time.sleep(0.5)

        queue_message = queue.get(timeout=1, acquire_timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)
        self.assertEqual(queue_message.content, {"content": "file content"})
        self.assertEqual(queue_message.id, "1.txt")

        with self.assertRaises(Empty):
            queue_message = queue.get(timeout=1, acquire_timeout=10)
示例#2
0
    def test_delete(self):
        queue = Queue(maxsize=1)
        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)

        queue.put("1.txt", {"content": "file content"}, timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)

        queue_message = queue.get(timeout=1, acquire_timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)
        self.assertEqual(queue_message.content, {"content": "file content"})
        self.assertEqual(queue_message.id, "1.txt")

        queue.delete(queue_message.id)
        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)

        queue.put("1.txt", {"content": "file content"}, timeout=10)
        queue_message = queue.get(timeout=1, acquire_timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)

        with self.assertRaises(DeleteAttemptToUnknownMessage):
            queue.delete("random_file.txt")
示例#3
0
    def test_put(self):
        queue = Queue(maxsize=1)

        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)
        queue.put("1.txt", {"content": "file content"}, timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)

        with self.assertRaises(Full):
            queue.put("2.txt", {"content": "file content"}, timeout=1)

        queue = Queue(maxsize=1)

        with self.assertRaises(ValueError):
            queue.put("1.txt", {"content": "file content"}, timeout=-4)

        queue = Queue(maxsize=2)
        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)
        queue.put("1.txt", {"content": "file content"}, timeout=1)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), False)

        with self.assertRaises(RepeatedMessage):
            queue.put("1.txt", {"content": "file content"}, timeout=1)

        queue = Queue(maxsize=0)
        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)
        queue.put("1.txt", {"content": "file content"}, timeout=1)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), False)
示例#4
0
    def test_timeout_get_by_acquire_timeout(self):

        queue = Queue(maxsize=1)
        t1 = MessageFeeder(queue, "1.txt", {"content": "file content"})
        t1.start()
        t1.join()
        self.assertTrue(t1.result)
        self.assertEqual(queue.qsize(), 1)

        t2 = MessageConsumer(queue)
        t2.start()
        t2.delete_on_finish = False
        t2.done = True

        t3 = MessageConsumer(queue)
        t3.start()
        t3.done = True

        t2.join()
        t3.join()

        self.assertTrue(t2.result)
        self.assertTrue(t3.result)
        self.assertEqual(queue.qsize(), 0)
示例#5
0
    def test_timeout_get(self):

        queue = Queue(maxsize=1)
        t1 = MessageConsumer(queue)
        t1.start()

        time.sleep(1)
        t2 = MessageFeeder(queue, "1.txt", {"content": "file content"})
        t2.start()
        t2.join()
        self.assertTrue(t2.result)

        t1.done = True
        t1.join()
        self.assertTrue(t1.result)

        self.assertEqual(queue.qsize(), 0)
示例#6
0
    def test_get(self):
        queue = Queue(maxsize=1)
        self.assertEqual(queue.qsize(), 0)
        self.assertEqual(queue.full(), False)

        with self.assertRaises(Empty):
            queue.get(timeout=1)

        with self.assertRaises(ValueError):
            queue.get(timeout=-4)

        queue.put("1.txt", {"content": "file content"}, timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)
        queue_message = queue.get(timeout=1)
        self.assertEqual(queue_message.content, {"content": "file content"})
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), True)

        queue = Queue(maxsize=2)

        queue.put("1.txt", {"content": "file content"}, timeout=10)
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), False)

        queue_message = queue.get()
        self.assertEqual(queue_message.id, "1.txt")
        self.assertEqual(queue_message.content, {"content": "file content"})
        self.assertEqual(queue.qsize(), 1)
        self.assertEqual(queue.full(), False)

        queue.put("2.txt", {"content": "file content"}, timeout=10)
        self.assertEqual(queue.qsize(), 2)
        self.assertEqual(queue.full(), True)

        queue_message = queue.get()
        self.assertEqual(queue_message.id, "2.txt")
        self.assertEqual(queue_message.content, {"content": "file content"})
        self.assertEqual(queue.qsize(), 2)
        self.assertEqual(queue.full(), True)