diff options
author | Gordon Sim <gsim@apache.org> | 2006-10-11 08:24:42 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2006-10-11 08:24:42 +0000 |
commit | 4fcd0a1f4d52dffe2c524af06882470dd4a48213 (patch) | |
tree | 7639836ccd43e6cf41372856735074fbb9e21443 /python/tests | |
parent | 4b3a1e69274b04888866e3a239854dd061c57f98 (diff) | |
download | qpid-python-4fcd0a1f4d52dffe2c524af06882470dd4a48213.tar.gz |
Implementation of basic_get.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@462729 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/tests')
-rw-r--r-- | python/tests/basic.py | 61 | ||||
-rw-r--r-- | python/tests/broker.py | 2 |
2 files changed, 61 insertions, 2 deletions
diff --git a/python/tests/basic.py b/python/tests/basic.py index 50004614eb..afdf1a4003 100644 --- a/python/tests/basic.py +++ b/python/tests/basic.py @@ -329,3 +329,64 @@ class BasicTests(TestBase): channel.basic_publish(routing_key="test-prefetch-size", content=Content(large)) msg = queue.get(timeout=1) self.assertEqual(large, msg.content.body) + + def test_get(self): + """ + Test basic_get method + """ + channel = self.channel + channel.queue_declare(queue="test-get", exclusive=True) + + #publish some messages (no_ack=True) + for i in range(1, 11): + channel.basic_publish(routing_key="test-get", content=Content("Message %d" % i)) + + #use basic_get to read back the messages, and check that we get an empty at the end + for i in range(1, 11): + reply = channel.basic_get(no_ack=True) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-ok") + self.assertEqual("Message %d" % i, reply.content.body) + + reply = channel.basic_get(no_ack=True) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-empty") + + #repeat for no_ack=False + for i in range(11, 21): + channel.basic_publish(routing_key="test-get", content=Content("Message %d" % i)) + + for i in range(11, 21): + reply = channel.basic_get(no_ack=False) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-ok") + self.assertEqual("Message %d" % i, reply.content.body) + if(i == 13): + channel.basic_ack(delivery_tag=reply.delivery_tag, multiple=True) + if(i in [15, 17, 19]): + channel.basic_ack(delivery_tag=reply.delivery_tag) + + reply = channel.basic_get(no_ack=True) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-empty") + + #recover(requeue=True) + channel.basic_recover(requeue=True) + + #get the unacked messages again (14, 16, 18, 20) + for i in [14, 16, 18, 20]: + reply = channel.basic_get(no_ack=False) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-ok") + self.assertEqual("Message %d" % i, reply.content.body) + channel.basic_ack(delivery_tag=reply.delivery_tag) + + reply = channel.basic_get(no_ack=True) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-empty") + + channel.basic_recover(requeue=True) + + reply = channel.basic_get(no_ack=True) + self.assertEqual(reply.method.klass.name, "basic") + self.assertEqual(reply.method.name, "get-empty") diff --git a/python/tests/broker.py b/python/tests/broker.py index f7cb3bcef3..173391c91b 100644 --- a/python/tests/broker.py +++ b/python/tests/broker.py @@ -45,8 +45,6 @@ class BrokerTests(TestBase): msg = self.client.queue(ctag).get(timeout = 5) ch.basic_ack(delivery_tag = msg.delivery_tag) self.assert_(msg.content.body == body) - - # TODO: Ensure we get a failure if an ack consumer doesn't ack. def test_basic_delivery_immediate(self): """ |