devtools/testlib.py
changeset 6366 1806148d6ce8
parent 6333 e3994fcc21c3
parent 6346 1a968e545e4e
child 6370 8c3d6f739fa3
--- a/devtools/testlib.py	Thu Sep 23 23:28:58 2010 +0200
+++ b/devtools/testlib.py	Wed Sep 29 16:16:32 2010 +0200
@@ -347,15 +347,19 @@
         """return a connection for the given login/password"""
         if login == self.admlogin:
             self.restore_connection()
-        else:
-            if not kwargs:
-                kwargs['password'] = str(login)
-            self.cnx = repo_connect(self.repo, unicode(login), **kwargs)
-            self.websession = DBAPISession(self.cnx)
-            self._cnxs.append(self.cnx)
+            # definitly don't want autoclose when used as a context manager
+            return self.cnx
+        autoclose = kwargs.pop('autoclose', True)
+        if not kwargs:
+            kwargs['password'] = str(login)
+        self.cnx = repo_connect(self.repo, unicode(login), **kwargs)
+        self.websession = DBAPISession(self.cnx)
+        self._cnxs.append(self.cnx)
         if login == self.vreg.config.anonymous_user()[0]:
             self.cnx.anonymous_connection = True
-        return TestCaseConnectionProxy(self, self.cnx)
+        if autoclose:
+            return TestCaseConnectionProxy(self, self.cnx)
+        return self.cnx
 
     def restore_connection(self):
         if not self.cnx is self._orig_cnx[0]: