summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_onchange.py
diff options
context:
space:
mode:
authorsvs-odoo <svs@odoo.com>2020-12-28 15:45:41 +0000
committersvs-odoo <svs@odoo.com>2021-01-04 09:59:50 +0000
commitcf2b0a505c117a50a91fa022bc1d6bf1eb6d9f77 (patch)
treeb0b7f0fa2798fb2006c3cafc3dc1ab5261e5fc45 /odoo/addons/test_new_api/tests/test_onchange.py
parent1b10d4e9240a1d4892143284e806ba8ab8281c9d (diff)
[FIX] core: avoid duplicate onchanges
When performing the onchange for the first time on a new record, if a field has a default value, it could be two times in the `todo` field list to compute. closes odoo/odoo#63983 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_onchange.py')
-rw-r--r--odoo/addons/test_new_api/tests/test_onchange.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/tests/test_onchange.py b/odoo/addons/test_new_api/tests/test_onchange.py
index a56348cf050..b5cd861edb8 100644
--- a/odoo/addons/test_new_api/tests/test_onchange.py
+++ b/odoo/addons/test_new_api/tests/test_onchange.py
@@ -742,6 +742,14 @@ class TestComputeOnchange(common.TransactionCase):
self.assertEqual(form.bar, "foo6r")
self.assertEqual(form.baz, "baz5")
+ def test_onchange_once(self):
+ """ Modifies `foo` field which will trigger an onchange method and
+ checks it was triggered only one time. """
+ form = Form(self.env['test_new_api.compute.onchange'].with_context(default_foo="oof"))
+ record = form.save()
+ self.assertEqual(record.foo, "oof")
+ self.assertEqual(record.count, 1, "value onchange must be called only one time")
+
def test_onchange_one2many(self):
record = self.env['test_new_api.model_parent_m2o'].create({
'name': 'Family',