website_crm/tests/test_website_crm.py

56 lines
2.7 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import odoo.tests
@odoo.tests.tagged('post_install', '-at_install')
class TestWebsiteCrm(odoo.tests.HttpCase):
def test_tour(self):
all_utm_campaign = self.env['utm.campaign'].search([])
utm_medium = self.env['utm.medium'].create({'name': 'Medium'})
utm_source = self.env['utm.source'].create({'name': 'Source'})
# change action to create opportunity
self.start_tour(self.env['website'].get_client_action_url('/contactus'), 'website_crm_pre_tour', login='admin')
self.start_tour("/?utm_source=Source&utm_medium=Medium&utm_campaign=New campaign", 'website_crm_tour')
# check result
record = self.env['crm.lead'].search([('description', '=', '### TOUR DATA ###')])
self.assertEqual(len(record), 1)
self.assertEqual(record.contact_name, 'John Smith')
self.assertEqual(record.email_from, 'john@smith.com')
self.assertEqual(record.partner_name, 'Odoo S.A.')
# check UTM records
self.assertEqual(record.source_id, utm_source)
self.assertEqual(record.medium_id, utm_medium)
self.assertNotIn(record.campaign_id, all_utm_campaign, 'Should have created a new campaign')
self.assertEqual(record.campaign_id.name, 'New campaign', 'Name of the "on the fly" created campaign is wrong')
def test_catch_logged_partner_info_tour(self):
self.env.ref('base.partner_admin').write({
'name': 'Mitchell Admin',
'company_name': 'YourCompany',
})
user_login = 'admin'
user_partner = self.env['res.users'].search([('login', '=', user_login)]).partner_id
partner_email = user_partner.email
partner_phone = user_partner.phone
# no edit on prefilled data from logged partner : propagate partner_id on created lead
self.start_tour(self.env['website'].get_client_action_url('/contactus'), 'website_crm_pre_tour', login=user_login)
with odoo.tests.RecordCapturer(self.env['crm.lead'], []) as capt:
self.start_tour("/", "website_crm_catch_logged_partner_info_tour", login=user_login)
self.assertEqual(capt.records.partner_id, user_partner)
# edited contact us partner info : do not propagate partner_id on lead
with odoo.tests.RecordCapturer(self.env['crm.lead'], []) as capt:
self.start_tour("/", "website_crm_tour", login=user_login)
self.assertFalse(capt.records.partner_id)
# check partner has not been changed
self.assertEqual(user_partner.email, partner_email)
self.assertEqual(user_partner.phone, partner_phone)