Example #1
0
 def test_send_auth_key_fail(self, mock_req):
     """Check handling of auth key failure."""
     mock_blink = MockBlink(None)
     mock_req.return_value = mresp.MockResponse(None, 200)
     self.assertFalse(self.auth.send_auth_key(mock_blink, 1234))
     mock_req.return_value = mresp.MockResponse({}, 200)
     self.assertFalse(self.auth.send_auth_key(mock_blink, 1234))
Example #2
0
    def test_backup_url(self, req, mock_sess):
        """Test backup login method."""
        json_resp = {
            'authtoken': {
                'authtoken': 'foobar123'
            },
            'networks': {
                '1234': {
                    'name': 'foobar',
                    'onboarded': True
                }
            }
        }
        bad_req = mresp.MockResponse({}, 404)
        new_req = mresp.MockResponse(json_resp, 200)
        req.side_effect = [bad_req, bad_req, new_req]
        self.blink.login_urls = ['test1', 'test2', 'test3']
        self.blink.login_request()
        # pylint: disable=protected-access
        self.assertEqual(self.blink._login_url, 'test3')

        req.side_effect = [bad_req, new_req, bad_req]
        self.blink.login_urls = ['test1', 'test2', 'test3']
        self.blink.login_request()
        # pylint: disable=protected-access
        self.assertEqual(self.blink._login_url, 'test2')
Example #3
0
    def test_bad_response_code(self):
        """Check bad response code from server."""
        self.auth.is_errored = False
        fake_resp = mresp.MockResponse({"code": 404}, 404)
        with self.assertRaises(exceptions.ConnectionError):
            self.auth.validate_response(fake_resp, True)
        self.assertTrue(self.auth.is_errored)

        self.auth.is_errored = False
        fake_resp = mresp.MockResponse({"code": 101}, 401)
        with self.assertRaises(UnauthorizedError):
            self.auth.validate_response(fake_resp, True)
        self.assertTrue(self.auth.is_errored)
Example #4
0
    def test_send_auth_key(self, mock_req):
        """Check sending of auth key."""
        mock_blink = MockBlink(None)
        mock_req.return_value = mresp.MockResponse({"valid": True}, 200)
        self.assertTrue(self.auth.send_auth_key(mock_blink, 1234))
        self.assertTrue(mock_blink.available)

        mock_req.return_value = mresp.MockResponse(None, 200)
        self.assertFalse(self.auth.send_auth_key(mock_blink, 1234))

        mock_req.return_value = mresp.MockResponse({}, 200)
        self.assertFalse(self.auth.send_auth_key(mock_blink, 1234))

        self.assertTrue(self.auth.send_auth_key(mock_blink, None))
Example #5
0
 def test_good_response_code(self):
     """Check good response code from server."""
     fake_resp = mresp.MockResponse({"foo": "bar"}, 200)
     self.auth.is_errored = True
     self.assertEqual(self.auth.validate_response(fake_resp, True),
                      {"foo": "bar"})
     self.assertFalse(self.auth.is_errored)
Example #6
0
 def test_thumbnail_not_in_info(self, mock_sess):
     """Test that we grab thumbanil if not in camera_info."""
     mock_sess.side_effect = [
         mresp.MockResponse({'temp': 71}, 200), 'foobar', 'barfoo'
     ]
     self.camera.last_record = ['1']
     self.camera.sync.record_dates['new'] = ['1']
     self.camera.sync.all_clips = {'new': {'1': '/test.mp4'}}
     config = {
         'name': 'new',
         'camera_id': 1234,
         'network_id': 5678,
         'serial': '12345678',
         'enabled': False,
         'battery_voltage': 90,
         'battery_state': 'ok',
         'temperature': 68,
         'wifi_strength': 4,
         'thumbnail': '',
     }
     self.camera.sync.homescreen = {
         'devices': [{
             'foo': 'bar'
         }, {
             'device_type': 'foobar'
         }, {
             'device_type': 'camera',
             'name': 'new',
             'thumbnail': '/new/thumb'
         }]
     }
     self.camera.update(config)
     self.assertEqual(self.camera.thumbnail,
                      'https://rest.test.immedia-semi.com/new/thumb.jpg')
Example #7
0
 def test_login_bad_response(self, mock_req, mock_validate):
     """Test login handling when bad response."""
     fake_resp = mresp.MockResponse({"foo": "bar"}, 404)
     mock_req.return_value = fake_resp
     self.auth.is_errored = False
     with self.assertRaises(LoginError):
         self.auth.login()
     with self.assertRaises(TokenRefreshFailed):
         self.auth.refresh_token()
     self.assertTrue(self.auth.is_errored)
