Skip to content

Commit 789be82

Browse files
committed
Merge PR #211 into 14.0
Signed-off-by StefanRijnhart
2 parents bcd988d + b5dbb52 commit 789be82

4 files changed

Lines changed: 53 additions & 11 deletions

File tree

server_environment/server_env.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,11 @@ def fields_view_get(
324324
@api.model
325325
def _is_secret(self, key):
326326
"""
327-
This method is intended to be inherited to defined which keywords
328-
should be secret.
329-
:return: list of secret keywords
327+
This method is intended to be inherited to define which values
328+
should be kept secret.
329+
:return: True if information has to be protected, False otherwise
330330
"""
331-
secret_keys = ["passw", "key", "secret", "token"]
331+
secret_keys = ["_pass", "passw", "key", "secret", "token"]
332332
return any(secret_key in key for secret_key in secret_keys)
333333

334334
@api.model

server_environment/tests/common.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,22 @@ def set_env_variables(self, public=None, secret=None):
3434
yield
3535

3636
@contextmanager
37-
def load_config(self, public=None, secret=None, serv_config_class=server_env_mixin):
37+
def load_config(
38+
self,
39+
public=None,
40+
secret=None,
41+
config_dir=None,
42+
serv_config_class=server_env_mixin,
43+
):
3844
original_serv_config = serv_config_class.serv_config
3945
try:
40-
with self.set_config_dir(None), self.set_env_variables(public, secret):
41-
parser = server_env._load_config()
42-
serv_config_class.serv_config = parser
43-
yield
46+
with self.set_config_dir(config_dir):
47+
with self.set_env_variables(public, secret):
48+
parser = server_env._load_config()
49+
serv_config_class.serv_config = parser
50+
server_env.serv_config = parser
51+
yield
4452

4553
finally:
4654
serv_config_class.serv_config = original_serv_config
55+
server_env.serv_config = original_serv_config

server_environment/tests/test_server_environment.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@
88
from .. import server_env
99
from . import common
1010

11+
NO_DEFAULT = [
12+
"id",
13+
"create_uid",
14+
"create_date",
15+
"write_uid",
16+
"write_date",
17+
"display_name",
18+
"config",
19+
"__last_update",
20+
]
21+
1122

1223
class TestEnv(common.ServerEnvironmentCase):
1324
def test_view(self):
@@ -21,13 +32,15 @@ def _test_default(self, hidden_pwd=False):
2132
defaults = rec.default_get([])
2233
self.assertTrue(defaults)
2334
self.assertIsInstance(defaults, dict)
35+
# Check secrets
2436
pass_checked = False
2537
for default in defaults:
26-
if "passw" in default:
38+
if "_pass" in default:
2739
check = self.assertEqual if hidden_pwd else self.assertNotEqual
2840
check(defaults[default], "**********")
2941
pass_checked = True
3042
self.assertTrue(pass_checked)
43+
return defaults
3144

3245
@patch.dict(odoo_config.options, {"running_env": "dev"})
3346
def test_default_dev(self):
@@ -51,7 +64,7 @@ def test_odoosh_dev_from_environ(self):
5164
self._test_default()
5265

5366
@patch.dict(odoo_config.options, {"running_env": "testing"})
54-
def test_value_retrival(self):
67+
def test_value_retrieval(self):
5568
with self.set_config_dir("testfiles"):
5669
parser = server_env._load_config()
5770
val = parser.get("external_service.ftp", "user")
@@ -116,3 +129,17 @@ def test_server_environment_disabled_overwrite_options_section_by_env(self):
116129
with self.set_config_dir("testfiles"):
117130
server_env._load_config()
118131
self.assertEqual(odoo_config["odoo_test_option"], "fake odoo config")
132+
133+
@patch.dict(odoo_config.options, {"running_env": "testing"})
134+
def test_default_hidden_password(self):
135+
with self.load_config(config_dir="testfiles"):
136+
model = self.env["server.config"]
137+
model._add_columns()
138+
del self.env.registry.model_cache[model._model_classes]
139+
self.env.registry.setup_models(self.env.cr)
140+
defaults = self._test_default(hidden_pwd=True)
141+
142+
self.assertIn("odoo_I_admin_passwd", defaults)
143+
self.assertIn("odoo_I_db_password", defaults)
144+
self.assertIn("odoo_I_smtp_password", defaults)
145+
self.assertIn("outgoing_mail_provider_promail_I_smtp_pass", defaults)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[outgoing_mail.provider_promail]
2+
smtp_encryption = ssl
3+
smtp_host = email.server.invalid
4+
smtp_pass = THISISNOTPUBLIC
5+
smtp_port = 912
6+
smtp_user = user_abc

0 commit comments

Comments
 (0)