From 1e86023f9254699bd3bb994cace79b775f2d9d1f Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 22 Feb 2020 00:57:55 +0000 Subject: [PATCH] Add support for fetching the doorbell image Homeassistant wants all requests handled in the py-august module --- august/doorbell.py | 4 ++++ setup.py | 2 +- tests/test_api.py | 8 +++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/august/doorbell.py b/august/doorbell.py index dc10cff..54a3147 100644 --- a/august/doorbell.py +++ b/august/doorbell.py @@ -1,6 +1,7 @@ import datetime import dateutil.parser +import requests from august.device import Device, DeviceDetail @@ -108,3 +109,6 @@ def battery_level(self): @property def has_subscription(self): return self._has_subscription + + def get_doorbell_image(self, timeout=10): + return requests.get(self._image_url, timeout=timeout).content diff --git a/setup.py b/setup.py index 7d9285a..cdea0a2 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name='py-august', - version='0.18.0', + version='0.19.0', packages=['august'], url='https://github.com/snjoetw/py-august', license='MIT', diff --git a/tests/test_api.py b/tests/test_api.py index 992ba6b..b77c945 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -73,11 +73,15 @@ def test_get_doorbells(self, mock): @requests_mock.Mocker() def test_get_doorbell_detail(self, mock): + expected_doorbell_image_url = "https://image.com/vmk16naaaa7ibuey7sar.jpg" mock.register_uri( "get", API_GET_DOORBELL_URL.format(doorbell_id="K98GiDT45GUL"), text=load_fixture("get_doorbell.json"), ) + mock.register_uri( + "get", expected_doorbell_image_url, text="doorbell_image_mocked" + ) api = Api() doorbell = api.get_doorbell_detail(ACCESS_TOKEN, "K98GiDT45GUL") @@ -96,8 +100,10 @@ def test_get_doorbell_detail(self, mock): doorbell.image_created_at_datetime, ) self.assertEqual(True, doorbell.has_subscription) + self.assertEqual(expected_doorbell_image_url, doorbell.image_url) + self.assertEqual(doorbell.get_doorbell_image(), b"doorbell_image_mocked") self.assertEqual( - "https://image.com/vmk16naaaa7ibuey7sar.jpg", doorbell.image_url + doorbell.get_doorbell_image(timeout=50), b"doorbell_image_mocked" ) @requests_mock.Mocker()