From 73ebe68486bb6892d001f15e9ed4a8bf4aee8766 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Wed, 9 Jan 2019 13:45:02 +0000 Subject: [PATCH] [ADD] test_inherits_depends: new test module This commit adds a test to test the scenario fixed in the parent commit. Creating a new test module is necessary as the bug is only revealed when the current module is different than the model._original_module (cf c9837ac5dcb) Before that commit, was failing only the second search of test_ir_model_data_inherits_depends. Add other test to avoid regression of the bugs corrected at 574f4c3d and c9837ac closes odoo/odoo#30116 --- .../test_inherits/tests/test_inherits.py | 11 +++++++ odoo/addons/test_inherits_depends/__init__.py | 3 ++ .../test_inherits_depends/__manifest__.py | 12 ++++++++ odoo/addons/test_inherits_depends/models.py | 10 +++++++ .../test_inherits_depends/tests/__init__.py | 3 ++ .../tests/test_inherits.py | 29 +++++++++++++++++++ 6 files changed, 68 insertions(+) create mode 100644 odoo/addons/test_inherits_depends/__init__.py create mode 100644 odoo/addons/test_inherits_depends/__manifest__.py create mode 100644 odoo/addons/test_inherits_depends/models.py create mode 100644 odoo/addons/test_inherits_depends/tests/__init__.py create mode 100644 odoo/addons/test_inherits_depends/tests/test_inherits.py diff --git a/odoo/addons/test_inherits/tests/test_inherits.py b/odoo/addons/test_inherits/tests/test_inherits.py index 246222b14ff..85396de5441 100644 --- a/odoo/addons/test_inherits/tests/test_inherits.py +++ b/odoo/addons/test_inherits/tests/test_inherits.py @@ -26,3 +26,14 @@ class test_inherits(common.TransactionCase): pallet = self.env.ref('test_inherits.pallet_a') pallet.write({'name': 'C'}) self.assertEqual(pallet.name, 'C') + + def test_ir_model_data_inherits(self): + """ Check the existence of the correct ir.model.data """ + IrModelData = self.env['ir.model.data'] + field = IrModelData.search([('name', '=', 'field_test_unit__name')]) + self.assertEqual(len(field), 1) + self.assertEqual(field.module, 'test_inherits') + + field = IrModelData.search([('name', '=', 'field_test_box__name')]) + self.assertEqual(len(field), 1) + self.assertEqual(field.module, 'test_inherits') diff --git a/odoo/addons/test_inherits_depends/__init__.py b/odoo/addons/test_inherits_depends/__init__.py new file mode 100644 index 00000000000..d6210b1285d --- /dev/null +++ b/odoo/addons/test_inherits_depends/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo/addons/test_inherits_depends/__manifest__.py b/odoo/addons/test_inherits_depends/__manifest__.py new file mode 100644 index 00000000000..335fdee1362 --- /dev/null +++ b/odoo/addons/test_inherits_depends/__manifest__.py @@ -0,0 +1,12 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'test-inherits-depends', + 'version': '0.1', + 'category': 'Tests', + 'description': """A module to verify the inheritance using _inherits in non-original modules.""", + 'depends': ['test_inherits'], + 'data': [], + 'installable': True, + 'auto_install': False, +} diff --git a/odoo/addons/test_inherits_depends/models.py b/odoo/addons/test_inherits_depends/models.py new file mode 100644 index 00000000000..77ad3ad1206 --- /dev/null +++ b/odoo/addons/test_inherits_depends/models.py @@ -0,0 +1,10 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields + + +# We add a field on this model +class Unit(models.Model): + _inherit = 'test.unit' + + second_name = fields.Char() diff --git a/odoo/addons/test_inherits_depends/tests/__init__.py b/odoo/addons/test_inherits_depends/tests/__init__.py new file mode 100644 index 00000000000..5a5bb8a95f3 --- /dev/null +++ b/odoo/addons/test_inherits_depends/tests/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_inherits diff --git a/odoo/addons/test_inherits_depends/tests/test_inherits.py b/odoo/addons/test_inherits_depends/tests/test_inherits.py new file mode 100644 index 00000000000..c758b47f8de --- /dev/null +++ b/odoo/addons/test_inherits_depends/tests/test_inherits.py @@ -0,0 +1,29 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests import common + + +class test_inherits(common.TransactionCase): + + def test_ir_model_data_inherits_again(self): + """ Re-run test_inherits test to make sure another imd hasn't been created """ + IrModelData = self.env['ir.model.data'] + field = IrModelData.search([('name', '=', 'field_test_unit__name')]) + self.assertEqual(len(field), 1) + self.assertEqual(field.module, 'test_inherits') + + field = IrModelData.search([('name', '=', 'field_test_box__name')]) + self.assertEqual(len(field), 1) + self.assertEqual(field.module, 'test_inherits') + + + def test_ir_model_data_inherits_depends(self): + """ Check the existence of the correct ir.model.data """ + IrModelData = self.env['ir.model.data'] + field = IrModelData.search([('name', '=', 'field_test_unit__second_name')]) + self.assertEqual(len(field), 1) + self.assertEqual(field.module, 'test_inherits_depends') + + field = IrModelData.search([('name', '=', 'field_test_box__second_name')]) + self.assertEqual(len(field), 1) + self.assertEqual(field.module, 'test_inherits_depends')