devtools/testlib.py
branchstable
changeset 5785 c0661b963ced
parent 5783 c5ff8cd74758
child 5786 7c16a4e7a592
--- a/devtools/testlib.py	Fri Jun 18 08:14:00 2010 +0200
+++ b/devtools/testlib.py	Fri Jun 18 09:07:41 2010 +0200
@@ -283,10 +283,8 @@
         MAILBOX[:] = [] # reset mailbox
 
     def tearDown(self):
-        try:
+        if not self.cnx._closed:
             self.cnx.rollback()
-        except ProgrammingError:
-            pass
         for cnx in self._cnxs:
             if not cnx._closed:
                 cnx.close()
@@ -337,11 +335,12 @@
 
     def restore_connection(self):
         if not self.cnx is self._orig_cnx[0]:
+            if not cnx._closed:
+                self.cnx.close()
             try:
-                self.cnx.close()
                 self._cnxs.remove(self.cnx)
-            except ProgrammingError:
-                pass # already closed
+            except ValueError:
+                pass
         self.cnx, self.websession = self._orig_cnx
 
     # db api ##################################################################
@@ -373,7 +372,7 @@
         try:
             self.cnx.rollback()
         except ProgrammingError:
-            pass
+            pass # connection closed
         finally:
             self.session.set_pool() # ensure pool still set after commit