Author: aconway Date: Mon Mar 19 12:19:53 2007 New Revision: 520051 URL: http://svn.apache.org/viewvc?view=rev&rev=520051 Log:
* python/testlib.py: -s (spec) option now also takes abbreviations "0-8" and "0-9" to load default 0-8 or 0-9 XML respectively. Default is still 0-8. Merged revisions 501586 via svnmerge from https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9 ........ r501586 | rhs | 2007-01-30 16:44:41 -0500 (Tue, 30 Jan 2007) | 1 line updated python spec parse to load from multiple files, changed default specs to include errata ........ Modified: incubator/qpid/trunk/qpid/ (props changed) incubator/qpid/trunk/qpid/python/qpid/connection.py incubator/qpid/trunk/qpid/python/qpid/peer.py incubator/qpid/trunk/qpid/python/tests/basic.py incubator/qpid/trunk/qpid/python/tests/message.py Propchange: incubator/qpid/trunk/qpid/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Mon Mar 19 12:19:53 2007 @@ -1 +1 @@ -/incubator/qpid/branches/M2:0-519912,519933 /incubator/qpid/branches/qpid.0-9:1-492620,496593,497277,500305,501022,501025,501082,501143,501586 +/incubator/qpid/branches/M2:0-519912,519933 /incubator/qpid/branches/qpid.0-9:1-492620,496593,497277,500305,501022,501025,501082,501143,501586,502176-502208,502210-502766,502768-503671,503673-503858 Modified: incubator/qpid/trunk/qpid/python/qpid/connection.py URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/qpid/connection.py?view=diff&rev=520051&r1=520050&r2=520051 ============================================================================== --- incubator/qpid/trunk/qpid/python/qpid/connection.py (original) +++ incubator/qpid/trunk/qpid/python/qpid/connection.py Mon Mar 19 12:19:53 2007 @@ -232,6 +232,9 @@ method = Method.decode(spec, dec, size - 20) return Response(id, request_id, batch_offset, method) + def __str__(self): + return "[%s] Response(%s,%s,%s) %s" % (self.channel, self.id, self.request_id, self.batch_offset, self.method) + class Header(Frame): type = "frame_header" Modified: incubator/qpid/trunk/qpid/python/qpid/peer.py URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/qpid/peer.py?view=diff&rev=520051&r1=520050&r2=520051 ============================================================================== --- incubator/qpid/trunk/qpid/python/qpid/peer.py (original) +++ incubator/qpid/trunk/qpid/python/qpid/peer.py Mon Mar 19 12:19:53 2007 @@ -220,6 +220,8 @@ work.put(self.incoming) elif isinstance(frame, Response): self.requester.receive(self, frame) + if frame.method_type.content: + self.queue = self.responses return self.queue.put(frame) @@ -241,7 +243,11 @@ return None try: resp = self.responses.get() - return Message(self, resp) + if resp.method_type.content: + return Message(self, resp, read_content(self.responses)) + else: + return Message(self, resp) + except QueueClosed, e: if self.closed: raise Closed(self.reason) Modified: incubator/qpid/trunk/qpid/python/tests/basic.py URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/tests/basic.py?view=diff&rev=520051&r1=520050&r2=520051 ============================================================================== --- incubator/qpid/trunk/qpid/python/tests/basic.py (original) +++ incubator/qpid/trunk/qpid/python/tests/basic.py Mon Mar 19 12:19:53 2007 @@ -347,12 +347,12 @@ 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(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") + self.assertEqual(reply.method.name, "get_empty") #repeat for no_ack=False for i in range(11, 21): @@ -361,7 +361,7 @@ 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(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) @@ -370,7 +370,7 @@ reply = channel.basic_get(no_ack=True) self.assertEqual(reply.method.klass.name, "basic") - self.assertEqual(reply.method.name, "get-empty") + self.assertEqual(reply.method.name, "get_empty") #recover(requeue=True) channel.basic_recover(requeue=True) @@ -379,16 +379,16 @@ 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(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") + 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") + self.assertEqual(reply.method.name, "get_empty") Modified: incubator/qpid/trunk/qpid/python/tests/message.py URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/tests/message.py?view=diff&rev=520051&r1=520050&r2=520051 ============================================================================== --- incubator/qpid/trunk/qpid/python/tests/message.py (original) +++ incubator/qpid/trunk/qpid/python/tests/message.py Mon Mar 19 12:19:53 2007 @@ -149,8 +149,8 @@ channel = self.channel channel.queue_declare(queue="test-ack-queue", exclusive=True) - reply = channel.message_consume(queue="test-ack-queue", no_ack=False) - queue = self.client.queue(reply.consumer_tag) + channel.message_consume(queue="test-ack-queue", destination="consumer_tag", no_ack=False) + queue = self.client.queue("consumer_tag") channel.message_transfer(routing_key="test-ack-queue", body="One") channel.message_transfer(routing_key="test-ack-queue", body="Two") @@ -170,8 +170,9 @@ self.assertEqual("Four", msg4.body) self.assertEqual("Five", msg5.body) - channel.message_ack(delivery_tag=msg2.delivery_tag, multiple=True) #One & Two - channel.message_ack(delivery_tag=msg4.delivery_tag, multiple=False) #Four + msg1.ok() + msg2.ok() + msg4.ok() channel.message_recover(requeue=False) @@ -214,8 +215,6 @@ self.assertEqual("Four", msg4.body) self.assertEqual("Five", msg5.body) - #channel.message_ack(delivery_tag=msg2.delivery_tag, multiple=True) #One & Two - #channel.message_ack(delivery_tag=msg4.delivery_tag, multiple=False) #Four msg1.ok() #One msg2.ok() #Two msg4.ok() #Two @@ -252,8 +251,8 @@ #setup: declare queue and subscribe channel = self.channel channel.queue_declare(queue="test-prefetch-count", exclusive=True) - subscription = channel.message_consume(queue="test-prefetch-count", no_ack=False) - queue = self.client.queue(subscription.consumer_tag) + subscription = channel.message_consume(queue="test-prefetch-count", destination="consumer_tag", no_ack=False) + queue = self.client.queue("consumer_tag") #set prefetch to 5: channel.message_qos(prefetch_count=5) @@ -263,22 +262,30 @@ channel.message_transfer(routing_key="test-prefetch-count", body="Message %d" % i) #only 5 messages should have been delivered: + msgs = [] for i in range(1, 6): msg = queue.get(timeout=1) self.assertEqual("Message %d" % i, msg.body) + msgs.add(msg) try: extra = queue.get(timeout=1) self.fail("Got unexpected 6th message in original queue: " + extra.body) except Empty: None #ack messages and check that the next set arrive ok: - channel.message_ack(delivery_tag=msg.delivery_tag, multiple=True) + #todo: once batching is implmented, send a single response for all messages + for msg in msgs: + msg.ok() + msgs.clear() for i in range(6, 11): msg = queue.get(timeout=1) self.assertEqual("Message %d" % i, msg.body) + msgs.add(msg) - channel.message_ack(delivery_tag=msg.delivery_tag, multiple=True) + for msg in msgs: + msg.ok() + msgs.clear() try: extra = queue.get(timeout=1) @@ -294,8 +301,8 @@ #setup: declare queue and subscribe channel = self.channel channel.queue_declare(queue="test-prefetch-size", exclusive=True) - subscription = channel.message_consume(queue="test-prefetch-size", no_ack=False) - queue = self.client.queue(subscription.consumer_tag) + subscription = channel.message_consume(queue="test-prefetch-size", destination="consumer_tag", no_ack=False) + queue = self.client.queue("consumer_tag") #set prefetch to 50 bytes (each message is 9 or 10 bytes): channel.message_qos(prefetch_size=50) @@ -305,9 +312,11 @@ channel.message_transfer(routing_key="test-prefetch-size", body="Message %d" % i) #only 5 messages should have been delivered (i.e. 45 bytes worth): + msgs = [] for i in range(1, 6): msg = queue.get(timeout=1) self.assertEqual("Message %d" % i, msg.body) + msgs.add(msg) try: extra = queue.get(timeout=1) @@ -315,13 +324,18 @@ except Empty: None #ack messages and check that the next set arrive ok: - channel.message_ack(delivery_tag=msg.delivery_tag, multiple=True) + for msg in msgs: + msg.ok() + msgs.clear() for i in range(6, 11): msg = queue.get(timeout=1) self.assertEqual("Message %d" % i, msg.body) + msgs.add(msg) - channel.message_ack(delivery_tag=msg.delivery_tag, multiple=True) + for msg in msgs: + msg.ok() + msgs.clear() try: extra = queue.get(timeout=1) @@ -366,10 +380,13 @@ self.assertEqual(reply.method.klass.name, "message") self.assertEqual(reply.method.name, "get-ok") self.assertEqual("Message %d" % i, reply.body) - if(i == 13): - channel.message_ack(delivery_tag=reply.delivery_tag, multiple=True) - if(i in [15, 17, 19]): - channel.message_ack(delivery_tag=reply.delivery_tag) + reply.ok() + + #todo: when batching is available, test ack multiple + #if(i == 13): + # channel.message_ack(delivery_tag=reply.delivery_tag, multiple=True) + #if(i in [15, 17, 19]): + # channel.message_ack(delivery_tag=reply.delivery_tag) reply = channel.message_get(no_ack=True) self.assertEqual(reply.method.klass.name, "message") @@ -384,7 +401,8 @@ self.assertEqual(reply.method.klass.name, "message") self.assertEqual(reply.method.name, "get-ok") self.assertEqual("Message %d" % i, reply.body) - channel.message_ack(delivery_tag=reply.delivery_tag) + reply.ok() + #channel.message_ack(delivery_tag=reply.delivery_tag) reply = channel.message_get(no_ack=True) self.assertEqual(reply.method.klass.name, "message")
