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))
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')
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)
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))
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)
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')
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)
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")
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")
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')
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"})
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))
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))