From fa1110698e178c40216d225a51091c717381bc8f Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 27 Jul 2018 11:45:08 +0200 Subject: [PATCH] Fix iteration on records --- server_environment/models/server_env_mixin.py | 6 ++++-- .../tests/test_server_env_mixin.py | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server_environment/models/server_env_mixin.py b/server_environment/models/server_env_mixin.py index 72eb23b..bde7b37 100644 --- a/server_environment/models/server_env_mixin.py +++ b/server_environment/models/server_env_mixin.py @@ -246,10 +246,12 @@ class ServerEnvMixin(models.AbstractModel): for record in self: for field_name, options in self._server_env_fields.items(): if record._server_env_has_key_defined(field_name): - self._compute_server_env_from_config(field_name, options) + record._compute_server_env_from_config(field_name, options) else: - self._compute_server_env_from_default(field_name, options) + record._compute_server_env_from_default( + field_name, options + ) def _inverse_server_env(self, field_name): options = self._server_env_fields[field_name] diff --git a/test_server_environment/tests/test_server_env_mixin.py b/test_server_environment/tests/test_server_env_mixin.py index cc7b9cc..5465689 100644 --- a/test_server_environment/tests/test_server_env_mixin.py +++ b/test_server_environment/tests/test_server_env_mixin.py @@ -35,6 +35,26 @@ class TestServerEnvMixin(ServerEnvironmentCase): self.assertEqual(foo.password, 'bar') self.assertTrue(foo.ssl) + def test_env_computed_fields_read_multi(self): + """Read values in env-computed fields on several records""" + public = ( + "[server_env_test]\n" + "host=test.example.com\n" + "port=21\n" + "user=foo\n" + ) + # we can create the record even if we didn't provide + # the field host which was required + foo = self.env['server.env.test'].create({ + 'name': 'foo', + }) + foo2 = self.env['server.env.test'].create({ + 'name': 'foo2', + }) + foos = foo + foo2 + with self.load_config(public): + foos._compute_server_env() + def test_env_computed_fields_write(self): """Env-computed fields without key in config can be written""" public = (