From f1b1a2b44de3ff9e996b5b0c096754efb31be894 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 14 Nov 2023 10:48:33 +0100 Subject: [PATCH] [FIX] tests: make server-side Form use web_save() like the web client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes odoo/odoo#142275 Signed-off-by: Rémy Voet (ryv) --- odoo/tests/form.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/odoo/tests/form.py b/odoo/tests/form.py index c4336005824..670f033cf68 100644 --- a/odoo/tests/form.py +++ b/odoo/tests/form.py @@ -407,15 +407,20 @@ class Form: :raises AssertionError: if the form has any unfilled required field """ values = self._get_save_values() - if self._record: - if values: - self._record.write(values) - else: - object.__setattr__(self, '_record', self._record.create(values)) - # reload the record - self._init_from_record() - self._env.flush_all() - self._env.clear() # discard cache and pending recomputations + if not self._record or values: + # save and reload + [record_values] = self._record.web_save(values, self._view['fields_spec']) + self._env.flush_all() + self._env.clear() # discard cache and pending recomputations + + if not self._record: + record = self._record.browse(record_values['id']) + object.__setattr__(self, '_record', record) + + values = convert_read_to_form(record_values, self._view['fields']) + self._values.clear() + self._values.update(values) + return self._record @property