From 2f4aa35ca64045844591c06a69e6f5b3a9c87836 Mon Sep 17 00:00:00 2001
From: Felipe Martins Diel <41558831+felipediel@users.noreply.github.com>
Date: Sat, 26 Sep 2020 12:46:02 -0300
Subject: [PATCH] Bump python-broadlink to 0.15.0 (#39228)

* Rename DeviceOfflineError to NetworkTimeoutError

* Bump python-broadlink to 0.15
---
 homeassistant/components/broadlink/config_flow.py |  6 +++---
 homeassistant/components/broadlink/device.py      |  4 ++--
 homeassistant/components/broadlink/manifest.json  |  2 +-
 homeassistant/components/broadlink/remote.py      |  6 +++---
 homeassistant/components/broadlink/updater.py     |  4 ++--
 requirements_all.txt                              |  2 +-
 requirements_test_all.txt                         |  2 +-
 tests/components/broadlink/test_config_flow.py    | 12 ++++++------
 tests/components/broadlink/test_device.py         | 14 +++++++-------
 9 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/homeassistant/components/broadlink/config_flow.py b/homeassistant/components/broadlink/config_flow.py
index 4dfc80c6fe9..9fe83e350cf 100644
--- a/homeassistant/components/broadlink/config_flow.py
+++ b/homeassistant/components/broadlink/config_flow.py
@@ -7,7 +7,7 @@ import broadlink as blk
 from broadlink.exceptions import (
     AuthenticationError,
     BroadlinkException,
-    DeviceOfflineError,
+    NetworkTimeoutError,
 )
 import voluptuous as vol
 
@@ -139,7 +139,7 @@ class BroadlinkFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
             await self.async_set_unique_id(device.mac.hex())
             return await self.async_step_reset(errors=errors)
 
-        except DeviceOfflineError as err:
+        except NetworkTimeoutError as err:
             errors["base"] = "cannot_connect"
             err_msg = str(err)
 
@@ -207,7 +207,7 @@ class BroadlinkFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
             try:
                 await self.hass.async_add_executor_job(device.set_lock, False)
 
-            except DeviceOfflineError as err:
+            except NetworkTimeoutError as err:
                 errors["base"] = "cannot_connect"
                 err_msg = str(err)
 
diff --git a/homeassistant/components/broadlink/device.py b/homeassistant/components/broadlink/device.py
index d05fdfd4df6..51d9b0a497f 100644
--- a/homeassistant/components/broadlink/device.py
+++ b/homeassistant/components/broadlink/device.py
@@ -9,7 +9,7 @@ from broadlink.exceptions import (
     AuthorizationError,
     BroadlinkException,
     ConnectionClosedError,
-    DeviceOfflineError,
+    NetworkTimeoutError,
 )
 
 from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME, CONF_TIMEOUT, CONF_TYPE
@@ -82,7 +82,7 @@ class BroadlinkDevice:
             await self._async_handle_auth_error()
             return False
 
-        except (DeviceOfflineError, OSError) as err:
+        except (NetworkTimeoutError, OSError) as err:
             raise ConfigEntryNotReady from err
 
         except BroadlinkException as err:
diff --git a/homeassistant/components/broadlink/manifest.json b/homeassistant/components/broadlink/manifest.json
index 6a630044904..9c6e571ec86 100644
--- a/homeassistant/components/broadlink/manifest.json
+++ b/homeassistant/components/broadlink/manifest.json
@@ -2,7 +2,7 @@
   "domain": "broadlink",
   "name": "Broadlink",
   "documentation": "https://www.home-assistant.io/integrations/broadlink",
-  "requirements": ["broadlink==0.14.1"],
+  "requirements": ["broadlink==0.15.0"],
   "codeowners": ["@danielhiversen", "@felipediel"],
   "config_flow": true
 }
diff --git a/homeassistant/components/broadlink/remote.py b/homeassistant/components/broadlink/remote.py
index 7c1ae7349da..32305331a21 100644
--- a/homeassistant/components/broadlink/remote.py
+++ b/homeassistant/components/broadlink/remote.py
@@ -9,7 +9,7 @@ import logging
 from broadlink.exceptions import (
     AuthorizationError,
     BroadlinkException,
-    DeviceOfflineError,
+    NetworkTimeoutError,
     ReadError,
     StorageError,
 )
@@ -262,7 +262,7 @@ class BroadlinkRemote(RemoteEntity, RestoreEntity):
             try:
                 await self._device.async_request(self._device.api.send_data, code)
 
-            except (AuthorizationError, DeviceOfflineError, OSError) as err:
+            except (AuthorizationError, NetworkTimeoutError, OSError) as err:
                 _LOGGER.error("Failed to send '%s': %s", command, err)
                 break
 
@@ -295,7 +295,7 @@ class BroadlinkRemote(RemoteEntity, RestoreEntity):
                 if toggle:
                     code = [code, await self._async_learn_command(command)]
 
-            except (AuthorizationError, DeviceOfflineError, OSError) as err:
+            except (AuthorizationError, NetworkTimeoutError, OSError) as err:
                 _LOGGER.error("Failed to learn '%s': %s", command, err)
                 break
 
