Exemplo n.º 1
0
class TestMessageQueue(unittest.TestCase):

    def setUp(self):
        self.client = Redis(decode_responses=True)
        self.client.flushdb()

        self.mq = MessageQueue(self.client, "mq")

        self.msg = "hello world"

        self.blocktime = 1

    def test_add(self):
        self.mq.add_message(self.msg)
        self.assertEqual(
            self.mq.len(),
            1
        )

    def test_get_message_non_block(self):
        self.mq.add_message(self.msg)
        self.assertEqual(
            self.mq.get_message(),
            self.msg
        )

    def test_get_message_blocking(self):
        before = time()
        print("blocking, wait for {0} second(s)".format(self.blocktime))
        self.assertIsNone(
            self.mq.get_message(self.blocktime)
        )
        self.assertTrue(
            time() - before >= self.blocktime
        )

    def test_len(self):
        self.assertEqual(
            self.mq.len(),
            0
        )

        self.mq.add_message(self.msg)

        self.assertEqual(
            self.mq.len(),
            1
        )
class TestMessageQueue:
    def setup_class(self):
        self.client = Redis()

        self.mq = MessageQueue(self.client, "email_queue")

        self.mq.add_message("*****@*****.**")
        self.mq.add_message("*****@*****.**")
        self.mq.add_message("*****@*****.**")

    def test_len(self):
        assert self.mq.len() == 3

    def test_consume(self):
        assert self.mq.get_message() == "*****@*****.**"
        assert self.mq.get_message() == "*****@*****.**"
        assert self.mq.get_message() == "*****@*****.**"
Exemplo n.º 3
0
class TestMessageQueue(unittest.TestCase):

    def setUp(self):
        self.client = Redis(decode_responses=True)

        self.stream_key = "test_message_queue"
        self.q = MessageQueue(self.client, self.stream_key) 

        self.message = {"name":"peter", "age":"36", "location":"UK"}
        
        self.tearDown()

    def tearDown(self):
        self.client.delete(self.stream_key)

    def make_a_none_empty_queue(self, queue, size):
        for i in range(size):
            key = "key{0}".format(i)
            value = "value{0}".format(i)
            self.q.add_message({key:value,})

    def test_add_message(self):
        message_id = self.q.add_message(self.message)
        self.assertIsNotNone(message_id)

    def test_add_message_return_utf8_id(self):
        message_id = self.q.add_message(self.message)
        self.assertIsInstance(message_id, str)

    def test_get_message_return_none_when_msg_not_exists(self):
        self.assertIsNone(self.q.get_message("10086-0"))

    def test_get_message_return_msg_when_its_exists(self):
        message_id = self.q.add_message(self.message)
        self.assertEqual(
            self.message, 
            self.q.get_message(message_id)
        )

    def test_remove_message(self):
        message_id = self.q.add_message(self.message)
        
        self.q.remove_message(message_id)

        self.assertIsNone(self.q.get_message(message_id))

    def test_len_return_zero_when_queue_empty(self):
        self.assertEqual(self.q.len(), 0)

    def test_len_retrun_non_zero_when_queue_not_empty(self):
        id = self.q.add_message(self.message)
        self.assertEqual(self.q.len(), 1)
        self.q.remove_message(id)
        self.assertEqual(self.q.len(), 0)

    def test_get_by_range_return_empty_list_when_queue_empty(self):
        self.assertEqual(self.q.get_by_range("-", "+"), list())

    def test_get_by_range_return_none_empty_list_when_queue_not_empty(self):
        self.make_a_none_empty_queue(self.q, 10)
        result = self.q.get_by_range("-", "+")
        self.assertEqual(len(result), 10)
        self.assertEqual(type(result), list)
        for msg in result:
            self.assertEqual(type(msg), dict)

    def test_get_by_range_return_right_size(self):
        self.make_a_none_empty_queue(self.q, 10)
        result = self.q.get_by_range("-", "+", 5)
        self.assertEqual(len(result), 5)

    def test_get_by_range_return_empty_list_when_stream_empty(self):
        self.assertEqual(
            self.q.get_by_range("-", "+"),
            list()
        )

    def test_iterate_return_right_size(self):
        self.make_a_none_empty_queue(self.q, 10)
        self.assertEqual(
            len(self.q.iterate(0, 5)),
            5
        )
        self.assertEqual(
            len(self.q.iterate(0, 10)),
            10
        )

    def test_iterate_return_right_message(self):
        self.make_a_none_empty_queue(self.q, 10)
        full_message_list = self.q.get_by_range("-", "+", 10)
        self.assertEqual(
            self.q.iterate(0, 5),
            full_message_list[0:5]
        )
        self.assertEqual(
            self.q.iterate(0, 10),
            full_message_list
        )

    def test_iterate_return_empty_list_when_stream_empty(self):
        self.assertEqual(
            self.q.iterate(0),
            list()
        )