def test_in_progress_event(self, mock_next_event): """Test that we can create an event trigger on device.""" middle_of_event = dt_util.now() \ - dt_util.dt.timedelta(minutes=30) event = { 'start': { 'dateTime': middle_of_event.isoformat() }, 'end': { 'dateTime': (middle_of_event + dt_util.dt .timedelta(minutes=60)) .isoformat() }, 'summary': 'Test Event in Progress', 'reminders': {'useDefault': True}, 'id': 'aioehgni435lihje', 'status': 'confirmed', 'updated': '2016-11-05T15:52:07.329Z', 'organizer': { 'email': '*****@*****.**', 'displayName': 'Organizer Name', 'self': True, }, 'created': '2016-11-05T15:52:07.000Z', 'iCalUID': '*****@*****.**', 'sequence': 0, 'creator': { 'email': '*****@*****.**', 'displayName': 'Organizer Name', }, 'etag': '"2956722254658000"', 'kind': 'calendar#event', 'htmlLink': 'https://www.google.com/calendar/event?eid=*******', } mock_next_event.return_value.event = event device_name = 'Test Event in Progress' device_id = 'test_event_in_progress' cal = calendar.GoogleCalendarEventDevice(self.hass, None, device_id, {'name': device_name}) self.assertEqual(cal.name, device_name) self.assertEqual(cal.state, STATE_ON) self.assertFalse(cal.offset_reached()) self.assertEqual(cal.device_state_attributes, { 'message': event['summary'], 'all_day': False, 'offset_reached': False, 'start_time': middle_of_event.strftime(DATE_STR_FORMAT), 'end_time': (middle_of_event + dt_util.dt.timedelta(minutes=60)) .strftime(DATE_STR_FORMAT), 'location': '', 'description': '' })
def test_update_false(self, mock_httplib2): """Test that the update returns False upon Error.""" mock_service = Mock() mock_service.get = Mock( side_effect=mock_httplib2.ServerNotFoundError("unit test")) cal = calendar.GoogleCalendarEventDevice(self.hass, mock_service, None, {'name': "test"}) result = cal.data.update() self.assertFalse(result)
def test_all_day_event(self, mock_next_event): """Test that we can create an event trigger on device.""" week_from_today = dt_util.dt.date.today() \ + dt_util.dt.timedelta(days=7) event = { 'summary': 'Test All Day Event', 'start': { 'date': week_from_today.isoformat() }, 'end': { 'date': (week_from_today + dt_util.dt.timedelta(days=1)).isoformat() }, 'location': 'Test Cases', 'description': 'We\'re just testing that all day events get setup ' 'correctly', 'kind': 'calendar#event', 'created': '2016-06-23T16:37:57.000Z', 'transparency': 'transparent', 'updated': '2016-06-24T01:57:21.045Z', 'reminders': { 'useDefault': True }, 'organizer': { 'email': '*****@*****.**', 'displayName': 'Organizer Name', 'self': True }, 'sequence': 0, 'creator': { 'email': '*****@*****.**', 'displayName': 'Organizer Name', 'self': True }, 'id': '_c8rinwq863h45qnucyoi43ny8', 'etag': '"2933466882090000"', 'htmlLink': 'https://www.google.com/calendar/event?eid=*******', 'iCalUID': '*****@*****.**', 'status': 'confirmed' } mock_next_event.return_value.event = event device_name = 'Test All Day' cal = calendar.GoogleCalendarEventDevice(self.hass, None, '', {'name': device_name}) self.assertEquals(cal.name, device_name) self.assertEquals(cal.state, STATE_OFF) self.assertFalse(cal.offset_reached()) self.assertEquals( cal.device_state_attributes, { 'message': event['summary'], 'all_day': True, 'offset_reached': False, 'start_time': '{} 06:00:00'.format(event['start']['date']), 'end_time': '{} 06:00:00'.format(event['end']['date']), 'location': event['location'], 'description': event['description'] })