def test_full_setup(self, mock_get, mock_post): """Check that we can set Blink up properly.""" self.blink.setup_system() # Get all test values authtoken = mresp.LOGIN_RESPONSE['authtoken']['authtoken'] (region_id, region), = mresp.LOGIN_RESPONSE['region'].items() host = region_id + '.' + const.BLINK_URL network_id = mresp.NETWORKS_RESPONSE['networks'][0]['id'] account_id = mresp.NETWORKS_RESPONSE['networks'][0]['account_id'] test_urls = blinkpy.BlinkURLHandler(region_id) test_cameras = mresp.get_test_cameras(test_urls.base_url) test_camera_id = mresp.get_test_id_table() # Check that all links have been set properly self.assertEqual(self.blink.region_id, region_id) self.assertEqual(self.blink.urls.base_url, test_urls.base_url) self.assertEqual(self.blink.urls.home_url, test_urls.home_url) self.assertEqual(self.blink.urls.event_url, test_urls.event_url) self.assertEqual(self.blink.urls.network_url, test_urls.network_url) self.assertEqual(self.blink.urls.networks_url, test_urls.networks_url) # Check that all properties have been set after startup # pylint: disable=protected-access self.assertEqual(self.blink._token, authtoken) # pylint: disable=protected-access self.assertEqual(self.blink._host, host) self.assertEqual(self.blink.network_id, str(network_id)) self.assertEqual(self.blink.account_id, str(account_id)) self.assertEqual(self.blink.region, region) # Verify we have initialized all the cameras self.assertEqual(self.blink.id_table, test_camera_id) for camera in test_cameras: self.assertTrue(camera in self.blink.cameras)
def test_camera_values_from_setup(self, mock_get, mock_post): """Tests all property values after camera setup.""" self.blink.setup_system() # Get expected test values test_network_id = str(mresp.NETWORKS_RESPONSE['networks'][0]['id']) # pylint: disable=unused-variable (region_id, region), = mresp.LOGIN_RESPONSE['region'].items() # pylint: disable=protected-access expected_header = self.blink._auth_header test_urls = blinkpy.BlinkURLHandler(region_id) test_cameras = mresp.get_test_cameras(test_urls.base_url) test_net_id_url = test_urls.network_url + test_network_id for name in self.blink.cameras: camera = self.blink.cameras[name] self.assertEqual(name, camera.name) if name in test_cameras: self.assertEqual(camera.id, test_cameras[name]['device_id']) self.assertEqual(camera.armed, test_cameras[name]['armed']) self.assertEqual(camera.thumbnail, test_cameras[name]['thumbnail']) self.assertEqual(camera.temperature, test_cameras[name]['temperature']) self.assertEqual(camera.battery, test_cameras[name]['battery']) self.assertEqual(camera.notifications, test_cameras[name]['notifications']) else: self.fail("Camera wasn't initialized: " + name) expected_arm_link = test_net_id_url + '/camera/' + camera.id + '/' expected_image_link = expected_arm_link + 'thumbnail' self.assertEqual(camera.image_link, expected_image_link) self.assertEqual(camera.arm_link, expected_arm_link) self.assertEqual(camera.header, expected_header)
def test_last_motion(self, mock_get, mock_post): """Checks that we can get the last motion info.""" self.test_urls = blinkpy.BlinkURLHandler(self.region_id) test_events = mresp.RESPONSE['event'] test_video = dict() test_image = dict() test_time = dict() for event in test_events: if event['type'] == 'motion': url = self.test_urls.base_url + event['video_url'] test_video[event['camera_name']] = url test_image[event['camera_name']] = url[:-3] + 'jpg' test_time[event['camera_name']] = event['created_at'] self.blink.setup_system() for name in self.blink.cameras: camera = self.blink.cameras[name] self.blink.last_motion() if name in test_video: self.assertEqual(camera.motion['video'], test_video[name]) else: self.assertEqual(camera.motion, {}) if name in test_image: self.assertEqual(camera.motion['image'], test_image[name]) else: self.assertEqual(camera.motion, {}) if name in test_video: self.assertEqual(camera.motion['time'], test_time[name]) else: self.assertEqual(camera.motion, {})
def setUp(self): """Set up Blink module.""" self.blink = blinkpy.Blink(username=USERNAME, password=PASSWORD) (self.region_id, self.region), = mresp.LOGIN_RESPONSE['region'].items() self.test_urls = blinkpy.BlinkURLHandler(self.region_id) self.urls = self.test_urls
def test_camera_thumbs(self, mock_get, mock_post): """Checks to see if we can retrieve camera thumbs.""" self.test_urls = blinkpy.BlinkURLHandler(self.region_id) test_cameras = mresp.get_test_cameras(self.test_urls.base_url) self.blink.setup_system() for name in self.blink.cameras: thumb = self.blink.camera_thumbs[name] self.assertEqual(test_cameras[name]['thumbnail'], thumb)
def test_no_auth_header(self): """Check that we throw an exception when no auth header given.""" # pylint: disable=unused-variable (region_id, region), = mresp.LOGIN_RESPONSE['region'].items() self.blink.urls = blinkpy.BlinkURLHandler(region_id) with self.assertRaises(blinkpy.BlinkException): self.blink.get_ids() with self.assertRaises(blinkpy.BlinkException): self.blink.get_summary()
def test_set_motion_detect(self, mock_get, mock_post): """Checks if we can set motion detection.""" self.blink.setup_system() self.test_urls = blinkpy.BlinkURLHandler(self.region_id) test_cameras = mresp.get_test_cameras(self.test_urls.base_url) for camera_name in test_cameras: self.blink.cameras[camera_name].set_motion_detect(True) self.blink.refresh() self.assertEqual(self.blink.cameras[camera_name].armed, True) self.blink.cameras[camera_name].set_motion_detect(False) self.blink.refresh() self.assertEqual(self.blink.cameras[camera_name].armed, False)
def test_setup_backup_subdomain(self, mock_get, mock_post): """Check that we can use the 'rest.piri' subdomain.""" test_urls = blinkpy.BlinkURLHandler('rest.piri') with mock.patch('helpers.constants.LOGIN_URL', return_value=const.LOGIN_URL + 'NO'): self.blink.setup_system() self.assertEqual(self.blink.region_id, 'rest.piri') # pylint: disable=protected-access self.assertEqual(self.blink._host, 'rest.piri.' + const.BLINK_URL) self.assertEqual(self.blink.urls.base_url, test_urls.base_url) self.assertEqual(self.blink.urls.home_url, test_urls.home_url) self.assertEqual(self.blink.urls.event_url, test_urls.event_url) self.assertEqual(self.blink.urls.network_url, test_urls.network_url) self.assertEqual(self.blink.urls.networks_url, test_urls.networks_url)
def test_camera_update(self): """Checks that the update function is doing the right thing.""" self.test_urls = blinkpy.BlinkURLHandler('test') test_config = mresp.FIRST_CAMERA self.urls = self.test_urls test_camera = blinkpy.blinkpy.BlinkCamera(test_config, self) test_update = mresp.SECOND_CAMERA test_camera.update(test_update) test_image_url = self.test_urls.base_url + test_update['thumbnail'] test_thumbnail = test_image_url + '.jpg' test_clip = test_image_url + '.mp4' self.assertEqual(test_camera.name, test_update['name']) self.assertEqual(test_camera.armed, test_update['armed']) self.assertEqual(test_camera.thumbnail, test_thumbnail) self.assertEqual(test_camera.clip, test_clip) self.assertEqual(test_camera.temperature, test_update['temp']) self.assertEqual(test_camera.battery, test_update['battery']) self.assertEqual(test_camera.notifications, test_update['notifications'])