Files
odoo_source/addons/test_mass_mailing/tests/test_mail_channel.py
T
Thibault Delavallée 96fbc1a957 [MOV] (test_)mass_mailing: move not mass-mailing models specific tests
Purpose of this commit is to move tests not completely specific to some
mass mailing models to test_mass_mailing. Purpose is to allow to write
more in-depth tests based on existing ones by using test models instead
of some standard odoo ones.

This commit is linked to task ID 1889703 and PR #27526.
2018-10-18 13:57:02 +00:00

50 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from email.utils import formataddr
from odoo.addons.test_mail.tests import common
class TestChannelPartnersNotification(common.MockEmails):
def _join_channel(self, channel, partners):
for partner in partners:
channel.write({'channel_last_seen_partner_ids': [(0, 0, {'partner_id': partner.id})]})
channel.invalidate_cache()
def test_channel_blacklisted_recipients(self):
""" Posting a message on a channel should send one email to all recipients, except the blacklisted ones """
self.test_channel = self.env['mail.channel'].create({
'name': 'Test',
'description': 'Description',
'alias_name': 'test',
'public': 'public',
})
self.test_partner = self.env['res.partner'].create({
'name': 'Test Partner',
'email': 'test@example.com',
})
self.blacklisted_partner = self.env['res.partner'].create({
'name': 'Blacklisted Partner',
'email': 'test@black.list',
})
# Set Blacklist
self.env['mail.blacklist'].create({
'email': 'test@black.list',
})
self.env['ir.config_parameter'].set_param('mail.catchall.domain', 'schlouby.fr')
self.test_channel.write({'email_send': True})
self._join_channel(self.test_channel, self.test_partner)
self.test_channel.message_post(body="Test", message_type='comment', subtype='mt_comment')
self.assertEqual(len(self._mails), 1, 'Number of mail incorrect. Should be equal to 1.')
for email in self._mails:
self.assertEqual(
set(email['email_to']),
set([formataddr((self.test_partner.name, self.test_partner.email))]),
'email_to incorrect. Should be equal to "%s"' % (
formataddr((self.test_partner.name, self.test_partner.email))))