From ad12f36ecdf367fab221969e61083bc759ce9c51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 20 Dec 2013 16:15:44 +0100 Subject: [PATCH] Keep Transaction singleton in clean state and store close parameter If an exception happens in the start (database connection fails), the singleton should not have stored anything. --- trytond/transaction.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/trytond/transaction.py b/trytond/transaction.py index 691dd0679f..20db532924 100644 --- a/trytond/transaction.py +++ b/trytond/transaction.py @@ -79,13 +79,16 @@ class Transaction(local): assert self.close is None assert self.context is None if not database_name: - self.database = Database().connect() + database = Database().connect() else: - self.database = Database(database_name).connect() + database = Database(database_name).connect() Flavor.set(Database.flavor) - self.cursor = self.database.cursor(readonly=readonly, + cursor = database.cursor(readonly=readonly, autocommit=autocommit) self.user = user + self.database = database + self.cursor = cursor + self.close = close self.context = context or {} self.create_records = {} self.delete_records = {}