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 2009/06/04 19:33:26 UTC

svn commit: r781806 - /qpid/trunk/qpid/python/qpid/tests/messaging.py

Author: rhs
Date: Thu Jun  4 17:33:25 2009
New Revision: 781806

URL: http://svn.apache.org/viewvc?rev=781806&view=rev
Log:
Streamlined transaction tests and added some additional coverage.

Modified:
    qpid/trunk/qpid/python/qpid/tests/messaging.py

Modified: qpid/trunk/qpid/python/qpid/tests/messaging.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/tests/messaging.py?rev=781806&r1=781805&r2=781806&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/tests/messaging.py (original)
+++ qpid/trunk/qpid/python/qpid/tests/messaging.py Thu Jun  4 17:33:25 2009
@@ -244,58 +244,93 @@
     snd.close()
     return contents
 
-  def testCommitSend(self):
+  def txTest(self, commit):
     txssn = self.conn.session(transactional=True)
-    contents = self.send(txssn, "test-commit-send-queue", "testCommitSend", 3)
-    rcv = self.ssn.receiver("test-commit-send-queue")
-    self.assertEmpty(rcv)
-    txssn.commit()
-    assert contents == self.drain(rcv)
+    contents = self.send(self.ssn, "test-tx-queue", "txTest", 3)
+    txrcv = txssn.receiver("test-tx-queue")
+    txsnd = txssn.sender("test-tx-queue-copy")
+    rcv = self.ssn.receiver(txrcv.source)
+    copy_rcv = self.ssn.receiver(txsnd.target)
+    self.assertEmpty(copy_rcv)
+    for i in range(3):
+      m = txrcv.fetch(0)
+      txsnd.send(m)
+      self.assertEmpty(copy_rcv)
+    txssn.acknowledge()
+    if commit:
+      txssn.commit()
+      self.assertEmpty(rcv)
+      assert contents == self.drain(copy_rcv)
+    else:
+      txssn.rollback()
+      assert contents == self.drain(rcv)
+      self.assertEmpty(copy_rcv)
     self.ssn.acknowledge()
 
-  def testCommitAck(self):
-    txssn = self.conn.session(transactional=True)
-    txrcv = txssn.receiver("test-commit-ack-queue")
-    self.assertEmpty(txrcv)
-    contents = self.send(self.ssn, "test-commit-ack-queue", "testCommitAck", 3)
-    assert contents == self.drain(txrcv)
-    txssn.acknowledge()
-    txssn.close()
+  def testCommit(self):
+    self.txTest(True)
 
+  def testRollback(self):
+    self.txTest(False)
+
+  def txTestSend(self, commit):
     txssn = self.conn.session(transactional=True)
-    txrcv = txssn.receiver("test-commit-ack-queue")
-    assert contents == self.drain(txrcv)
-    txssn.acknowledge()
-    txssn.commit()
-    rcv = self.ssn.receiver("test-commit-ack-queue")
-    self.assertEmpty(rcv)
-    txssn.close()
+    contents = self.send(txssn, "test-tx-send-queue", "txTestSend", 3)
+    rcv = self.ssn.receiver("test-tx-send-queue")
     self.assertEmpty(rcv)
 
-  def testRollbackAck(self):
+    if commit:
+      txssn.commit()
+      assert contents == self.drain(rcv)
+      self.ssn.acknowledge()
+    else:
+      txssn.rollback()
+      self.assertEmpty(rcv)
+      txssn.commit()
+      self.assertEmpty(rcv)
+
+  def testCommitSend(self):
+    self.txTestSend(True)
+
+  def testRollbackSend(self):
+    self.txTestSend(False)
+
+  def txTestAck(self, commit):
     txssn = self.conn.session(transactional=True)
-    txrcv = txssn.receiver("test-rollback-ack-queue")
+    txrcv = txssn.receiver("test-tx-ack-queue")
     self.assertEmpty(txrcv)
-    contents = self.send(self.ssn, "test-rollback-ack-queue", "testRollbackAck", 3)
-    assert contents == self.drain(txrcv)
-    txssn.rollback()
-    assert contents == self.drain(txrcv)
-    txssn.acknowledge()
-    txssn.rollback()
+    contents = self.send(self.ssn, "test-tx-ack-queue", "txTestAck", 3)
     assert contents == self.drain(txrcv)
-    txssn.commit() # commit without ack
-    self.assertEmpty(txrcv)
+
+    if commit:
+      txssn.acknowledge()
+    else:
+      txssn.rollback()
+      assert contents == self.drain(txrcv)
+      txssn.acknowledge()
+      txssn.rollback()
+      assert contents == self.drain(txrcv)
+      txssn.commit() # commit without ack
+      self.assertEmpty(txrcv)
+
     txssn.close()
+
     txssn = self.conn.session(transactional=True)
-    txrcv = txssn.receiver("test-rollback-ack-queue")
+    txrcv = txssn.receiver("test-tx-ack-queue")
     assert contents == self.drain(txrcv)
     txssn.acknowledge()
     txssn.commit()
-    rcv = self.ssn.receiver("test-rollback-ack-queue")
+    rcv = self.ssn.receiver("test-tx-ack-queue")
     self.assertEmpty(rcv)
     txssn.close()
     self.assertEmpty(rcv)
 
+  def testCommitAck(self):
+    self.txTestAck(True)
+
+  def testRollbackAck(self):
+    self.txTestAck(False)
+
   def testClose(self):
     self.ssn.close()
     try:



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org