summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2020-07-15 12:35:06 +0000
committerRaphael Collet <rco@odoo.com>2020-07-16 08:16:16 +0000
commita21e8afda431281a4e0fa3c0c6e4076102a687be (patch)
tree6a5ce9052d04000a063a540194ede78430a442e3 /odoo/addons/test_new_api
parent800fa0812a44efa8dee5915035cf62774b25d076 (diff)
[FIX] core: update of one2many field on new record with origin
An onchange method can remove an existing line from a one2many field of a new record with command 2, such as: move.line_ids = [(2, <NewId origin=42>), ...] The processing of the command 2 above incorrectly tries to remove the new line from the origin record, instead of the new record. closes odoo/odoo#54545 X-original-commit: 7d138a445acbd9f2e122d9c30ca81877bae6a245 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons/test_new_api')
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index b071e043414..c3a7005cab0 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -1473,6 +1473,22 @@ class TestFields(TransactionCaseWithUserDemo):
self.assertEqual(new_move.quantity, 3)
self.assertEqual(move.quantity, 2)
+ def test_41_new_one2many(self):
+ """ Check command on one2many field on new record. """
+ move = self.env['test_new_api.move'].create({})
+ line = self.env['test_new_api.move_line'].create({'move_id': move.id, 'quantity': 1})
+ move.flush()
+
+ new_move = move.new(origin=move)
+ new_line = line.new(origin=line)
+ self.assertEqual(new_move.line_ids, new_line)
+
+ # drop line, and create a new one
+ new_move.line_ids = [(2, new_line.id), (0, 0, {'quantity': 2})]
+ self.assertEqual(len(new_move.line_ids), 1)
+ self.assertFalse(new_move.line_ids.id)
+ self.assertEqual(new_move.line_ids.quantity, 2)
+
@mute_logger('odoo.addons.base.models.ir_model')
def test_41_new_related(self):
""" test the behavior of related fields starting on new records. """