summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2019-11-28 12:52:27 +0000
committerRaphael Collet <rco@odoo.com>2019-12-03 09:31:32 +0000
commit2554d197ff1d8c53d26e21750c758dc639564a8b (patch)
tree6951e15f63bec8d12ddfa0947744aac5c045c95f
parenta5bbc90885086aca3ab6f7e469491185539f9d85 (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.py76
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):