Example #8
0
    def test_backup_url(self, req, mock_sess):
        """Test backup login method."""
        json_resp = {
            "authtoken": {
                "authtoken": "foobar123"
            },
            "networks": {
                "1234": {
                    "name": "foobar",
                    "onboarded": True
                }
            },
        }
        bad_req = mresp.MockResponse({}, 404)
        new_req = mresp.MockResponse(json_resp, 200)
        req.side_effect = [bad_req, bad_req, new_req]
        self.blink.login_handler.login_urls = ["test1", "test2", "test3"]
        self.blink.login_handler.login(self.blink)
        self.assertEqual(self.blink.login_handler.login_url, "test3")

        req.side_effect = [bad_req, new_req, bad_req]
        self.blink.login_handler.login_urls = ["test1", "test2", "test3"]
        self.blink.login_handler.login(self.blink)
        self.assertEqual(self.blink.login_handler.login_url, "test2")
Example #9
0
 def test_camera_update(self, mock_sess):
     """Test that we can properly update camera properties."""
     config = {
         "name": "new",
         "id": 1234,
         "network_id": 5678,
         "serial": "12345678",
         "enabled": False,
         "battery_voltage": 90,
         "battery_state": "ok",
         "temperature": 68,
         "wifi_strength": 4,
         "thumbnail": "/thumb",
     }
     self.camera.last_record = ["1"]
     self.camera.sync.last_record = {
         "new": {
             "clip": "/test.mp4",
             "time": "1970-01-01T00:00:00"
         }
     }
     mock_sess.side_effect = [
         mresp.MockResponse({"temp": 71}, 200),
         "test",
         "foobar",
     ]
     self.camera.update(config)
     self.assertEqual(self.camera.name, "new")
     self.assertEqual(self.camera.camera_id, "1234")
     self.assertEqual(self.camera.network_id, "5678")
     self.assertEqual(self.camera.serial, "12345678")
     self.assertEqual(self.camera.motion_enabled, False)
     self.assertEqual(self.camera.battery, "ok")
     self.assertEqual(self.camera.temperature, 68)
     self.assertEqual(self.camera.temperature_c, 20)
     self.assertEqual(self.camera.temperature_calibrated, 71)
     self.assertEqual(self.camera.wifi_strength, 4)
     self.assertEqual(self.camera.thumbnail,
                      "https://rest-test.immedia-semi.com/thumb.jpg")
     self.assertEqual(self.camera.clip,
                      "https://rest-test.immedia-semi.com/test.mp4")
     self.assertEqual(self.camera.image_from_cache, "test")
     self.assertEqual(self.camera.video_from_cache, "foobar")
Example #10
0
 def test_camera_update(self, mock_sess):
     """Test that we can properly update camera properties."""
     config = {
         'name': 'new',
         'id': 1234,
         'network_id': 5678,
         'serial': '12345678',
         'enabled': False,
         'battery_voltage': 90,
         'battery_state': 'ok',
         'temperature': 68,
         'wifi_strength': 4,
         'thumbnail': '/thumb',
     }
     self.camera.last_record = ['1']
     self.camera.sync.last_record = {
         'new': {
             'clip': '/test.mp4',
             'time': '1970-01-01T00:00:00'
         }
     }
     mock_sess.side_effect = [
         mresp.MockResponse({'temp': 71}, 200), 'test', 'foobar'
     ]
     self.camera.update(config)
     self.assertEqual(self.camera.name, 'new')
     self.assertEqual(self.camera.camera_id, '1234')
     self.assertEqual(self.camera.network_id, '5678')
     self.assertEqual(self.camera.serial, '12345678')
     self.assertEqual(self.camera.motion_enabled, False)
     self.assertEqual(self.camera.battery, 'ok')
     self.assertEqual(self.camera.temperature, 68)
     self.assertEqual(self.camera.temperature_c, 20)
     self.assertEqual(self.camera.temperature_calibrated, 71)
     self.assertEqual(self.camera.wifi_strength, 4)
     self.assertEqual(self.camera.thumbnail,
                      'https://rest-test.immedia-semi.com/thumb.jpg')
     self.assertEqual(self.camera.clip,
                      'https://rest-test.immedia-semi.com/test.mp4')
     self.assertEqual(self.camera.image_from_cache, 'test')
     self.assertEqual(self.camera.video_from_cache, 'foobar')
Example #11
0
 def test_login(self, mock_req, mock_validate):
     """Test login handling."""
     fake_resp = mresp.MockResponse({"foo": "bar"}, 200)
     mock_req.return_value = fake_resp
     self.assertEqual(self.auth.login(), {"foo": "bar"})
Example #12
0
 def test_good_response_code(self, mock_sess):
     """Check good response code from server."""
     fake_resp = mresp.MockResponse(None, 200)
     self.assertTrue(self.login_handler.validate_response(None, fake_resp))
Example #13
0
 def test_bad_response_code(self, mock_sess):
     """Check bad response code from server."""
     fake_resp = mresp.MockResponse(None, 404)
     self.assertFalse(self.login_handler.validate_response(None, fake_resp))