Beispiel #1
0
    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': ''
        })
Beispiel #2
0
    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']
            })