Skip to content

Commit a2b2a19

Browse files
committed
Merge PR #257 into 18.0
Signed-off-by yvaucher
2 parents 4a3b946 + 7996360 commit a2b2a19

5 files changed

Lines changed: 34 additions & 18 deletions

File tree

server_environment/models/server_env_mixin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from lxml import etree
88

99
from odoo import api, fields, models
10+
from odoo.tools import mute_logger
1011

1112
from odoo.addons.base_sparse_field.models.fields import Serialized
1213

@@ -356,7 +357,9 @@ def _server_env_transform_field_to_read_from_env(self, field):
356357
inverse_method = _partialmethod(
357358
type(self)._inverse_server_env, field.name, __name__=inverse_method_name
358359
)
359-
setattr(type(self), inverse_method_name, inverse_method)
360+
# Mute message related to new safeguard (PR odoo/odoo#247151)
361+
with mute_logger("odoo.tests.common"):
362+
setattr(type(self), inverse_method_name, inverse_method)
360363
field.inverse = inverse_method_name
361364
field.store = False
362365
field.required = False

server_environment/server_env.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from lxml import etree
1111

1212
from odoo import api, fields, models
13+
from odoo.tools import mute_logger
1314
from odoo.tools.config import config as system_base_config
1415

1516
from odoo.addons.base_sparse_field.models.fields import Serialized
@@ -212,11 +213,9 @@ def _add_columns(cls):
212213
sparse="config",
213214
readonly=True,
214215
)
215-
setattr(
216-
ServerConfiguration,
217-
col_name,
218-
tmp_field,
219-
)
216+
# Mute message related to new safeguard (PR odoo/odoo#247151)
217+
with mute_logger("odoo.tests.common"):
218+
setattr(ServerConfiguration, col_name, tmp_field)
220219
tmp_field.name = col_name
221220
ServerConfiguration._field_definitions.append(tmp_field)
222221
cls._conf_defaults[col_name] = value

server_environment/tests/common.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def load_config(
4848
serv_config_class=server_env_mixin,
4949
):
5050
original_serv_config = serv_config_class.serv_config
51+
original_fields = dir(server_env.ServerConfiguration)
5152
try:
5253
with (
5354
self.set_config_dir(config_dir),
@@ -61,3 +62,7 @@ def load_config(
6162
finally:
6263
serv_config_class.serv_config = original_serv_config
6364
server_env.serv_config = original_serv_config
65+
for attr, fld in vars(server_env.ServerConfiguration).items():
66+
if attr not in original_fields:
67+
server_env.ServerConfiguration._field_definitions.remove(fld)
68+
delattr(self.env["server.config"].__class__, attr)

server_environment/tests/test_server_environment.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ def test_default_hidden_password(self):
8282
model = self.env["server.config"]
8383
model._add_columns()
8484
self.env.registry.setup_models(self.env.cr)
85-
defaults = self._test_default(hidden_pwd=True)
85+
defaults = self._test_default(hidden_pwd=True)
8686

87-
self.assertIn("odoo_I_admin_passwd", defaults)
88-
self.assertIn("odoo_I_db_password", defaults)
89-
self.assertIn("odoo_I_smtp_password", defaults)
90-
self.assertIn("outgoing_mail_provider_promail_I_smtp_pass", defaults)
87+
self.assertIn("odoo_I_admin_passwd", defaults)
88+
self.assertIn("odoo_I_db_password", defaults)
89+
self.assertIn("odoo_I_smtp_password", defaults)
90+
self.assertIn("outgoing_mail_provider_promail_I_smtp_pass", defaults)

server_environment_data_encryption/tests/test_server_environment_data_encrypt.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,27 @@ def setUpClass(cls):
1414
super().setUpClass()
1515
cls.loader = FakeModelLoader(cls.env, cls.__module__)
1616
cls.loader.backup_registry()
17+
cls._origin_fields = {}
18+
for model in "res.partner", "res.users":
19+
cls._origin_fields[model] = set(dir(cls.env[model].__class__))
1720

21+
def setUp(self):
22+
super().setUp()
1823
# The fake class is imported here !! After the backup_registry
1924
from .models import FakePartner
2025

21-
cls.loader.update_registry((FakePartner,))
22-
cls.set_new_key_env("prod")
23-
cls.set_new_key_env("preprod")
26+
self.loader.update_registry((FakePartner,))
27+
self.addCleanup(self.loader.restore_registry)
28+
self.addCleanup(self.remove_mixin_fields)
29+
self.set_new_key_env("prod")
30+
self.set_new_key_env("preprod")
2431

25-
@classmethod
26-
def tearDownClass(cls):
27-
cls.loader.restore_registry()
28-
super().tearDownClass()
32+
def remove_mixin_fields(self):
33+
# E.g: server_env_defaults, _inverse_server_env_city
34+
for model in "res.partner", "res.users":
35+
extra = set(self.env[model].__class__.__dict__) - self._origin_fields[model]
36+
for attr in extra:
37+
delattr(self.env[model].__class__, attr)
2938

3039
def test_env_dependent_value(self):
3140
partner = self.env["res.partner"].create(

0 commit comments

Comments
 (0)