[REF] crm: tests: make tests independent from mail

Purpose is to be able to move mail tests in a separate module without
breaking other tests. It seems dependency is not real, only some data
to add. It is better to have self contained tests anyway.
This commit is contained in:
Thibault Delavallée
2017-11-21 14:59:15 +01:00
parent 55edc1c2f3
commit 5a2d789d1a
2 changed files with 17 additions and 35 deletions
+1 -25
View File
@@ -2,31 +2,6 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests.common import TransactionCase
from odoo.addons.mail.tests.common import BaseFunctionalTest
class TestCrm(BaseFunctionalTest):
@classmethod
def setUpClass(cls):
super(TestCrm, cls).setUpClass()
user_group_employee = cls.env.ref('base.group_user')
user_group_salesman_all = cls.env.ref('sales_team.group_sale_salesman_all_leads')
# Test users to use through the various tests
Users = cls.env['res.users'].with_context({'no_reset_password': True, 'mail_create_nosubscribe': True})
cls.user_salesman_all = Users.create({
'name': 'Riton La Chignole',
'login': 'riton',
'email': 'riton.salesman_all@example.com',
'notification_type': 'inbox',
'groups_id': [(6, 0, [user_group_employee.id, user_group_salesman_all.id])]
})
cls.sales_team_1 = cls.env['crm.team'].create({
'name': 'Test Sales Channel',
'alias_name': 'test_sales_team',
})
class TestCrmCases(TransactionCase):
@@ -49,5 +24,6 @@ class TestCrmCases(TransactionCase):
'name': "Crm Salesman",
'login': "csu",
'email': "crmuser@yourcompany.com",
'notification_type': 'inbox',
'groups_id': [(6, 0, [self.env.ref('sales_team.group_sale_salesman_all_leads').id, self.env.ref('base.group_partner_manager').id])]
})
+16 -10
View File
@@ -1,18 +1,24 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from .common import TestCrm
from .common import TestCrmCases
class NewLeadNotification(TestCrm):
class NewLeadNotification(TestCrmCases):
def test_new_lead_notification(self):
""" Test newly create leads like from the website. People and channels
subscribed to the sales channel shoud be notified. """
# subscribe a partner and a channel to the sales channel with new lead subtype
channel_listen = self.env['mail.channel'].create({'name': 'Listener'})
sales_team_1 = self.env['crm.team'].create({
'name': 'Test Sales Channel',
'alias_name': 'test_sales_team',
})
subtype = self.env.ref("crm.mt_salesteam_lead")
self.sales_team_1.message_subscribe(partner_ids=[self.user_salesman_all.partner_id.id], subtype_ids=[subtype.id])
self.sales_team_1.message_subscribe(channel_ids=[self.channel_listen.id], subtype_ids=[subtype.id])
sales_team_1.message_subscribe(partner_ids=[self.crm_salesman.partner_id.id], subtype_ids=[subtype.id])
sales_team_1.message_subscribe(channel_ids=[channel_listen.id], subtype_ids=[subtype.id])
# Imitate what happens in the controller when somebody creates a new
# lead from the website form
@@ -22,17 +28,17 @@ class NewLeadNotification(TestCrm):
"email_from": "somemail@example.com",
"name": "Some subject",
"partner_name": "Some company",
"team_id": self.sales_team_1.id,
"team_id": sales_team_1.id,
"phone": "+0000000000"
})
# partner and channel should be auto subscribed
self.assertIn(self.user_salesman_all.partner_id, lead.message_partner_ids)
self.assertIn(self.channel_listen, lead.message_channel_ids)
self.assertIn(self.crm_salesman.partner_id, lead.message_partner_ids)
self.assertIn(channel_listen, lead.message_channel_ids)
msg = lead.message_ids[0]
self.assertIn(self.user_salesman_all.partner_id, msg.needaction_partner_ids)
self.assertIn(self.channel_listen, msg.channel_ids)
self.assertIn(self.crm_salesman.partner_id, msg.needaction_partner_ids)
self.assertIn(channel_listen, msg.channel_ids)
# The user should have a new unread message
lead_user = lead.sudo(self.user_salesman_all)
lead_user = lead.sudo(self.crm_salesman)
self.assertTrue(lead_user.message_needaction)