示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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, {})
示例#4
0
 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
示例#5
0
 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)
示例#6
0
 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()
示例#7
0
 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)
示例#8
0
 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)
示例#9
0
 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'])