summaryrefslogtreecommitdiff
path: root/addons/calendar/tests/test_attendees.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/calendar/tests/test_attendees.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/calendar/tests/test_attendees.py')
-rw-r--r--addons/calendar/tests/test_attendees.py70
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")