diff options
| author | Raphael Collet <rco@odoo.com> | 2019-11-28 12:52:27 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2019-12-03 09:31:32 +0000 |
| commit | 2554d197ff1d8c53d26e21750c758dc639564a8b (patch) | |
| tree | 6951e15f63bec8d12ddfa0947744aac5c045c95f | |
| parent | a5bbc90885086aca3ab6f7e469491185539f9d85 (diff) | |
[IMP] test_new_api: add subtests (to ease debugging)
closes odoo/odoo#40574
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_schema.py | 76 |
1 files changed, 39 insertions, 37 deletions
diff --git a/odoo/addons/test_new_api/tests/test_schema.py b/odoo/addons/test_new_api/tests/test_schema.py index 6ede0e833d5..0ca2adf0875 100644 --- a/odoo/addons/test_new_api/tests/test_schema.py +++ b/odoo/addons/test_new_api/tests/test_schema.py @@ -13,43 +13,45 @@ class TestReflection(common.TransactionCase): ir_models = self.env['ir.model'].search([('model', 'in', list(model_names))]) self.assertEqual(len(ir_models), len(model_names)) for ir_model in ir_models: - model = self.env[ir_model.model] - self.assertEqual(ir_model.name, model._description or False) - self.assertEqual(ir_model.state, 'manual' if model._custom else 'base') - self.assertEqual(ir_model.transient, bool(model._transient)) - self.assertItemsEqual(ir_model.mapped('field_id.name'), list(model._fields)) - for ir_field in ir_model.field_id: - field = model._fields[ir_field.name] - self.assertEqual(ir_field.model, field.model_name) - self.assertEqual(ir_field.field_description, field.string) - self.assertEqual(ir_field.help, field.help or False) - self.assertEqual(ir_field.ttype, field.type) - self.assertEqual(ir_field.state, 'manual' if field.manual else 'base') - self.assertEqual(ir_field.index, bool(field.index)) - self.assertEqual(ir_field.store, bool(field.store)) - self.assertEqual(ir_field.copied, bool(field.copy)) - self.assertEqual(ir_field.related, bool(field.related) and ".".join(field.related)) - self.assertEqual(ir_field.readonly, bool(field.readonly)) - self.assertEqual(ir_field.required, bool(field.required)) - self.assertEqual(ir_field.selectable, bool(field.search or field.store)) - self.assertEqual(ir_field.translate, bool(field.translate)) - if field.relational: - self.assertEqual(ir_field.relation, field.comodel_name) - if field.type == 'one2many' and field.store: - self.assertEqual(ir_field.relation_field, field.inverse_name) - if field.type == 'many2many' and field.store: - self.assertEqual(ir_field.relation_table, field.relation) - self.assertEqual(ir_field.column1, field.column1) - self.assertEqual(ir_field.column2, field.column2) - relation = self.env['ir.model.relation'].search([('name', '=', field.relation)]) - self.assertTrue(relation) - self.assertIn(relation.model.model, [field.model_name, field.comodel_name]) - if field.type == 'selection': - selection = [(sel.value, sel.name) for sel in ir_field.selection_ids] - if isinstance(field.selection, list): - self.assertEqual(selection, field.selection) - else: - self.assertEqual(selection, []) + with self.subTest(model=ir_model.model): + model = self.env[ir_model.model] + self.assertEqual(ir_model.name, model._description or False) + self.assertEqual(ir_model.state, 'manual' if model._custom else 'base') + self.assertEqual(ir_model.transient, bool(model._transient)) + self.assertItemsEqual(ir_model.mapped('field_id.name'), list(model._fields)) + for ir_field in ir_model.field_id: + with self.subTest(field=ir_field.name): + field = model._fields[ir_field.name] + self.assertEqual(ir_field.model, field.model_name) + self.assertEqual(ir_field.field_description, field.string) + self.assertEqual(ir_field.help, field.help or False) + self.assertEqual(ir_field.ttype, field.type) + self.assertEqual(ir_field.state, 'manual' if field.manual else 'base') + self.assertEqual(ir_field.index, bool(field.index)) + self.assertEqual(ir_field.store, bool(field.store)) + self.assertEqual(ir_field.copied, bool(field.copy)) + self.assertEqual(ir_field.related, bool(field.related) and ".".join(field.related)) + self.assertEqual(ir_field.readonly, bool(field.readonly)) + self.assertEqual(ir_field.required, bool(field.required)) + self.assertEqual(ir_field.selectable, bool(field.search or field.store)) + self.assertEqual(ir_field.translate, bool(field.translate)) + if field.relational: + self.assertEqual(ir_field.relation, field.comodel_name) + if field.type == 'one2many' and field.store: + self.assertEqual(ir_field.relation_field, field.inverse_name) + if field.type == 'many2many' and field.store: + self.assertEqual(ir_field.relation_table, field.relation) + self.assertEqual(ir_field.column1, field.column1) + self.assertEqual(ir_field.column2, field.column2) + relation = self.env['ir.model.relation'].search([('name', '=', field.relation)]) + self.assertTrue(relation) + self.assertIn(relation.model.model, [field.model_name, field.comodel_name]) + if field.type == 'selection': + selection = [(sel.value, sel.name) for sel in ir_field.selection_ids] + if isinstance(field.selection, list): + self.assertEqual(selection, field.selection) + else: + self.assertEqual(selection, []) class TestSchema(common.TransactionCase): |
