summaryrefslogtreecommitdiff
path: root/addons/crm/tests
diff options
context:
space:
mode:
authorJérémy Hennecart <jeh@odoo.com>2020-09-23 08:41:02 +0000
committerThibault Delavallée <tde@odoo.com>2020-11-03 16:18:03 +0000
commit304c367445d3b659666a2bd2a11eae97d85e3166 (patch)
tree95c7a182e03330a57619acf11e98a0d1179520d6 /addons/crm/tests
parent4a07594b1831647e4a1e358baa19eb9c713309f7 (diff)
[FIX] crm: correctly recompute dynamic depends when emptying crm.pls_fields config parameter
When we clear the configuration parameter crm.pls_fields unlink method is called. In order to have a correct dynamic compute based on this parameter we need to re-evaluate the depends. This is done by overriding unlink of ir.config_parameter, like already done at create and write. Task-2196200 closes odoo/odoo#61290 X-original-commit: d04cc4df4ec28816aeb6d1d7c7fc0e547fd13fa5 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Diffstat (limited to 'addons/crm/tests')
-rw-r--r--addons/crm/tests/test_crm_pls.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/addons/crm/tests/test_crm_pls.py b/addons/crm/tests/test_crm_pls.py
index b49e8e612d1..24c50111832 100644
--- a/addons/crm/tests/test_crm_pls.py
+++ b/addons/crm/tests/test_crm_pls.py
@@ -351,3 +351,28 @@ class TestCRMPLS(TransactionCase):
self.assertEqual(tools.float_compare(lead_tag_1.automated_probability, 33.69, 2), 0)
self.assertEqual(tools.float_compare(lead_tag_2.automated_probability, 23.51, 2), 0)
self.assertEqual(tools.float_compare(lead_tag_1_2.automated_probability, 28.05, 2), 0)
+
+ # set email_state for each lead and update probabilities
+ leads.filtered(lambda lead: lead.id % 2 == 0).email_state = 'correct'
+ leads.filtered(lambda lead: lead.id % 2 == 1).email_state = 'incorrect'
+ Lead._cron_update_automated_probabilities()
+ leads_with_tags.invalidate_cache()
+
+ self.assertEqual(tools.float_compare(leads[3].automated_probability, 4.21, 2), 0)
+ self.assertEqual(tools.float_compare(leads[8].automated_probability, 0.23, 2), 0)
+
+ # remove all pls fields
+ self.env['ir.config_parameter'].sudo().set_param("crm.pls_fields", False)
+ Lead._cron_update_automated_probabilities()
+ leads_with_tags.invalidate_cache()
+
+ self.assertEqual(tools.float_compare(leads[3].automated_probability, 34.38, 2), 0)
+ self.assertEqual(tools.float_compare(leads[8].automated_probability, 50.0, 2), 0)
+
+ # check if the probabilities are the same with the old param
+ self.env['ir.config_parameter'].sudo().set_param("crm.pls_fields", "country_id,state_id,email_state,phone_state,source_id")
+ Lead._cron_update_automated_probabilities()
+ leads_with_tags.invalidate_cache()
+
+ self.assertEqual(tools.float_compare(leads[3].automated_probability, 4.21, 2), 0)
+ self.assertEqual(tools.float_compare(leads[8].automated_probability, 0.23, 2), 0)