add converter tests

This commit is contained in:
Dmitry Belyaev 2018-04-07 16:04:04 +03:00
parent 4ebe9a964a
commit 85172efa17
Signed by: b4tman
GPG Key ID: 014E87EC54B77673
2 changed files with 130 additions and 18 deletions

View File

@ -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()

View File

@ -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()