You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2010/03/05 01:50:58 UTC
svn commit: r919251 - in /qpid/trunk/qpid/python/qpid/tests/messaging:
__init__.py endpoints.py message.py
Author: rhs
Date: Fri Mar 5 00:50:57 2010
New Revision: 919251
URL: http://svn.apache.org/viewvc?rev=919251&view=rev
Log:
made drain work on messages as well as content
Modified:
qpid/trunk/qpid/python/qpid/tests/messaging/__init__.py
qpid/trunk/qpid/python/qpid/tests/messaging/endpoints.py
qpid/trunk/qpid/python/qpid/tests/messaging/message.py
Modified: qpid/trunk/qpid/python/qpid/tests/messaging/__init__.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/tests/messaging/__init__.py?rev=919251&r1=919250&r2=919251&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/tests/messaging/__init__.py (original)
+++ qpid/trunk/qpid/python/qpid/tests/messaging/__init__.py Fri Mar 5 00:50:57 2010
@@ -71,15 +71,45 @@
assert msg.content == content, "expected %r, got %r" % (content, msg.content)
def drain(self, rcv, limit=None, timeout=0, expected=None):
- contents = []
+ messages = []
try:
- while limit is None or len(contents) < limit:
- contents.append(rcv.fetch(timeout=timeout).content)
+ while limit is None or len(messages) < limit:
+ messages.append(rcv.fetch(timeout=timeout))
except Empty:
pass
if expected is not None:
- assert expected == contents, "expected %s, got %s" % (expected, contents)
- return contents
+ self.assertEchos(expected, messages)
+ return messages
+
+ def diff(self, m1, m2):
+ result = {}
+ for attr in ("id", "subject", "user_id", "to", "reply_to",
+ "correlation_id", "durable", "priority", "ttl",
+ "properties", "content_type", "content"):
+ a1 = getattr(m1, attr)
+ a2 = getattr(m2, attr)
+ if a1 != a2:
+ result[attr] = (a1, a2)
+ return result
+
+ def assertEcho(self, msg, echo):
+ if not isinstance(msg, Message) or not isinstance(echo, Message):
+ if isinstance(msg, Message):
+ msg = msg.content
+ if isinstance(echo, Message):
+ echo = echo.content
+ assert msg == echo, "expected %s, got %s" % (msg, echo)
+ else:
+ delta = self.diff(msg, echo)
+ mttl, ettl = delta.pop("ttl", (0, 0))
+ assert mttl is not None and ettl is not None, "%s, %s" % (mttl, ettl)
+ assert mttl >= ettl, "%s, %s" % (mttl, ettl)
+ assert not delta, "expected %s, got %s, delta %s" % (msg, echo, delta)
+
+ def assertEchos(self, msgs, echoes):
+ assert len(msgs) == len(echoes), "%s, %s" % (msgs, echoes)
+ for m, e in zip(msgs, echoes):
+ self.assertEcho(m, e)
def assertEmpty(self, rcv):
contents = self.drain(rcv)
Modified: qpid/trunk/qpid/python/qpid/tests/messaging/endpoints.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/tests/messaging/endpoints.py?rev=919251&r1=919250&r2=919251&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/tests/messaging/endpoints.py (original)
+++ qpid/trunk/qpid/python/qpid/tests/messaging/endpoints.py Fri Mar 5 00:50:57 2010
@@ -255,10 +255,10 @@
if commit:
txssn.commit()
self.assertEmpty(rcv)
- assert contents == self.drain(copy_rcv)
+ self.drain(copy_rcv, expected=contents)
else:
txssn.rollback()
- assert contents == self.drain(rcv)
+ self.drain(rcv, expected=contents)
self.assertEmpty(copy_rcv)
self.ssn.acknowledge()
@@ -277,7 +277,7 @@
if commit:
txssn.commit()
- assert contents == self.drain(rcv)
+ self.drain(rcv, expected=contents)
self.ssn.acknowledge()
else:
txssn.rollback()
@@ -298,17 +298,16 @@
txrcv = txssn.receiver(TX_ACK_QC)
self.assertEmpty(txrcv)
contents = self.send(self.ssn, TX_ACK_QC, "txTestAck", 3)
- assert contents == self.drain(txrcv)
+ self.drain(txrcv, expected=contents)
if commit:
txssn.acknowledge()
else:
txssn.rollback()
- drained = self.drain(txrcv)
- assert contents == drained, "expected %s, got %s" % (contents, drained)
+ self.drain(txrcv, expected=contents)
txssn.acknowledge()
txssn.rollback()
- assert contents == self.drain(txrcv)
+ self.drain(txrcv, expected=contents)
txssn.commit() # commit without ack
self.assertEmpty(txrcv)
@@ -316,7 +315,7 @@
txssn = self.conn.session(transactional=True)
txrcv = txssn.receiver(TX_ACK_QC)
- assert contents == self.drain(txrcv)
+ self.drain(txrcv, expected=contents)
txssn.acknowledge()
txssn.commit()
rcv = self.ssn.receiver(TX_ACK_QD)
@@ -838,8 +837,7 @@
msgs = [self.content("asyncTest", i) for i in range(15)]
for m in msgs:
self.snd.send(m, sync=False)
- drained = self.drain(self.rcv, timeout=self.delay())
- assert msgs == drained, "expected %s, got %s" % (msgs, drained)
+ self.drain(self.rcv, timeout=self.delay(), expected=msgs)
self.ssn.acknowledge()
def testSendAsyncCapacity0(self):
Modified: qpid/trunk/qpid/python/qpid/tests/messaging/message.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/tests/messaging/message.py?rev=919251&r1=919250&r2=919251&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/tests/messaging/message.py (original)
+++ qpid/trunk/qpid/python/qpid/tests/messaging/message.py Fri Mar 5 00:50:57 2010
@@ -68,23 +68,7 @@
def check(self, msg):
self.snd.send(msg)
echo = self.rcv.fetch(0)
-
- assert msg.id == echo.id
- assert msg.subject == echo.subject
- assert msg.user_id == echo.user_id
- assert msg.to == echo.to
- assert msg.reply_to == echo.reply_to
- assert msg.correlation_id == echo.correlation_id
- assert msg.durable == echo.durable
- assert msg.priority == echo.priority
- if msg.ttl is None:
- assert echo.ttl is None
- else:
- assert msg.ttl >= echo.ttl
- assert msg.properties == echo.properties
- assert msg.content_type == echo.content_type
- assert msg.content == echo.content, "%s, %s" % (msg, echo)
-
+ self.assertEcho(msg, echo)
self.ssn.acknowledge(echo)
def testStringContent(self):
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org