[FIX] base_suspend_security: Reuse existing suspended envs

This commit is contained in:
Holger Brunn
2021-02-12 10:37:46 +01:00
parent f70b2f5ede
commit d6a99cabc3
2 changed files with 12 additions and 0 deletions

View File

@@ -5,6 +5,8 @@ from odoo.tools import pycompat
class BaseSuspendSecurityUid(int): class BaseSuspendSecurityUid(int):
def __eq__(self, other): def __eq__(self, other):
if isinstance(other, BaseSuspendSecurityUid):
return self * 1 == other * 1
if isinstance(other, pycompat.integer_types): if isinstance(other, pycompat.integer_types):
return False return False
return super(BaseSuspendSecurityUid, self).__int__() == other return super(BaseSuspendSecurityUid, self).__int__() == other

View File

@@ -63,3 +63,13 @@ class TestBaseSuspendSecurity(TransactionCase):
('user_ids', '=', user_without_access.suspend_security().env.uid), ('user_ids', '=', user_without_access.suspend_security().env.uid),
]) ])
self.assertTrue(partners) 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)