diff --git a/homeassistant/components/broadlink/updater.py b/homeassistant/components/broadlink/updater.py
index 8b6f1316f52..d36a07a185b 100644
--- a/homeassistant/components/broadlink/updater.py
+++ b/homeassistant/components/broadlink/updater.py
@@ -9,7 +9,7 @@ from broadlink.exceptions import (
     AuthorizationError,
     BroadlinkException,
     CommandNotSupportedError,
-    DeviceOfflineError,
+    NetworkTimeoutError,
     StorageError,
 )
 
@@ -113,7 +113,7 @@ class BroadlinkRMMini3UpdateManager(BroadlinkUpdateManager):
         )
         devices = await self.device.hass.async_add_executor_job(hello)
         if not devices:
-            raise DeviceOfflineError("The device is offline")
+            raise NetworkTimeoutError("The device is offline")
         return {}
 
 
diff --git a/requirements_all.txt b/requirements_all.txt
index 771d31c80be..6406f32bad6 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -383,7 +383,7 @@ boto3==1.9.252
 bravia-tv==1.0.6
 
 # homeassistant.components.broadlink
-broadlink==0.14.1
+broadlink==0.15.0
 
 # homeassistant.components.brother
 brother==0.1.17
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index 6a86f7538ba..455341a2483 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -204,7 +204,7 @@ bond-api==0.1.8
 bravia-tv==1.0.6
 
 # homeassistant.components.broadlink
-broadlink==0.14.1
+broadlink==0.15.0
 
 # homeassistant.components.brother
 brother==0.1.17
diff --git a/tests/components/broadlink/test_config_flow.py b/tests/components/broadlink/test_config_flow.py
index a7660b03da5..bc0eba069a8 100644
--- a/tests/components/broadlink/test_config_flow.py
+++ b/tests/components/broadlink/test_config_flow.py
@@ -249,11 +249,11 @@ async def test_flow_auth_authentication_error(hass):
     assert result["errors"] == {"base": "invalid_auth"}
 
 
-async def test_flow_auth_device_offline(hass):
-    """Test we handle a device offline in the auth step."""
+async def test_flow_auth_network_timeout(hass):
+    """Test we handle a network timeout in the auth step."""
     device = get_device("Living Room")
     mock_api = device.get_mock_api()
-    mock_api.auth.side_effect = blke.DeviceOfflineError()
+    mock_api.auth.side_effect = blke.NetworkTimeoutError()
 
     result = await hass.config_entries.flow.async_init(
         DOMAIN, context={"source": config_entries.SOURCE_USER}
@@ -403,12 +403,12 @@ async def test_flow_unlock_works(hass):
     assert mock_api.set_lock.call_count == 1
 
 
-async def test_flow_unlock_device_offline(hass):
-    """Test we handle a device offline in the unlock step."""
+async def test_flow_unlock_network_timeout(hass):
+    """Test we handle a network timeout in the unlock step."""
     device = get_device("Living Room")
     mock_api = device.get_mock_api()
     mock_api.is_locked = True
-    mock_api.set_lock.side_effect = blke.DeviceOfflineError
+    mock_api.set_lock.side_effect = blke.NetworkTimeoutError()
 
     result = await hass.config_entries.flow.async_init(
         DOMAIN, context={"source": config_entries.SOURCE_USER}
diff --git a/tests/components/broadlink/test_device.py b/tests/components/broadlink/test_device.py
index 1e68921e9bd..d267243aeb9 100644
--- a/tests/components/broadlink/test_device.py
+++ b/tests/components/broadlink/test_device.py
@@ -62,11 +62,11 @@ async def test_device_setup_authentication_error(hass):
     }
 
 
-async def test_device_setup_device_offline(hass):
-    """Test we handle a device offline."""
+async def test_device_setup_network_timeout(hass):
+    """Test we handle a network timeout."""
     device = get_device("Office")
     mock_api = device.get_mock_api()
-    mock_api.auth.side_effect = blke.DeviceOfflineError()
+    mock_api.auth.side_effect = blke.NetworkTimeoutError()
 
     with patch.object(
         hass.config_entries, "async_forward_entry_setup"
@@ -119,11 +119,11 @@ async def test_device_setup_broadlink_exception(hass):
     assert mock_init.call_count == 0
 
 
-async def test_device_setup_update_device_offline(hass):
-    """Test we handle a device offline in the update step."""
+async def test_device_setup_update_network_timeout(hass):
+    """Test we handle a network timeout in the update step."""
     device = get_device("Office")
     mock_api = device.get_mock_api()
-    mock_api.check_sensors.side_effect = blke.DeviceOfflineError()
+    mock_api.check_sensors.side_effect = blke.NetworkTimeoutError()
 
     with patch.object(
         hass.config_entries, "async_forward_entry_setup"
@@ -308,7 +308,7 @@ async def test_device_unload_update_failed(hass):
     """Test we unload a device that failed the update step."""
     device = get_device("Office")
     mock_api = device.get_mock_api()
-    mock_api.check_sensors.side_effect = blke.DeviceOfflineError()
+    mock_api.check_sensors.side_effect = blke.NetworkTimeoutError()
 
     with patch.object(hass.config_entries, "async_forward_entry_setup"):
         _, mock_entry = await device.setup_entry(hass, mock_api=mock_api)
-- 
GitLab