From 85172efa17510592709d23977797d9ed4382ac43 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sat, 7 Apr 2018 16:04:04 +0300 Subject: [PATCH] add converter tests --- tests/test_converter.py | 126 ++++++++++++++++++++++++++++++++++++++-- tests/test_imports.py | 22 +++---- 2 files changed, 130 insertions(+), 18 deletions(-) diff --git a/tests/test_converter.py b/tests/test_converter.py index 6404749..ff31d26 100644 --- a/tests/test_converter.py +++ b/tests/test_converter.py @@ -10,15 +10,66 @@ END:VCALENDAR """ ics_empty_event = """BEGIN:VCALENDAR -VERSION:2.0 -PRODID:-//test//test//ES -CALSCALE:GREGORIAN -METHOD:PUBLISH BEGIN:VEVENT END:VEVENT END:VCALENDAR """ +ics_event_no_end = """BEGIN:VCALENDAR +BEGIN:VEVENT +UID:uisgtr8tre93wewe0yr8wqy@test.com +DTSTART;VALUE=DATE:20180215 +END:VEVENT +END:VCALENDAR +""" + +ics_event_date_val = """BEGIN:VCALENDAR +BEGIN:VEVENT +UID:uisgtr8tre93wewe0yr8wqy@test.com +DTSTART;VALUE=DATE:20180215 +DTEND;VALUE=DATE:20180217 +END:VEVENT +END:VCALENDAR +""" + +ics_event_datetime_utc_val = """BEGIN:VCALENDAR +BEGIN:VEVENT +UID:uisgtr8tre93wewe0yr8wqy@test.com +DTSTART;VALUE=DATE-TIME:20180319T092001Z +DTEND:20180319T102001Z +END:VEVENT +END:VCALENDAR +""" + +ics_event_date_duration = """BEGIN:VCALENDAR +BEGIN:VEVENT +UID:uisgtr8tre93wewe0yr8wqy@test.com +DTSTART;VALUE=DATE:20180215 +DURATION:P3D +END:VEVENT +END:VCALENDAR +""" + +ics_event_datetime_utc_duration = """BEGIN:VCALENDAR +BEGIN:VEVENT +UID:uisgtr8tre93wewe0yr8wqy@test.com +DTSTART;VALUE=DATE-TIME:20180319T092001Z +DURATION:P2DT1H5M +END:VEVENT +END:VCALENDAR +""" + +ics_event_created_updated = """BEGIN:VCALENDAR +BEGIN:VEVENT +UID:uisgtr8tre93wewe0yr8wqy@test.com +DTSTART:20180215 +DTEND:20180217 +CREATED:20180320T071155Z +LAST-MODIFIED:20180326T120235Z +END:VEVENT +END:VCALENDAR +""" + class TestCalendarConverter(unittest.TestCase): def test_empty_calendar(self): converter = CalendarConverter() @@ -31,6 +82,73 @@ class TestCalendarConverter(unittest.TestCase): converter.loads(ics_empty_event) with self.assertRaises(KeyError): converter.events_to_gcal() + + def test_event_no_end(self): + converter = CalendarConverter() + converter.loads(ics_event_no_end) + with self.assertRaises(ValueError): + converter.events_to_gcal() + + def test_event_date_values(self): + converter = CalendarConverter() + converter.loads(ics_event_date_val) + events = converter.events_to_gcal() + self.assertEqual(len(events), 1) + event = events[0] + self.assertEqual(event['start'], { + 'date': '2018-02-15' + }) + self.assertEqual(event['end'], { + 'date': '2018-02-17' + }) + + def test_event_datetime_utc_values(self): + converter = CalendarConverter() + converter.loads(ics_event_datetime_utc_val) + events = converter.events_to_gcal() + self.assertEqual(len(events), 1) + event = events[0] + self.assertEqual(event['start'], { + 'dateTime': '2018-03-19T09:20:01.000001Z' + }) + self.assertEqual(event['end'], { + 'dateTime': '2018-03-19T10:20:01.000001Z' + }) + + def test_event_date_duration(self): + converter = CalendarConverter() + converter.loads(ics_event_date_duration) + events = converter.events_to_gcal() + self.assertEqual(len(events), 1) + event = events[0] + self.assertEqual(event['start'], { + 'date': '2018-02-15' + }) + self.assertEqual(event['end'], { + 'date': '2018-02-18' + }) + + def test_event_datetime_utc_duration(self): + converter = CalendarConverter() + converter.loads(ics_event_datetime_utc_duration) + events = converter.events_to_gcal() + self.assertEqual(len(events), 1) + event = events[0] + self.assertEqual(event['start'], { + 'dateTime': '2018-03-19T09:20:01.000001Z' + }) + self.assertEqual(event['end'], { + 'dateTime': '2018-03-21T10:25:01.000001Z' + }) + + def test_event_created_updated(self): + converter = CalendarConverter() + converter.loads(ics_event_created_updated) + events = converter.events_to_gcal() + self.assertEqual(len(events), 1) + event = events[0] + self.assertEqual(event['created'], '2018-03-20T07:11:55.000001Z') + self.assertEqual(event['updated'], '2018-03-26T12:02:35.000001Z') if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/tests/test_imports.py b/tests/test_imports.py index 7a150e1..3bf507a 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -1,20 +1,14 @@ import unittest class TestImports(unittest.TestCase): - def test_import_CalendarConverter(self): - from gcal_sync import CalendarConverter - - def test_import_EventConverter(self): - from gcal_sync import EventConverter - - def test_import_GoogleCalendarService(self): - from gcal_sync import GoogleCalendarService - - def test_import_GoogleCalendar(self): - from gcal_sync import GoogleCalendar - - def test_import_CalendarSync(self): - from gcal_sync import CalendarSync + def test_imports(self): + from gcal_sync import ( + CalendarConverter, + EventConverter, + GoogleCalendarService, + GoogleCalendar, + CalendarSync + ) if __name__ == '__main__': unittest.main() \ No newline at end of file