# HG changeset patch # User Sylvain Thénault # Date 1276844861 -7200 # Node ID c0661b963ced6f8b6e8c9e8b61e6c89760aba42d # Parent 8b2264e485bcaca490638986330faf90d19247ba [test] fix test w/ closed connection pb diff -r 8b2264e485bc -r c0661b963ced devtools/testlib.py --- 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 diff -r 8b2264e485bc -r c0661b963ced web/test/unittest_session.py --- a/web/test/unittest_session.py Fri Jun 18 08:14:00 2010 +0200 +++ b/web/test/unittest_session.py Fri Jun 18 09:07:41 2010 +0200 @@ -19,14 +19,18 @@ self.assertEquals(self.websession.sessionid, self.websession.cnx.sessionid) # fake the repo session is expiring self.repo.close(sessionid) - # fake an incoming http query with sessionid in session cookie - # don't use self.request() which try to call req.set_session - req = self.requestcls(self.vreg) - websession = sm.get_session(req, sessionid) - self.assertEquals(len(sm._sessions), 1) - self.assertIs(websession, self.websession) - self.assertEquals(websession.sessionid, sessionid) - self.assertNotEquals(websession.sessionid, websession.cnx.sessionid) + try: + # fake an incoming http query with sessionid in session cookie + # don't use self.request() which try to call req.set_session + req = self.requestcls(self.vreg) + websession = sm.get_session(req, sessionid) + self.assertEquals(len(sm._sessions), 1) + self.assertIs(websession, self.websession) + self.assertEquals(websession.sessionid, sessionid) + self.assertNotEquals(websession.sessionid, websession.cnx.sessionid) + finally: + # avoid error in tearDown by telling this connection is closed... + self.cnx._closed = True if __name__ == '__main__': from logilab.common.testlib import unittest_main