summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/tests/message.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/python/tests/message.py b/python/tests/message.py
index cb26c7508a..5e35fa953f 100644
--- a/python/tests/message.py
+++ b/python/tests/message.py
@@ -628,14 +628,38 @@ class MessageTests(TestBase):
channel.message_consume(queue = "q", destination = "consumer")
channel.message_transfer(routing_key = "q", body="blah, blah")
- msg = self.client.queue("consumer").get(timeout = 5)
+ msg = self.client.queue("consumer").get(timeout = 1)
self.assertEquals(msg.body, "blah, blah")
channel.message_cancel(destination = "consumer")
msg.reject()
channel.message_consume(queue = "q", destination = "checker")
- msg = self.client.queue("checker").get(timeout = 5)
+ msg = self.client.queue("checker").get(timeout = 1)
self.assertEquals(msg.body, "blah, blah")
+
+ def test_checkpoint(self):
+ channel = self.channel
+ channel.queue_declare(queue = "q", exclusive=True)
+
+ channel.message_open(reference="my-ref")
+ channel.message_append(reference="my-ref", bytes="abcdefgh")
+ channel.message_append(reference="my-ref", bytes="ijklmnop")
+ channel.message_checkpoint(reference="my-ref", identifier="my-checkpoint")
+ channel.channel_close()
+
+ channel = self.client.channel(2)
+ channel.channel_open()
+ channel.message_consume(queue = "q", destination = "consumer")
+ offset = channel.channel_resume(reference="my-ref", identifier="my-checkpoint").value
+ self.assertEquals(offset, 16)
+ channel.message_append(reference="my-ref", bytes="qrstuvwx")
+ channel.synchronous = False
+ channel.message_transfer(routing_key="q-one", message_id="abcd", body=ReferenceId("my-ref"))
+ channel.synchronous = True
+ channel.message_close(reference="my-ref")
+
+ self.assertDataEquals(channel, self.client.queue("consumer").get(timeout = 1))
+ self.assertEmpty(self.client.queue("consumer"))
def assertDataEquals(self, channel, msg, expected):