privacy_lookup/tests/test_privacy_wizard.py

154 lines
6.1 KiB
Python
Raw Permalink Normal View History

# # -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests.common import TransactionCase, tagged
@tagged('post_install', '-at_install', 'privacy')
class TestPrivacyWizard(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.partner = cls.env['res.partner'].create({
'name': 'Rintin Tin',
'email': 'rintin.tin@gmail.com'})
def test_wizard(self):
wizard = self.env['privacy.lookup.wizard'].with_context(
default_email=self.partner.email,
default_name=self.partner.name,
).create({})
# Lookup
wizard.action_lookup()
self.assertEqual(len(wizard.line_ids), 1)
self.assertEqual(wizard.line_ids.res_id, self.partner.id)
self.assertEqual(wizard.line_ids.res_model, self.partner._name)
self.assertFalse(wizard.log_id)
# Archive
wizard.line_ids.is_active = False
wizard.line_ids._onchange_is_active()
self.assertFalse(self.partner.active)
self.assertEqual(wizard.execution_details, 'Archived Contact #%s' % (self.partner.id))
self.assertTrue(wizard.log_id)
self.assertEqual(wizard.log_id.anonymized_name, 'R***** T**')
self.assertEqual(wizard.log_id.anonymized_email, 'r*****.t**@gmail.com')
self.assertEqual(wizard.log_id.execution_details, 'Archived Contact #%s' % (self.partner.id))
self.assertEqual(wizard.log_id.records_description, 'Contact (1): #%s' % (self.partner.id))
# Delete
wizard.line_ids.action_unlink()
self.assertEqual(wizard.execution_details, 'Deleted Contact #%s' % (self.partner.id))
self.assertEqual(wizard.log_id.execution_details, 'Deleted Contact #%s' % (self.partner.id))
def test_wizard_multi_company(self):
# Check that the record is spotted, even if not available on the Reference field
self.env['ir.rule'].create({
'name': 'Multi-Company Rule',
'model_id': self.env.ref('base.model_res_partner').id,
'domain_force': "['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]"
})
company_2 = self.env['res.company'].create({'name': 'Company 2'})
other_partner = self.env['res.partner'].create({
'name': 'Rintin Tin',
'email': 'rintin.tin@gmail.com',
'company_id': company_2.id
})
self.assertNotEqual(self.partner.company_id, other_partner.company_id)
wizard = self.env['privacy.lookup.wizard'].with_context(
default_email=self.partner.email,
default_name=self.partner.name,
).with_user(self.env.ref('base.user_admin')).create({})
# Lookup
wizard.action_lookup()
self.assertEqual(len(wizard.line_ids), 2)
partner_line = wizard.line_ids.filtered(lambda l: l.resource_ref == self.partner)
self.assertTrue(partner_line)
self.assertEqual((wizard.line_ids - partner_line).resource_ref, None)
def test_wizard_direct_reference(self):
bank = self.env['res.bank'].create({
'name': 'ING',
'bic': 'BBRUBEBB',
'email': 'rintin.tin@gmail.com'
})
wizard = self.env['privacy.lookup.wizard'].with_context(
default_email=self.partner.email,
default_name=self.partner.name,
).create({})
# Lookup
wizard.action_lookup()
self.assertEqual(len(wizard.line_ids), 2)
self.assertEqual(wizard.line_ids[0].res_id, self.partner.id)
self.assertEqual(wizard.line_ids[0].res_model, self.partner._name)
self.assertEqual(wizard.line_ids[1].res_id, bank.id)
self.assertEqual(wizard.line_ids[1].res_model, bank._name)
def test_wizard_indirect_reference(self):
self.env.company.partner_id = self.partner
wizard = self.env['privacy.lookup.wizard'].with_context(
default_email=self.partner.email,
default_name=self.partner.name,
).create({})
# Lookup
wizard.action_lookup()
self.assertEqual(len(wizard.line_ids), 2)
self.assertEqual(wizard.line_ids[0].res_id, self.partner.id)
self.assertEqual(wizard.line_ids[0].res_model, self.partner._name)
self.assertEqual(wizard.line_ids[1].res_id, self.env.company.id)
self.assertEqual(wizard.line_ids[1].res_model, self.env.company._name)
def test_wizard_indirect_reference_cascade(self):
# Don't retrieve ondelete cascade records
self.env["res.partner.bank"].create({
'acc_number': '0123-%s' % self.partner.id,
'partner_id': self.partner.id,
'company_id': self.env.company.id
})
wizard = self.env['privacy.lookup.wizard'].with_context(
default_email=self.partner.email,
default_name=self.partner.name,
).create({})
# Lookup
wizard.action_lookup()
self.assertEqual(len(wizard.line_ids), 1)
self.assertEqual(wizard.line_ids[0].res_id, self.partner.id)
self.assertEqual(wizard.line_ids[0].res_model, self.partner._name)
def test_wizard_unique_log(self):
# Check that the log remains unique
self.env['res.partner'].create({
'name': 'Rintin Tin',
'email': 'rintin.tin@gmail.com'})
wizard = self.env['privacy.lookup.wizard'].with_context(
default_email=self.partner.email,
default_name=self.partner.name,
).create({})
# Lookup
wizard.action_lookup()
self.assertEqual(len(wizard.line_ids), 2)
wizard.line_ids[0].is_active = False
wizard.line_ids[0]._onchange_is_active()
wizard.execution_details
self.assertEqual(1, self.env['privacy.log'].search_count([('anonymized_email', '=', 'r*****.t**@gmail.com')]))
wizard.line_ids[1].is_active = False
wizard.line_ids[1]._onchange_is_active()
wizard.execution_details
self.assertEqual(1, self.env['privacy.log'].search_count([('anonymized_email', '=', 'r*****.t**@gmail.com')]))