From 6d0b78dca1cfccb9fd49190f41571264c70094ef Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Mon, 31 Jan 2022 14:13:51 +0300 Subject: [PATCH] model fix: rollback transaction on fail --- model/postgres_model.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/model/postgres_model.py b/model/postgres_model.py index 5a5abf6..9eb2ef5 100644 --- a/model/postgres_model.py +++ b/model/postgres_model.py @@ -18,13 +18,19 @@ logger.propagate = False def errors_catcher(func: callable) -> callable: def decorated(*args, **kwargs): + self: PostgresModel = args[0] try: result = func(*args, **kwargs) except psycopg2.InterfaceError: - args[0].open_model() + self.open_model() # args[0] - self result = func(*args, **kwargs) + except Exception: + # just reset transaction at least + self.db.rollback() + raise + return result return decorated