From c0077445d07d484ac12c22f3d333030db55bd076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 10 Sep 2024 15:40:19 +0200 Subject: [PATCH] Check that rec_name is searchable on searchable model --- trytond/trytond/tests/test_tryton.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/trytond/trytond/tests/test_tryton.py b/trytond/trytond/tests/test_tryton.py index 0035a0d703..49f4a950a5 100644 --- a/trytond/trytond/tests/test_tryton.py +++ b/trytond/trytond/tests/test_tryton.py @@ -377,18 +377,23 @@ class ModuleTestCase(_DBTestCase): for mname, model in Pool().iterobject(): if not isregisteredby(model, self.module): continue + rec_name = model._rec_name # Skip testing default value even if the field doesn't exist # as there is a fallback to id - if model._rec_name == 'name': + if rec_name == 'name' and 'name' not in model._fields: continue with self.subTest(model=mname): - self.assertIn(model._rec_name, model._fields.keys(), - msg='Wrong _rec_name "%s" for %s' % ( - model._rec_name, mname)) - field = model._fields[model._rec_name] + self.assertIn(rec_name, model._fields.keys(), + msg="Wrong _rec_name %r for %r" % ( + rec_name, mname)) + field = model._fields[rec_name] self.assertIn(field._type, {'char', 'text'}, - msg="Wrong '%s' type for _rec_name of %s'" % ( - field._type, mname)) + msg="Wrong %r type for _rec_name %r of %r'" % ( + field._type, rec_name, mname)) + if hasattr(model, 'search'): + self.assertTrue(field.searchable(model), + msg="_rec_name %r of %r not searchable" % ( + rec_name, mname)) @with_transaction() def test_model__access__(self):