77 lines
3.4 KiB
Python
77 lines
3.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.mail.tests.common import mail_new_test_user
|
|
from odoo.addons.test_mail_full.tests.common import TestMailFullCommon
|
|
|
|
|
|
class TestResUsers(TestMailFullCommon):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(TestResUsers, cls).setUpClass()
|
|
cls.portal_user = mail_new_test_user(
|
|
cls.env,
|
|
login='portal_user',
|
|
mobile='+32 494 12 34 56',
|
|
phone='+32 494 12 34 89',
|
|
password='password',
|
|
name='Portal User',
|
|
email='portal@test.example.com',
|
|
groups='base.group_portal',
|
|
)
|
|
|
|
cls.portal_user_2 = mail_new_test_user(
|
|
cls.env,
|
|
login='portal_user_2',
|
|
mobile='+32 494 12 34 22',
|
|
phone='invalid phone',
|
|
password='password',
|
|
name='Portal User 2',
|
|
email='portal_2@test.example.com',
|
|
groups='base.group_portal',
|
|
)
|
|
|
|
# Remove existing blacklisted email / phone (they will be sanitized, so we avoid to sanitize them here)
|
|
cls.env['mail.blacklist'].search([]).unlink()
|
|
cls.env['phone.blacklist'].search([]).unlink()
|
|
|
|
def test_deactivate_portal_users_blacklist(self):
|
|
"""Test that the email and the phone are blacklisted
|
|
when a portal user deactivate his own account.
|
|
"""
|
|
(self.portal_user | self.portal_user_2)._deactivate_portal_user(request_blacklist=True)
|
|
|
|
self.assertFalse(self.portal_user.active, 'Should have archived the user')
|
|
self.assertFalse(self.portal_user.partner_id.active, 'Should have archived the partner')
|
|
self.assertFalse(self.portal_user_2.active, 'Should have archived the user')
|
|
self.assertFalse(self.portal_user_2.partner_id.active, 'Should have archived the partner')
|
|
|
|
blacklist = self.env['mail.blacklist'].search([
|
|
('email', 'in', ('portal@test.example.com', 'portal_2@test.example.com')),
|
|
])
|
|
self.assertEqual(len(blacklist), 2, 'Should have blacklisted the users email')
|
|
|
|
blacklists = self.env['phone.blacklist'].search([
|
|
('number', 'in', ('+32494123489', '+32494123456', '+32494123422')),
|
|
])
|
|
self.assertEqual(len(blacklists), 3, 'Should have blacklisted the user phone and mobile')
|
|
|
|
blacklist = self.env['phone.blacklist'].search([('number', '=', 'invalid phone')])
|
|
self.assertFalse(blacklist, 'Should have skipped invalid phone')
|
|
|
|
def test_deactivate_portal_users_no_blacklist(self):
|
|
"""Test the case when the user do not want to blacklist his email / phone."""
|
|
(self.portal_user | self.portal_user_2)._deactivate_portal_user(request_blacklist=False)
|
|
|
|
self.assertFalse(self.portal_user.active, 'Should have archived the user')
|
|
self.assertFalse(self.portal_user.partner_id.active, 'Should have archived the partner')
|
|
self.assertFalse(self.portal_user_2.active, 'Should have archived the user')
|
|
self.assertFalse(self.portal_user_2.partner_id.active, 'Should have archived the partner')
|
|
|
|
blacklists = self.env['mail.blacklist'].search([])
|
|
self.assertFalse(blacklists, 'Should not have blacklisted the users email')
|
|
|
|
blacklists = self.env['phone.blacklist'].search([])
|
|
self.assertFalse(blacklists, 'Should not have blacklisted the user phone and mobile')
|