diff --git a/trytond/trytond/backend/sqlite/database.py b/trytond/trytond/backend/sqlite/database.py index eafd286785..3f08d66e9d 100644 --- a/trytond/trytond/backend/sqlite/database.py +++ b/trytond/trytond/backend/sqlite/database.py @@ -441,14 +441,25 @@ class Database(DatabaseInterface): return self._conn def put_connection(self, connection=None, close=False): - pass + assert connection == self._conn or self._conn is None + if self.name == ':memory:': + if (self._local.memory_database._conn is None + and connection and close): + connection.close() + self._conn = None + elif close: + connection.close() + self._conn = None def close(self): if self.name == ':memory:': - return - if self._conn is None: - return - self._conn = None + if (self._local.memory_database._conn is None + and self._conn): + self._conn.close() + self._conn = None + elif self._conn: + self._conn.close() + self._conn = None @classmethod def create(cls, connection, database_name):