diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/calendar/tests/test_attendees.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/calendar/tests/test_attendees.py')
| -rw-r--r-- | addons/calendar/tests/test_attendees.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/addons/calendar/tests/test_attendees.py b/addons/calendar/tests/test_attendees.py new file mode 100644 index 00000000..7b3389b7 --- /dev/null +++ b/addons/calendar/tests/test_attendees.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from datetime import datetime + +from odoo.tests.common import SavepointCase, new_test_user + + +class TestEventNotifications(SavepointCase): + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.event = cls.env['calendar.event'].create({ + 'name': "Doom's day", + 'start': datetime(2019, 10, 25, 8, 0), + 'stop': datetime(2019, 10, 27, 18, 0), + }).with_context(mail_notrack=True) + cls.user = new_test_user(cls.env, 'xav', email='em@il.com', notification_type='inbox') + cls.partner = cls.user.partner_id + + def test_attendee_added(self): + self.event.partner_ids = self.partner + self.assertTrue(self.event.attendee_ids, "It should have created an attendee") + self.assertEqual(self.event.attendee_ids.partner_id, self.partner, "It should be linked to the partner") + self.assertIn(self.partner, self.event.message_follower_ids.partner_id, "He should be follower of the event") + + def test_attendee_added_create(self): + event = self.env['calendar.event'].create({ + 'name': "Doom's day", + 'start': datetime(2019, 10, 25, 8, 0), + 'stop': datetime(2019, 10, 27, 18, 0), + 'partner_ids': [(4, self.partner.id)], + }) + self.assertTrue(event.attendee_ids, "It should have created an attendee") + self.assertEqual(event.attendee_ids.partner_id, self.partner, "It should be linked to the partner") + self.assertIn(self.partner, event.message_follower_ids.partner_id, "He should be follower of the event") + + def test_attendee_added_multi(self): + event = self.env['calendar.event'].create({ + 'name': "Doom's day", + 'start': datetime(2019, 10, 25, 8, 0), + 'stop': datetime(2019, 10, 27, 18, 0), + }) + events = self.event | event + events.partner_ids = self.partner + self.assertEqual(len(events.attendee_ids), 2, "It should have created one attendee per event") + + def test_existing_attendee_added(self): + self.event.partner_ids = self.partner + attendee = self.event.attendee_ids + self.event.write({'partner_ids': [(4, self.partner.id)]}) # Add existing partner + self.assertEqual(self.event.attendee_ids, attendee, "It should not have created an new attendee record") + + def test_attendee_add_self(self): + self.event.with_user(self.user).partner_ids = self.partner + self.assertTrue(self.event.attendee_ids, "It should have created an attendee") + self.assertEqual(self.event.attendee_ids.partner_id, self.partner, "It should be linked to the partner") + self.assertEqual(self.event.attendee_ids.state, 'accepted', "It should be accepted for the current user") + + def test_attendee_removed(self): + partner_bis = self.env['res.partner'].create({'name': "Xavier"}) + self.event.partner_ids = partner_bis + attendee = self.event.attendee_ids + self.event.partner_ids |= self.partner + self.event.partner_ids -= self.partner + self.assertEqual(attendee, self.event.attendee_ids, "It should not have re-created an attendee record") + self.assertNotIn(self.partner, self.event.attendee_ids.partner_id, "It should have removed the attendee") + self.assertNotIn(self.partner, self.event.message_follower_ids.partner_id, "It should have unsubscribed the partner") + self.assertIn(partner_bis, self.event.attendee_ids.partner_id, "It should have left the attendee") |
