def test_recurrence_creation(): event = { "created": "2012-10-09T22:35:50.000Z", "creator": { "displayName": "Eben Freeman", "email": "*****@*****.**", "self": True, }, "end": {"dateTime": "2012-10-15T18:00:00-07:00"}, "etag": '"2806773858144000"', "htmlLink": "https://www.google.com/calendar/event?eid=FOO", "iCalUID": "*****@*****.**", "id": "tn7krk4cekt8ag3pk6gapqqbro", "kind": "calendar#event", "organizer": { "displayName": "Eben Freeman", "email": "*****@*****.**", "self": True, }, "attendees": [ { "displayName": "MITOC BOD", "email": "*****@*****.**", "responseStatus": "accepted", }, { "displayName": "Eben Freeman", "email": "*****@*****.**", "responseStatus": "accepted", }, ], "reminders": {"useDefault": True}, "recurrence": [ "RRULE:FREQ=WEEKLY;UNTIL=20150209T075959Z;BYDAY=MO", "EXDATE;TZID=America/Los_Angeles:20150208T010000", ], "sequence": 0, "start": { "dateTime": "2012-10-15T17:00:00-07:00", "timeZone": "America/Los_Angeles", }, "status": "confirmed", "summary": "BOD Meeting", "updated": "2014-06-21T21:42:09.072Z", } event = parse_event_response(event, False) assert isinstance(event, RecurringEvent) assert event.rrule == "RRULE:FREQ=WEEKLY;UNTIL=20150209T075959Z;BYDAY=MO" assert event.exdate == "EXDATE;TZID=America/Los_Angeles:20150208T010000" assert event.until == arrow.get(2015, 2, 9, 7, 59, 59) assert event.start_timezone == "America/Los_Angeles"
def test_override_creation(): event = { "created": "2012-10-09T22:35:50.000Z", "creator": { "displayName": "Eben Freeman", "email": "*****@*****.**", "self": True, }, "end": {"dateTime": "2012-10-22T19:00:00-07:00"}, "etag": '"2806773858144000"', "htmlLink": "https://www.google.com/calendar/event?eid=FOO", "iCalUID": "*****@*****.**", "id": "tn7krk4cekt8ag3pk6gapqqbro_20121022T170000Z", "kind": "calendar#event", "organizer": { "displayName": "Eben Freeman", "email": "*****@*****.**", "self": True, }, "attendees": [ { "displayName": "MITOC BOD", "email": "*****@*****.**", "responseStatus": "accepted", }, { "displayName": "Eben Freeman", "email": "*****@*****.**", "responseStatus": "accepted", }, ], "originalStartTime": { "dateTime": "2012-10-22T17:00:00-07:00", "timeZone": "America/Los_Angeles", }, "recurringEventId": "tn7krk4cekt8ag3pk6gapqqbro", "reminders": {"useDefault": True}, "sequence": 0, "start": { "dateTime": "2012-10-22T18:00:00-07:00", "timeZone": "America/Los_Angeles", }, "status": "confirmed", "summary": "BOD Meeting", "updated": "2014-06-21T21:42:09.072Z", } event = parse_event_response(event, False) assert isinstance(event, RecurringEventOverride) assert event.master_event_uid == "tn7krk4cekt8ag3pk6gapqqbro" assert event.original_start_time == arrow.get(2012, 10, 23, 0, 0, 0)
def test_override_creation(): event = { 'created': '2012-10-09T22:35:50.000Z', 'creator': { 'displayName': 'Eben Freeman', 'email': '*****@*****.**', 'self': True }, 'end': {'dateTime': '2012-10-22T19:00:00-07:00'}, 'etag': '"2806773858144000"', 'htmlLink': 'https://www.google.com/calendar/event?eid=FOO', 'iCalUID': '*****@*****.**', 'id': 'tn7krk4cekt8ag3pk6gapqqbro_20121022T170000Z', 'kind': 'calendar#event', 'organizer': { 'displayName': 'Eben Freeman', 'email': '*****@*****.**', 'self': True }, 'attendees': [ {'displayName': 'MITOC BOD', 'email': '*****@*****.**', 'responseStatus': 'accepted'}, {'displayName': 'Eben Freeman', 'email': '*****@*****.**', 'responseStatus': 'accepted'} ], 'originalStartTime': { 'dateTime': '2012-10-22T17:00:00-07:00', 'timeZone': 'America/Los_Angeles' }, 'recurringEventId': 'tn7krk4cekt8ag3pk6gapqqbro', 'reminders': {'useDefault': True}, 'sequence': 0, 'start': {'dateTime': '2012-10-22T18:00:00-07:00', 'timeZone': 'America/Los_Angeles'}, 'status': 'confirmed', 'summary': 'BOD Meeting', 'updated': '2014-06-21T21:42:09.072Z' } event = parse_event_response(event, False) assert isinstance(event, RecurringEventOverride) assert event.master_event_uid == 'tn7krk4cekt8ag3pk6gapqqbro' assert event.original_start_time == arrow.get(2012, 10, 23, 00, 00, 00)
def test_recurrence_creation(): event = { 'created': '2012-10-09T22:35:50.000Z', 'creator': { 'displayName': 'Eben Freeman', 'email': '*****@*****.**', 'self': True }, 'end': {'dateTime': '2012-10-15T18:00:00-07:00'}, 'etag': '"2806773858144000"', 'htmlLink': 'https://www.google.com/calendar/event?eid=FOO', 'iCalUID': '*****@*****.**', 'id': 'tn7krk4cekt8ag3pk6gapqqbro', 'kind': 'calendar#event', 'organizer': { 'displayName': 'Eben Freeman', 'email': '*****@*****.**', 'self': True }, 'attendees': [ {'displayName': 'MITOC BOD', 'email': '*****@*****.**', 'responseStatus': 'accepted'}, {'displayName': 'Eben Freeman', 'email': '*****@*****.**', 'responseStatus': 'accepted'} ], 'reminders': {'useDefault': True}, 'recurrence': ['RRULE:FREQ=WEEKLY;UNTIL=20150209T075959Z;BYDAY=MO', 'EXDATE;TZID=America/Los_Angeles:20150208T010000'], 'sequence': 0, 'start': {'dateTime': '2012-10-15T17:00:00-07:00', 'timeZone': 'America/Los_Angeles'}, 'status': 'confirmed', 'summary': 'BOD Meeting', 'updated': '2014-06-21T21:42:09.072Z' } event = parse_event_response(event, False) assert isinstance(event, RecurringEvent) assert event.rrule == 'RRULE:FREQ=WEEKLY;UNTIL=20150209T075959Z;BYDAY=MO' assert event.exdate == 'EXDATE;TZID=America/Los_Angeles:20150208T010000' assert event.until == arrow.get(2015, 02, 9, 7, 59, 59) assert event.start_timezone == 'America/Los_Angeles'
def test_handle_offset_all_day_events(): raw_event = { 'created': '2014-01-09T03:33:02.000Z', 'creator': { 'displayName': 'Ben Bitdiddle', 'email': '*****@*****.**', 'self': True }, 'etag': '"2778476764000000"', 'htmlLink': 'https://www.google.com/calendar/event?eid=BAR', 'iCalUID': '*****@*****.**', 'id': '20140615_60o30dr564o30c1g60o30dr4ck', 'kind': 'calendar#event', 'organizer': { 'displayName': 'Ben Bitdiddle', 'email': '*****@*****.**', 'self': True }, 'sequence': 0, 'start': { 'date': '2014-03-15' }, 'end': { u'date': '2014-03-15' }, 'status': 'confirmed', 'summary': 'Ides of March', 'transparency': 'transparent', 'updated': '2014-01-09T03:33:02.000Z', 'visibility': 'public' } expected = Event(uid='20140615_60o30dr564o30c1g60o30dr4ck', title='Ides of March', description=None, read_only=False, busy=False, start=arrow.get(2014, 03, 15), end=arrow.get(2014, 03, 15), all_day=True, owner='Ben Bitdiddle <*****@*****.**>', participants=[]) assert cmp_event_attrs(expected, parse_event_response(raw_event))
def test_handle_offset_all_day_events(): raw_event = { "created": "2014-01-09T03:33:02.000Z", "creator": { "displayName": "Ben Bitdiddle", "email": "*****@*****.**", "self": True, }, "etag": '"2778476764000000"', "htmlLink": "https://www.google.com/calendar/event?eid=BAR", "iCalUID": "*****@*****.**", "id": "20140615_60o30dr564o30c1g60o30dr4ck", "kind": "calendar#event", "organizer": { "displayName": "Ben Bitdiddle", "email": "*****@*****.**", "self": True, }, "sequence": 0, "start": {"date": "2014-03-15"}, "end": {u"date": "2014-03-15"}, "status": "confirmed", "summary": "Ides of March", "transparency": "transparent", "updated": "2014-01-09T03:33:02.000Z", "visibility": "public", } expected = Event.create( uid="20140615_60o30dr564o30c1g60o30dr4ck", title="Ides of March", description=None, read_only=False, busy=False, start=arrow.get(2014, 3, 15), end=arrow.get(2014, 3, 15), all_day=True, owner="Ben Bitdiddle <*****@*****.**>", participants=[], ) assert cmp_event_attrs(expected, parse_event_response(raw_event, False))
def test_handle_offset_all_day_events(): raw_event = { 'created': '2014-01-09T03:33:02.000Z', 'creator': { 'displayName': 'Ben Bitdiddle', 'email': '*****@*****.**', 'self': True }, 'etag': '"2778476764000000"', 'htmlLink': 'https://www.google.com/calendar/event?eid=BAR', 'iCalUID': '*****@*****.**', 'id': '20140615_60o30dr564o30c1g60o30dr4ck', 'kind': 'calendar#event', 'organizer': { 'displayName': 'Ben Bitdiddle', 'email': '*****@*****.**', 'self': True }, 'sequence': 0, 'start': {'date': '2014-03-15'}, 'end': {u'date': '2014-03-15'}, 'status': 'confirmed', 'summary': 'Ides of March', 'transparency': 'transparent', 'updated': '2014-01-09T03:33:02.000Z', 'visibility': 'public' } expected = Event(uid='20140615_60o30dr564o30c1g60o30dr4ck', title='Ides of March', description=None, read_only=False, busy=False, start=arrow.get(2014, 03, 15), end=arrow.get(2014, 03, 15), all_day=True, owner='Ben Bitdiddle <*****@*****.**>', participants=[]) assert cmp_event_attrs(expected, parse_event_response(raw_event, False))