[FIX] core: add test to ensure correct call of _compute_display_name
Add test to ensure that `_compute_display_name` is called once with the correct recordset during `read_group`. Also fix and small typo in the documentation of `read_group`. closes odoo/odoo#132261 X-original-commit: 60477586f11ca7eb698240a6bd3f565b5a9e3279 Signed-off-by: Julien Castiaux (juc) <juc@odoo.com> Signed-off-by: Raphael Collet <rco@odoo.com> Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
This commit is contained in:
@@ -2,12 +2,12 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from collections import defaultdict
|
||||
import json
|
||||
from unittest.mock import patch
|
||||
import logging
|
||||
|
||||
from odoo.addons.base.tests.common import SavepointCaseWithUserDemo
|
||||
from odoo.tests.common import TransactionCase, users, warmup, tagged
|
||||
from odoo.tools import mute_logger, json_default, sql
|
||||
from odoo.tools import mute_logger, sql
|
||||
from odoo import Command
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
@@ -634,6 +634,19 @@ class TestPerformance(SavepointCaseWithUserDemo):
|
||||
result = model.read_group([], ['partner_id', 'value'], ['partner_id'])
|
||||
self.assertEqual(result, expected)
|
||||
|
||||
# Modify the data so that each record has the same partner,
|
||||
# and test that the _compute_display_name is called once with the correct recordset.
|
||||
all_records = model.search([])
|
||||
all_records.partner_id = all_records[0].partner_id
|
||||
self.env.invalidate_all()
|
||||
|
||||
old_compute_display_name = self.registry['res.partner']._compute_display_name
|
||||
|
||||
with patch.object(self.registry['res.partner'], '_compute_display_name', side_effect=old_compute_display_name, autospec=True) as compute_display_name_spy:
|
||||
model.read_group([], ['__count'], ['partner_id', 'value'], lazy=False)
|
||||
compute_display_name_spy.assert_called_once()
|
||||
self.assertEqual(compute_display_name_spy.call_args.args[0].id, all_records[0].partner_id.id)
|
||||
|
||||
|
||||
@tagged('bacon_and_eggs')
|
||||
class TestIrPropertyOptimizations(TransactionCase):
|
||||
|
||||
+2
-2
@@ -2471,8 +2471,8 @@ class BaseModel(metaclass=MetaModel):
|
||||
or a string 'field:granularity'. Right now, the only supported granularities
|
||||
are 'day', 'week', 'month', 'quarter' or 'year', and they only make sense for
|
||||
date/datetime fields.
|
||||
:param int offset: optional number of records to skip
|
||||
:param int limit: optional max number of records to return
|
||||
:param int offset: optional number of groups to skip
|
||||
:param int limit: optional max number of groups to return
|
||||
:param str orderby: optional ``order by`` specification, for
|
||||
overriding the natural sort ordering of the
|
||||
groups, see also :py:meth:`~osv.osv.osv.search`
|
||||
|
||||
Reference in New Issue
Block a user