propagate from branch 'ca.inverse.sogo.1_3_15' (head e290d09c6fe813e82f2e06c1cfcaab7ba2a5b3ac)
to branch 'ca.inverse.sogo' (head 5b71abea869d3dd01b8df42afd8c6631b75ce2db) Monotone-Parent: 5b71abea869d3dd01b8df42afd8c6631b75ce2db Monotone-Parent: e290d09c6fe813e82f2e06c1cfcaab7ba2a5b3ac Monotone-Revision: b2a750dba2c2bf3d145e44d412e5a647e552cf59 Monotone-Author: jraby@inverse.ca Monotone-Date: 2012-04-20T21:33:57 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
commit
73e47a85e4
|
@ -134,6 +134,10 @@ class CalDAVITIPDelegationTest(unittest.TestCase):
|
||||||
"%stest-can-overbook.ics" % self.user_calendar, None)
|
"%stest-can-overbook.ics" % self.user_calendar, None)
|
||||||
self._deleteEvent(self.client,
|
self._deleteEvent(self.client,
|
||||||
"%stest-can-overbook-overlap.ics" % self.user_calendar, None)
|
"%stest-can-overbook-overlap.ics" % self.user_calendar, None)
|
||||||
|
self._deleteEvent(self.client,
|
||||||
|
"%stest-remove-attendee.ics" % self.user_calendar, None)
|
||||||
|
self._deleteEvent(self.client,
|
||||||
|
"%stest-remove-attendee-no-org.ics" % self.user_calendar, None)
|
||||||
|
|
||||||
def _newEvent(self, summary="test event", uid="test", transp=0):
|
def _newEvent(self, summary="test event", uid="test", transp=0):
|
||||||
transparency = ("OPAQUE", "TRANSPARENT")
|
transparency = ("OPAQUE", "TRANSPARENT")
|
||||||
|
@ -238,6 +242,102 @@ class CalDAVITIPDelegationTest(unittest.TestCase):
|
||||||
% (email,
|
% (email,
|
||||||
compared_attendees[email], attendees[email]))
|
compared_attendees[email], attendees[email]))
|
||||||
|
|
||||||
|
def testUninviteAttendee(self):
|
||||||
|
""" Remove attendee after event creation """
|
||||||
|
|
||||||
|
# make sure the event doesn't exist
|
||||||
|
ics_name = "test-remove-attendee.ics"
|
||||||
|
self._deleteEvent(self.client,
|
||||||
|
"%s%s" % (self.user_calendar,ics_name), None)
|
||||||
|
self._deleteEvent(self.client,
|
||||||
|
"%s%s" % (self.attendee1_calendar,ics_name), None)
|
||||||
|
|
||||||
|
# 1. create an event in the organiser's calendar
|
||||||
|
event = self._newEvent(summary="Test uninvite attendee", uid="Test uninvite attendee")
|
||||||
|
organizer = event.vevent.add('organizer')
|
||||||
|
organizer.cn_param = self.user_name
|
||||||
|
organizer.value = self.user_email
|
||||||
|
|
||||||
|
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event)
|
||||||
|
|
||||||
|
# keep a copy around for updates without other attributes
|
||||||
|
noAttendeeEvent = vobject.iCalendar()
|
||||||
|
noAttendeeEvent.copy(event)
|
||||||
|
|
||||||
|
# 2. add an attendee
|
||||||
|
event.add("method").value = "REQUEST"
|
||||||
|
attendee = event.vevent.add('attendee')
|
||||||
|
attendee.cn_param = self.attendee1_name
|
||||||
|
attendee.rsvp_param = "TRUE"
|
||||||
|
attendee.partstat_param = "NEEDS-ACTION"
|
||||||
|
attendee.value = self.attendee1_email
|
||||||
|
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event,
|
||||||
|
exp_status=204)
|
||||||
|
|
||||||
|
# 3. verify that the attendee has the event
|
||||||
|
attendee_event = self._getEvent(self.client, "%s%s" % (self.attendee1_calendar, ics_name))
|
||||||
|
|
||||||
|
# 4. make sure the received event match the original one
|
||||||
|
self.assertEquals(event.vevent.uid, attendee_event.vevent.uid)
|
||||||
|
|
||||||
|
# 5. uninvite the attendee - put the event back without the attendee
|
||||||
|
now = datetime.datetime.now(dateutil.tz.gettz("America/Montreal"))
|
||||||
|
noAttendeeEvent.vevent.last_modified.value = now
|
||||||
|
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), noAttendeeEvent,
|
||||||
|
exp_status=204)
|
||||||
|
|
||||||
|
# 6. verify that the attendee doesn't have the event anymore
|
||||||
|
attendee_event = self._getEvent(self.client, "%s%s" % (self.attendee1_calendar, ics_name), 404)
|
||||||
|
|
||||||
|
def testUninviteAttendeeNoOrganizer(self):
|
||||||
|
""" Remove attendee and organizer after event creation """
|
||||||
|
|
||||||
|
# make sure the event doesn't exist
|
||||||
|
ics_name = "test-remove-attendee-no-org.ics"
|
||||||
|
self._deleteEvent(self.client,
|
||||||
|
"%s%s" % (self.user_calendar,ics_name), None)
|
||||||
|
self._deleteEvent(self.client,
|
||||||
|
"%s%s" % (self.attendee1_calendar,ics_name), None)
|
||||||
|
|
||||||
|
# 1. create an event in the organiser's calendar
|
||||||
|
event = self._newEvent(summary="Test uninvite attendee no org", uid="Test uninvite attendee no org")
|
||||||
|
# keep a copy around for updates without other attributes
|
||||||
|
plainEvent = vobject.iCalendar()
|
||||||
|
plainEvent.copy(event)
|
||||||
|
|
||||||
|
organizer = event.vevent.add('organizer')
|
||||||
|
organizer.cn_param = self.user_name
|
||||||
|
organizer.value = self.user_email
|
||||||
|
|
||||||
|
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event)
|
||||||
|
|
||||||
|
|
||||||
|
# 2. add an attendee
|
||||||
|
event.add("method").value = "REQUEST"
|
||||||
|
attendee = event.vevent.add('attendee')
|
||||||
|
attendee.cn_param = self.attendee1_name
|
||||||
|
attendee.rsvp_param = "TRUE"
|
||||||
|
attendee.partstat_param = "NEEDS-ACTION"
|
||||||
|
attendee.value = self.attendee1_email
|
||||||
|
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event,
|
||||||
|
exp_status=204)
|
||||||
|
|
||||||
|
# 3. verify that the attendee has the event
|
||||||
|
attendee_event = self._getEvent(self.client, "%s%s" % (self.attendee1_calendar, ics_name))
|
||||||
|
|
||||||
|
# 4. make sure the received event match the original one
|
||||||
|
self.assertEquals(event.vevent.uid, attendee_event.vevent.uid)
|
||||||
|
|
||||||
|
# 5. put the event back without attendee or organizer
|
||||||
|
now = datetime.datetime.now(dateutil.tz.gettz("America/Montreal"))
|
||||||
|
plainEvent.vevent.last_modified.value = now
|
||||||
|
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), plainEvent,
|
||||||
|
exp_status=204)
|
||||||
|
|
||||||
|
# 6. verify that the attendee doesn't have the event anymore
|
||||||
|
attendee_event = self._getEvent(self.client, "%s%s" % (self.attendee1_calendar, ics_name), 404)
|
||||||
|
|
||||||
|
|
||||||
def testAddAttendee(self):
|
def testAddAttendee(self):
|
||||||
""" add attendee after event creation """
|
""" add attendee after event creation """
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue