test_lead_enrich.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # -*- coding: utf-8 -*-
  2. # Part of Odoo. See LICENSE file for full copyright and licensing details.
  3. from odoo.addons.crm.tests.common import TestCrmCommon
  4. from odoo.addons.iap.tests.common import MockIAPEnrich
  5. from odoo.tests.common import users
  6. class TestLeadEnrich(TestCrmCommon, MockIAPEnrich):
  7. @classmethod
  8. def setUpClass(cls):
  9. super(TestLeadEnrich, cls).setUpClass()
  10. cls.registry.enter_test_mode(cls.cr)
  11. cls.leads = cls.env['crm.lead']
  12. for x in range(0, 4):
  13. cls.leads += cls.env['crm.lead'].create({
  14. 'name': 'Test %s' % x,
  15. 'email_from': 'test_mail_%s@megaexample.com' % x
  16. })
  17. @classmethod
  18. def tearDownClass(cls):
  19. cls.registry.leave_test_mode()
  20. super().tearDownClass()
  21. @users('user_sales_manager')
  22. def test_enrich_internals(self):
  23. leads = self.env['crm.lead'].browse(self.leads.ids)
  24. leads[0].write({'partner_name': 'Already set', 'email_from': 'test@test1'})
  25. leads.flush_recordset()
  26. with self.mockIAPEnrichGateway(email_data={'test1': {'country_code': 'AU', 'state_code': 'NSW'}}):
  27. leads.iap_enrich()
  28. leads.flush_recordset()
  29. self.assertEqual(leads[0].partner_name, 'Already set')
  30. self.assertEqual(leads[0].country_id, self.env.ref('base.au'))
  31. self.assertEqual(leads[0].state_id, self.env.ref('base.state_au_2'))
  32. for lead in leads[1:]:
  33. self.assertEqual(lead.partner_name, 'Simulator INC')
  34. for lead in leads:
  35. self.assertEqual(lead.street, 'Simulator Street')
  36. # @users('sales_manager')
  37. # def test_enrich_error_credit(self):
  38. # leads = self.env['crm.lead'].browse(self.leads.ids)
  39. # with self.mockIAPEnrichGateway(sim_error='credit'):
  40. # leads.iap_enrich()
  41. @users('user_sales_manager')
  42. def test_enrich_error_jsonrpc_exception(self):
  43. leads = self.env['crm.lead'].browse(self.leads.ids)
  44. with self.mockIAPEnrichGateway(sim_error='jsonrpc_exception'):
  45. leads.iap_enrich()
  46. for lead in leads:
  47. self.assertEqual(lead.street, False)
  48. def test_lead_enrich_auto_setting(self):
  49. cron = self.env.ref('crm_iap_enrich.ir_cron_lead_enrichment')
  50. config = self.env['res.config.settings'].create({
  51. 'lead_enrich_auto': 'manual',
  52. })
  53. config.execute()
  54. self.assertFalse(cron.active)
  55. config.write({'lead_enrich_auto': 'auto'})
  56. config.execute()
  57. self.assertTrue(cron.active)