From d6a99cabc34c042920b87ee33c98c033d41b78a5 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 12 Feb 2021 10:37:46 +0100 Subject: [PATCH] [FIX] base_suspend_security: Reuse existing suspended envs --- base_suspend_security/base_suspend_security.py | 2 ++ .../tests/test_base_suspend_security.py | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/base_suspend_security/base_suspend_security.py b/base_suspend_security/base_suspend_security.py index 03ea76ee..44de8b35 100644 --- a/base_suspend_security/base_suspend_security.py +++ b/base_suspend_security/base_suspend_security.py @@ -5,6 +5,8 @@ from odoo.tools import pycompat class BaseSuspendSecurityUid(int): def __eq__(self, other): + if isinstance(other, BaseSuspendSecurityUid): + return self * 1 == other * 1 if isinstance(other, pycompat.integer_types): return False return super(BaseSuspendSecurityUid, self).__int__() == other diff --git a/base_suspend_security/tests/test_base_suspend_security.py b/base_suspend_security/tests/test_base_suspend_security.py index 13ae8afa..232abdb9 100644 --- a/base_suspend_security/tests/test_base_suspend_security.py +++ b/base_suspend_security/tests/test_base_suspend_security.py @@ -63,3 +63,13 @@ class TestBaseSuspendSecurity(TransactionCase): ('user_ids', '=', user_without_access.suspend_security().env.uid), ]) self.assertTrue(partners) + + def test_envs(self): + """ Test that we get the same env when suspending from the same env """ + partner = self.env.ref('base.partner_demo') + user = self.env.ref('base.user_demo') + self.assertEqual(partner.env.args, user.env.args) + partner_suspended = partner.suspend_security() + user_suspended = user.suspend_security() + self.assertNotEqual(partner.env.args, partner_suspended.env.args) + self.assertEqual(user_suspended.env.args, partner_suspended.env.args)