Files
odoo_source/addons/crm/tests/test_digest.py
T
std-odoo df9e9ec261 [IMP] digest, *: compute the KPI in batch
*: account, crm, hr_recruitement, im_livechat, point_of_sale,
   project, sale_management, website_sale

Purpose
=======
Now, the KPI are computed based on their `company_id` and not based
on the current company. If no company is set on the digest, we compute
it based on the current company.

The KPIs are computed based on their company. Most of the time, they
will all belong to the same company so we can improve the performance
by computing them in batch.

Task-2827996
See odoo/enterprise/pull/27658

Part-of: odoo/odoo#91945
2023-04-05 15:11:06 +02:00

56 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, timedelta
from odoo.addons.digest.tests.common import TestDigestCommon
from odoo.tools import mute_logger
class TestCrmDigest(TestDigestCommon):
@classmethod
@mute_logger('odoo.models.unlink')
def setUpClass(cls):
super().setUpClass()
cls.env['crm.lead'].search([]).unlink()
cls.env['crm.lead'].create([{
'name': 'Lead 1',
'company_id': cls.company_1.id,
'probability': 100,
'type': 'opportunity',
'date_closed': datetime.now(),
}, {
'name': 'Lead 2',
'company_id': cls.company_1.id,
'probability': 90,
'type': 'opportunity',
'date_closed': datetime.now(),
}, {
'name': 'Lead 3',
'company_id': False,
'probability': 100,
'type': 'opportunity',
'date_closed': datetime.now(),
}, {
'name': 'Lead 4',
'company_id': cls.company_1.id,
'probability': 100,
'type': 'opportunity',
'date_closed': datetime.now() - timedelta(days=700),
}])
def test_kpi_crm_lead_created_value(self):
self.assertEqual(self.digest_1.kpi_crm_lead_created_value, 3)
self.assertEqual(self.digest_2.kpi_crm_lead_created_value, 0,
msg='This digest is in a different company')
self.assertEqual(self.digest_3.kpi_crm_lead_created_value, 3,
msg='This digest has no company, should take the current one')
self.digest_3.invalidate_recordset()
self.assertEqual(
self.digest_3.with_company(self.company_2).kpi_crm_lead_created_value,
0,
)