summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_onchange.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-08-31 12:55:41 +0200
committerChristophe Simonis <chs@odoo.com>2017-08-31 12:55:41 +0200
commit4879ce040797fd4a47b6b8326c3aacd365c8ab91 (patch)
tree45479b47c5dcfba0d0ced4f05d770b0852f31263 /odoo/addons/test_new_api/tests/test_onchange.py
parentdae6178a0a5629ce678b20fcc9226caa44a5b0ce (diff)
parentfe77df3ba480d40b3d6b25736397bd52c684ce03 (diff)
[MERGE] forward port branch saas-17 up to fe77df3ba48
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_onchange.py')
-rw-r--r--odoo/addons/test_new_api/tests/test_onchange.py22
1 files changed, 22 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 dfeafd99805..4b54d895416 100644
--- a/odoo/addons/test_new_api/tests/test_onchange.py
+++ b/odoo/addons/test_new_api/tests/test_onchange.py
@@ -276,6 +276,28 @@ class TestOnChange(common.TransactionCase):
for user in discussion.participants + demo],
)
+ def test_onchange_default(self):
+ """ test the effect of a conditional user-default on a field """
+ Foo = self.env['test_new_api.foo']
+ field_onchange = Foo._onchange_spec()
+ self.assertTrue(Foo._fields['value1'].change_default)
+ self.assertEqual(field_onchange.get('value1'), '1')
+
+ # create a user-defined default based on 'value1'
+ self.env['ir.values'].set_default('test_new_api.foo', 'value2', 666, condition='value1=42')
+
+ # setting 'value1' to 42 should trigger the change of 'value2'
+ self.env.invalidate_all()
+ values = {'name': 'X', 'value1': 42, 'value2': False}
+ result = Foo.onchange(values, 'value1', field_onchange)
+ self.assertEqual(result['value'], {'value2': 666})
+
+ # setting 'value1' to 24 should not trigger the change of 'value2'
+ self.env.invalidate_all()
+ values = {'name': 'X', 'value1': 24, 'value2': False}
+ result = Foo.onchange(values, 'value1', field_onchange)
+ self.assertEqual(result['value'], {})
+
def test_onchange_one2many_value(self):
""" test the value of the one2many field inside the onchange """
discussion = self.env.ref('test_new_api.discussion_0')