You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/03/19 20:19:55 UTC

svn commit: r520051 - in /incubator/qpid/trunk/qpid: ./ python/qpid/connection.py python/qpid/peer.py python/tests/basic.py python/tests/message.py

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")