From 816f09b002902433a49480be5064a02cbc5d3a38 Mon Sep 17 00:00:00 2001 From: Kevin Fronczak Date: Mon, 8 Jun 2020 16:08:19 +0000 Subject: [PATCH] Update camera retrieval method (no more homescreen use) --- blinkpy/blinkpy.py | 13 +++++++------ tests/test_blinkpy.py | 21 +++++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/blinkpy/blinkpy.py b/blinkpy/blinkpy.py index 2a68c1c..9f98f14 100644 --- a/blinkpy/blinkpy.py +++ b/blinkpy/blinkpy.py @@ -141,15 +141,16 @@ class Blink: def setup_camera_list(self): """Create camera list for onboarded networks.""" all_cameras = {} - response = api.request_homescreen(self) + response = api.request_camera_usage(self) try: - for camera in response["cameras"]: - camera_network = str(camera["network_id"]) + for network in response["networks"]: + camera_network = str(network["network_id"]) if camera_network not in all_cameras: all_cameras[camera_network] = [] - all_cameras[camera_network].append( - {"name": camera["name"], "id": camera["id"]} - ) + for camera in network["cameras"]: + all_cameras[camera_network].append( + {"name": camera["name"], "id": camera["id"]} + ) return all_cameras except (KeyError, TypeError): _LOGGER.error("Unable to retrieve cameras from response %s", response) diff --git a/tests/test_blinkpy.py b/tests/test_blinkpy.py index cd7279f..9f551e9 100644 --- a/tests/test_blinkpy.py +++ b/tests/test_blinkpy.py @@ -81,14 +81,19 @@ class TestBlinkSetup(unittest.TestCase): self.assertEqual(self.blink.sync["TEST"], 1234) self.assertEqual(self.blink.sync["tEsT"], 1234) - @mock.patch("blinkpy.api.request_homescreen") - def test_setup_cameras(self, mock_home): + @mock.patch("blinkpy.api.request_camera_usage") + def test_setup_cameras(self, mock_req): """Check retrieval of camera information.""" - mock_home.return_value = { - "cameras": [ - {"name": "foo", "network_id": 1234, "id": 5678}, - {"name": "bar", "network_id": 1234, "id": 5679}, - {"name": "test", "network_id": 4321, "id": 0000}, + mock_req.return_value = { + "networks": [ + { + "network_id": 1234, + "cameras": [ + {"id": 5678, "name": "foo"}, + {"id": 5679, "name": "bar"}, + ], + }, + {"network_id": 4321, "cameras": [{"id": 0000, "name": "test"}]}, ] } result = self.blink.setup_camera_list() @@ -100,7 +105,7 @@ class TestBlinkSetup(unittest.TestCase): }, ) - @mock.patch("blinkpy.api.request_homescreen") + @mock.patch("blinkpy.api.request_camera_usage") def test_setup_cameras_failure(self, mock_home): """Check that on failure we raise a setup error.""" mock_home.return_value = {}