summaryrefslogtreecommitdiff
path: root/odoo/addons/base/tests/test_base.py
diff options
context:
space:
mode:
authorWilliam Henrotin <whe@odoo.com>2018-02-15 13:45:08 +0100
committerThibault Delavallée <tde@odoo.com>2018-05-28 14:43:06 +0200
commitc9735c75d61e6792ae32d64a35122dc4664f7cf4 (patch)
treebd49015fe27ff94e40cfd5f4f95ede93fb02dbc3 /odoo/addons/base/tests/test_base.py
parentd9c035ae428cb8f57e2bb570aa23c41d6ae00bd4 (diff)
[IMP] base: prevent to archive users linked to active partners.
An active user could not see messages in its inbox if his partner is archived. With this commit, we cannot archiving a partner linked to an active user anymore. In the opposite way: -if we deactivate a user, warning message is given saying the related partner will stay active. A link to the related partner is also given if we really need to archive it; -if we activate a user, the related partner will be set as active; This commit is linked to task ID 46158. Closes #24628.
Diffstat (limited to 'odoo/addons/base/tests/test_base.py')
-rw-r--r--odoo/addons/base/tests/test_base.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/odoo/addons/base/tests/test_base.py b/odoo/addons/base/tests/test_base.py
index 5b8955828c0..69b9bbdeb8f 100644
--- a/odoo/addons/base/tests/test_base.py
+++ b/odoo/addons/base/tests/test_base.py
@@ -396,6 +396,27 @@ class TestBase(TransactionCase):
self.assertEqual([2, 4], [g['title_count'] for g in groups_data], 'Incorrect number of results')
self.assertEqual([-1, 10], [g['color'] for g in groups_data], 'Incorrect aggregation of int column')
+ def test_70_archive_internal_partners(self):
+ test_partner = self.env['res.partner'].create({'name':'test partner'})
+ test_user = self.env['res.users'].create({
+ 'login': 'test@odoo.com',
+ 'partner_id': test_partner.id,
+ })
+ # Cannot archive the partner
+ with self.assertRaises(ValidationError):
+ test_partner.toggle_active()
+
+ # Can archive the user but the partner stays active
+ test_user.toggle_active()
+ self.assertTrue(test_partner.active, 'Parter related to user should remain active')
+
+ # Now we can archive the partner
+ test_partner.toggle_active()
+
+ # Activate the user should reactivate the partner
+ test_user.toggle_active()
+ self.assertTrue(test_partner.active, 'Activating user must active related partner')
+
class TestPartnerRecursion(TransactionCase):