summaryrefslogtreecommitdiff
path: root/python/tests/basic.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests/basic.py')
-rw-r--r--python/tests/basic.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/python/tests/basic.py b/python/tests/basic.py
index c3a2414eac..75d49ec805 100644
--- a/python/tests/basic.py
+++ b/python/tests/basic.py
@@ -113,3 +113,27 @@ class BasicTests(TestBase):
except Closed, e:
self.assertConnectionException(530, e.args[0])
+ def test_basic_cancel(self):
+ """
+ Test compliance of the basic.cancel method
+ """
+ channel = self.channel
+ #setup, declare a queue:
+ channel.queue_declare(queue="test-queue-4", exclusive=True)
+ channel.basic_consume(consumer_tag="my-consumer", queue="test-queue-4")
+ channel.basic_publish(routing_key="test-queue-4", content=Content("One"))
+
+ #cancel should stop messages being delivered
+ channel.basic_cancel(consumer_tag="my-consumer")
+ channel.basic_publish(routing_key="test-queue-4", content=Content("Two"))
+ myqueue = self.client.queue("my-consumer")
+ msg = myqueue.get(timeout=1)
+ self.assertEqual("One", msg.content.body)
+ try:
+ msg = myqueue.get(timeout=1)
+ self.fail("Got message after cancellation: " + msg)
+ except Empty: None
+
+ #cancellation of non-existant consumers should be handled without error
+ channel.basic_cancel(consumer_tag="my-consumer")
+ channel.basic_cancel(consumer_tag="this-never-existed")