def test_parse_dict(self): self.assertEqual( Event.parse_dict( { "summary": "Google I/O 2015", "start": {"dateTime": "2015-05-28T09:00:00-07:00", "timeZone": "America/Los_Angeles"}, "end": {"dateTime": "2015-05-28T17:00:00-07:00", "timeZone": "America/Los_Angeles"}, "creator": {"displayName": "Foo Bar", "email": "*****@*****.**"}, }, "America/Los_Angeles", ), self.e0, ) self.assertEqual( Event.parse_dict( {"summary": "あいうえお", "start": {"date": "2015-10-17"}, "end": {"date": "2015-10-18"}}, "Asia/Tokyo" ), self.e1, ) self.assertEqual( Event.parse_dict( { "summary": "あいうえお", "start": {"date": "2015-10-17"}, "end": {"date": "2015-10-18"}, "creator": {"email": "*****@*****.**"}, }, "Asia/Tokyo", ), self.e2, )
def test_parse_dict(self): self.assertEqual( Event.parse_dict( { 'summary': 'Google I/O 2015', 'start': { 'dateTime': '2015-05-28T09:00:00-07:00', 'timeZone': 'America/Los_Angeles' }, 'end': { 'dateTime': '2015-05-28T17:00:00-07:00', 'timeZone': 'America/Los_Angeles' }, 'creator': { 'displayName': 'Foo Bar', 'email': '*****@*****.**', }, }, 'America/Los_Angeles'), self.e0) self.assertEqual( Event.parse_dict( { 'summary': 'あいうえお', 'start': { 'date': '2015-10-17' }, 'end': { 'date': '2015-10-18' }, }, 'Asia/Tokyo'), self.e1) self.assertEqual( Event.parse_dict( { 'summary': 'あいうえお', 'start': { 'date': '2015-10-17' }, 'end': { 'date': '2015-10-18' }, 'creator': { 'email': '*****@*****.**' }, }, 'Asia/Tokyo'), self.e2)
def list_events(self, calendar_id, time_min, time_max): """ :return: list[Event]: event list sorted by startTime and endTime (all-day events come first) """ params = { "calendarId": calendar_id, "timeMin": time_min.astimezone(pytz.utc).isoformat(), "timeMax": time_max.astimezone(pytz.utc).isoformat(), "maxResults": MAX_RESULTS, "singleEvents": True, "orderBy": "startTime", } events_result = self._service.events().list(**params).execute() return sorted(Event.parse_dict(d, events_result["timeZone"]) for d in events_result.get("items", []))
def list_events(self, calendar_id, time_min, time_max): """ :return: list[Event]: event list sorted by startTime and endTime (all-day events come first) """ params = { 'calendarId': calendar_id, 'timeMin': time_min.astimezone(pytz.utc).isoformat(), 'timeMax': time_max.astimezone(pytz.utc).isoformat(), 'maxResults': MAX_RESULTS, 'singleEvents': True, 'orderBy': 'startTime' } events_result = self._service.events().list(**params).execute() return sorted(Event.parse_dict(d, events_result['timeZone']) for d in events_result.get('items', []))