website_event_crm/tests/test_visitor_propagation.py

45 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests.common import users
from odoo.addons.event_crm.tests.common import TestEventCrmCommon
class TestWebsiteEventCrmFlow(TestEventCrmCommon):
@users('user_eventregistrationdesk')
def test_visitor_language_propagation(self):
"""
This test makes sure that visitor and its language are propagated to the lead when a lead is
created through a lead generation rule.
`_run_on_registration`, which creates the lead, is called at `event.registration` creation
and does not need to be called manually.
"""
test_lang_website = self.env['website'].sudo().create({
'name': 'test lang website',
'user_id': self.env.ref('base.user_admin').id,
'language_ids': [self.env.ref('base.lang_en').id, self.env.ref('base.lang_fr').id]
})
test_lang_visitor = self.env['website.visitor'].sudo().create({
'name': 'test visitor language',
'lang_id': self.env.ref('base.lang_en').id,
'access_token': 'f9d2ffa0427d4e4b1d740cf5eb3cdc20',
'website_id': test_lang_website.id,
})
# 3 leads created w/ Lead Generation rules in TestEventCrmCommon: 1 per attendee and 1 per order
test_lang_registration1, test_lang_registration2 = self.env['event.registration'].create([
{
'event_id': self.event_0.id,
'visitor_id': test_lang_visitor.id,
'email': 'test@test.example.com',
},
{
'event_id': self.event_0.id,
'visitor_id': test_lang_visitor.id,
'email': 'test2@test.example.com',
},
])
leads = test_lang_registration1.lead_ids | test_lang_registration2.lead_ids
self.assertEqual(leads.visitor_ids, test_lang_visitor)
self.assertEqual(leads.lang_id, test_lang_visitor.lang_id)