diff --git a/addons/test_mass_mailing/__init__.py b/addons/test_mass_mailing/__init__.py new file mode 100644 index 00000000000..dc5e6b693d1 --- /dev/null +++ b/addons/test_mass_mailing/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/addons/test_mass_mailing/__manifest__.py b/addons/test_mass_mailing/__manifest__.py new file mode 100644 index 00000000000..8bac3f103f5 --- /dev/null +++ b/addons/test_mass_mailing/__manifest__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +{ + 'name': 'Mass Mail Tests', + 'version': '1.0', + 'category': 'Hidden', + 'sequence': 8765, + 'summary': 'Mass Mail Tests: feature and performance tests for mass mailing', + 'description': """This module contains tests related to mass mailing. Those +are contained in a separate module to use specific test models defined in +test_mail. """, + 'depends': ['test_mail', 'mass_mailing'], + 'data': [ + 'security/ir.model.access.csv', + ], + 'demo': [ + ], + 'installable': True, + 'application': False, +} diff --git a/addons/test_mass_mailing/models/__init__.py b/addons/test_mass_mailing/models/__init__.py new file mode 100644 index 00000000000..ab1b44a2dea --- /dev/null +++ b/addons/test_mass_mailing/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import mass_mail_test diff --git a/addons/test_mass_mailing/models/mass_mail_test.py b/addons/test_mass_mailing/models/mass_mail_test.py new file mode 100644 index 00000000000..87e72497399 --- /dev/null +++ b/addons/test_mass_mailing/models/mass_mail_test.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class MassMailTest(models.Model): + """ A very simple model only inheriting from mail.thread to test pure mass + mailing features and base performances. """ + _description = 'Simple Mass Mailing Model' + _name = 'mass.mail.test' + _inherit = ['mail.thread'] + + name = fields.Char() + email_from = fields.Char() + + +class MassMailTestBlacklist(models.Model): + """ Model using blacklist mechanism for mass mailing. """ + _description = 'Mass Mailing Model w Blacklist' + _name = 'mass.mail.test.bl' + _inherit = ['mail.thread', 'mail.blacklist.mixin'] + + _primary_email = ['email_from'] # blacklist field to check + + name = fields.Char() + email_from = fields.Char() + user_id = fields.Many2one( + 'res.users', 'Responsible', + track_visibility='onchange') + umbrella_id = fields.Many2one( + 'mail.test', 'Meta Umbrella Record', + track_visibility='onchange') diff --git a/addons/test_mass_mailing/security/ir.model.access.csv b/addons/test_mass_mailing/security/ir.model.access.csv new file mode 100644 index 00000000000..9383184cb02 --- /dev/null +++ b/addons/test_mass_mailing/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_mass_mail_test_all,mass.mail.test.all,model_mass_mail_test,,0,0,0,0 +access_mass_mail_test_user,mass.mail.test.user,model_mass_mail_test,base.group_user,1,1,1,1 +access_mass_mail_test_bl_all,mass.mail.test.bl.all,model_mass_mail_test_bl,,0,0,0,0 +access_mass_mail_test_bl_user,mass.mail.test.bl.user,model_mass_mail_test_bl,base.group_user,1,1,1,1 diff --git a/addons/test_mass_mailing/tests/__init__.py b/addons/test_mass_mailing/tests/__init__.py new file mode 100644 index 00000000000..67dee8c60db --- /dev/null +++ b/addons/test_mass_mailing/tests/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. diff --git a/addons/test_mass_mailing/tests/common.py b/addons/test_mass_mailing/tests/common.py new file mode 100644 index 00000000000..88a4ceb0735 --- /dev/null +++ b/addons/test_mass_mailing/tests/common.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.addons.test_mail.tests import common +from odoo.tests import tagged + + +@tagged('mass_mail') +class MassMailingCase(common.MockEmails, common.BaseFunctionalTest): + + @classmethod + def setUpClass(cls): + super(MassMailingCase, cls).setUpClass() + + # be sure for some common data + cls.user_employee.write({ + 'login': 'emp', + }) + + cls.user_marketing = cls.env['res.users'].with_context(cls._quick_create_user_ctx).create({ + 'name': 'Ernest Employee', + 'login': 'marketing', + 'email': 'e.e@example.com', + 'signature': '--\nErnest', + 'notification_type': 'email', + 'groups_id': [ + (6, 0, [cls.env.ref('base.group_user').id]), + (6, 0, [cls.env.ref('mass_mailing.group_mass_mailing_user').id]) + ], + })