Changeset View
Changeset View
Standalone View
Standalone View
tests/unit/test-003-event.py
Show First 20 Lines • Show All 454 Lines • ▼ Show 20 Line(s) | |||||
self.event.delegate("jane@doe.org", "john@doe.org") | self.event.delegate("jane@doe.org", "john@doe.org") | ||||
self.assertEqual(len(self.event.get_attendee("jane@doe.org").get_delegated_to()), 2) | self.assertEqual(len(self.event.get_attendee("jane@doe.org").get_delegated_to()), 2) | ||||
def test_015_timezone(self): | def test_015_timezone(self): | ||||
_tz = self.event.get_start() | _tz = self.event.get_start() | ||||
self.assertIsInstance(_tz.tzinfo, datetime.tzinfo) | self.assertIsInstance(_tz.tzinfo, datetime.tzinfo) | ||||
def test_016_start_with_timezone(self): | def test_016_start_with_timezone(self): | ||||
_start = datetime.datetime(2012, 05, 23, 11, 58, 00, tzinfo=pytz.timezone("Europe/Zurich")) | _start = datetime.datetime(2012, 5, 23, 11, 58, 00, tzinfo=pytz.timezone("Europe/Zurich")) | ||||
_start_utc = _start.astimezone(pytz.utc) | _start_utc = _start.astimezone(pytz.utc) | ||||
# self.assertEqual(_start.__str__(), "2012-05-23 11:58:00+01:00") | # self.assertEqual(_start.__str__(), "2012-05-23 11:58:00+01:00") | ||||
# self.assertEqual(_start_utc.__str__(), "2012-05-23 10:58:00+00:00") | # self.assertEqual(_start_utc.__str__(), "2012-05-23 10:58:00+00:00") | ||||
self.event.set_start(_start) | self.event.set_start(_start) | ||||
self.assertIsInstance(_start.tzinfo, datetime.tzinfo) | self.assertIsInstance(_start.tzinfo, datetime.tzinfo) | ||||
self.assertEqual(_start.tzinfo, pytz.timezone("Europe/Zurich")) | self.assertEqual(_start.tzinfo, pytz.timezone("Europe/Zurich")) | ||||
def test_017_allday_without_timezone(self): | def test_017_allday_without_timezone(self): | ||||
_start = datetime.date(2012, 05, 23) | _start = datetime.date(2012, 5, 23) | ||||
self.assertEqual(_start.__str__(), "2012-05-23") | self.assertEqual(_start.__str__(), "2012-05-23") | ||||
self.event.set_start(_start) | self.event.set_start(_start) | ||||
self.assertEqual(hasattr(_start, 'tzinfo'), False) | self.assertEqual(hasattr(_start, 'tzinfo'), False) | ||||
self.assertEqual(self.event.get_start().__str__(), "2012-05-23") | self.assertEqual(self.event.get_start().__str__(), "2012-05-23") | ||||
def test_018_load_from_ical(self): | def test_018_load_from_ical(self): | ||||
ical_str = """BEGIN:VCALENDAR | ical_str = """BEGIN:VCALENDAR | ||||
VERSION:2.0 | VERSION:2.0 | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Line(s) | |||||
event = event_from_ical(ical) | event = event_from_ical(ical) | ||||
self.assertEqual(str(event.get_start()), "2014-08-23") | self.assertEqual(str(event.get_start()), "2014-08-23") | ||||
self.assertEqual(str(event.get_end()), "2014-08-23") | self.assertEqual(str(event.get_end()), "2014-08-23") | ||||
self.assertEqual(str(event.get_ical_dtend()), "2014-08-24") | self.assertEqual(str(event.get_ical_dtend()), "2014-08-24") | ||||
self.assertTrue(re.match('.*<dtend>\s*<date>2014-08-23</date>', str(event), re.DOTALL)) | self.assertTrue(re.match('.*<dtend>\s*<date>2014-08-23</date>', str(event), re.DOTALL)) | ||||
def test_019_as_string_itip(self): | def test_019_as_string_itip(self): | ||||
self.event.set_summary("test") | self.event.set_summary("test") | ||||
self.event.set_start(datetime.datetime(2014, 05, 23, 11, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | self.event.set_start(datetime.datetime(2014, 5, 23, 11, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
self.event.set_end(datetime.datetime(2014, 05, 23, 12, 30, 00, tzinfo=pytz.timezone("Europe/London"))) | self.event.set_end(datetime.datetime(2014, 5, 23, 12, 30, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
self.event.set_sequence(3) | self.event.set_sequence(3) | ||||
self.event.set_classification('CONFIDENTIAL') | self.event.set_classification('CONFIDENTIAL') | ||||
self.event.add_custom_property('X-Custom', 'check') | self.event.add_custom_property('X-Custom', 'check') | ||||
self.event.set_recurrence_id(datetime.datetime(2014, 05, 23, 11, 0, 0), True) | self.event.set_recurrence_id(datetime.datetime(2014, 5, 23, 11, 0, 0), True) | ||||
rrule = RecurrenceRule() | rrule = RecurrenceRule() | ||||
rrule.set_frequency(kolabformat.RecurrenceRule.Weekly) | rrule.set_frequency(kolabformat.RecurrenceRule.Weekly) | ||||
rrule.set_byday(['2WE', '-1SU']) | rrule.set_byday(['2WE', '-1SU']) | ||||
rrule.setBymonth([2]) | rrule.setBymonth([2]) | ||||
rrule.set_count(10) | rrule.set_count(10) | ||||
rrule.set_until(datetime.datetime(2014, 7, 23, 11, 0, 0, tzinfo=pytz.timezone("Europe/London"))) | rrule.set_until(datetime.datetime(2014, 7, 23, 11, 0, 0, tzinfo=pytz.timezone("Europe/London"))) | ||||
self.event.set_recurrence(rrule) | self.event.set_recurrence(rrule) | ||||
Show All 17 Lines | |||||
self.assertEqual(event['rrule']['BYMONTH'][0], 2) | self.assertEqual(event['rrule']['BYMONTH'][0], 2) | ||||
self.assertEqual(event['rrule']['BYDAY'], ['2WE', '-1SU']) | self.assertEqual(event['rrule']['BYDAY'], ['2WE', '-1SU']) | ||||
self.assertIsInstance(event['rrule']['UNTIL'][0], datetime.datetime) | self.assertIsInstance(event['rrule']['UNTIL'][0], datetime.datetime) | ||||
self.assertEquals(event['rrule']['UNTIL'][0].tzinfo, pytz.utc) | self.assertEquals(event['rrule']['UNTIL'][0].tzinfo, pytz.utc) | ||||
def test_019_to_message_itip(self): | def test_019_to_message_itip(self): | ||||
self.event = Event() | self.event = Event() | ||||
self.event.set_summary("test") | self.event.set_summary("test") | ||||
self.event.set_start(datetime.datetime(2014, 05, 23, 11, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | self.event.set_start(datetime.datetime(2014, 5, 23, 11, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
self.event.set_end(datetime.datetime(2014, 05, 23, 12, 30, 00, tzinfo=pytz.timezone("Europe/London"))) | self.event.set_end(datetime.datetime(2014, 5, 23, 12, 30, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
self.event.set_organizer("me@kolab.org") | self.event.set_organizer("me@kolab.org") | ||||
self.event.add_attendee("john@doe.org") | self.event.add_attendee("john@doe.org") | ||||
self.event.add_attendee("jane@doe.org") | self.event.add_attendee("jane@doe.org") | ||||
message = self.event.to_message_itip("john@doe.org", method="REPLY", participant_status="ACCEPTED") | message = self.event.to_message_itip("john@doe.org", method="REPLY", participant_status="ACCEPTED") | ||||
itip_event = None | itip_event = None | ||||
for part in message.walk(): | for part in message.walk(): | ||||
if part.get_content_type() == "text/calendar": | if part.get_content_type() == "text/calendar": | ||||
▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Line(s) | |||||
inst3 = self.event.get_instance(datetime.date(2015, 1, 3)) | inst3 = self.event.get_instance(datetime.date(2015, 1, 3)) | ||||
self.assertEqual(inst3.get_start(), datetime.date(2015, 1, 3)) | self.assertEqual(inst3.get_start(), datetime.date(2015, 1, 3)) | ||||
inst5 = self.event.get_instance(exdate) | inst5 = self.event.get_instance(exdate) | ||||
self.assertEqual(inst5.get_status(True), 'CANCELLED') | self.assertEqual(inst5.get_status(True), 'CANCELLED') | ||||
def test_021_ical_exceptions(self): | def test_021_ical_exceptions(self): | ||||
self.event.set_summary("test") | self.event.set_summary("test") | ||||
self.event.set_start(datetime.datetime(2014, 05, 23, 11, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | self.event.set_start(datetime.datetime(2014, 5, 23, 11, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
self.event.set_end(datetime.datetime(2014, 05, 23, 12, 30, 00, tzinfo=pytz.timezone("Europe/London"))) | self.event.set_end(datetime.datetime(2014, 5, 23, 12, 30, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
rrule = kolabformat.RecurrenceRule() | rrule = kolabformat.RecurrenceRule() | ||||
rrule.setFrequency(kolabformat.RecurrenceRule.Weekly) | rrule.setFrequency(kolabformat.RecurrenceRule.Weekly) | ||||
self.event.set_recurrence(rrule) | self.event.set_recurrence(rrule) | ||||
xmlexception = Event(from_string=str(self.event)) | xmlexception = Event(from_string=str(self.event)) | ||||
xmlexception.set_start(datetime.datetime(2014, 05, 30, 14, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | xmlexception.set_start(datetime.datetime(2014, 5, 30, 14, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
xmlexception.set_end(datetime.datetime(2014, 05, 30, 16, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | xmlexception.set_end(datetime.datetime(2014, 5, 30, 16, 00, 00, tzinfo=pytz.timezone("Europe/London"))) | ||||
xmlexception.set_recurrence_id(datetime.datetime(2014, 05, 30, 11, 0, 0), False) | xmlexception.set_recurrence_id(datetime.datetime(2014, 5, 30, 11, 0, 0), False) | ||||
self.event.add_exception(xmlexception) | self.event.add_exception(xmlexception) | ||||
ical = icalendar.Calendar.from_ical(self.event.as_string_itip()) | ical = icalendar.Calendar.from_ical(self.event.as_string_itip()) | ||||
vevents = ical.walk('VEVENT') | vevents = ical.walk('VEVENT') | ||||
event = vevents[0] | event = vevents[0] | ||||
exception = vevents[1] | exception = vevents[1] | ||||
self.assertEqual(event['uid'], self.event.get_uid()) | self.assertEqual(event['uid'], self.event.get_uid()) | ||||
▲ Show 20 Lines • Show All 271 Lines • Show Last 20 Lines |