Merge pull request #1402 from kk7ds/fix-mfi-connect-exception
Fix mFi error handling in setup_platformpull/1403/head
commit
dd45b5e0b1
|
@ -6,6 +6,8 @@ https://home-assistant.io/components/sensor.mfi/
|
|||
"""
|
||||
import logging
|
||||
|
||||
import requests
|
||||
|
||||
from homeassistant.components.sensor import DOMAIN
|
||||
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, TEMP_CELCIUS
|
||||
from homeassistant.helpers import validate_config
|
||||
|
@ -48,11 +50,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||
username = config.get(CONF_USERNAME)
|
||||
password = config.get(CONF_PASSWORD)
|
||||
|
||||
from mficlient.client import MFiClient
|
||||
from mficlient.client import FailedToLogin, MFiClient
|
||||
|
||||
try:
|
||||
client = MFiClient(host, username, password, port=port)
|
||||
except client.FailedToLogin as ex:
|
||||
except (FailedToLogin, requests.exceptions.ConnectionError) as ex:
|
||||
_LOGGER.error('Unable to connect to mFi: %s', str(ex))
|
||||
return False
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ https://home-assistant.io/components/switch.mfi/
|
|||
"""
|
||||
import logging
|
||||
|
||||
import requests
|
||||
|
||||
from homeassistant.components.switch import DOMAIN, SwitchDevice
|
||||
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
|
||||
from homeassistant.helpers import validate_config
|
||||
|
@ -41,11 +43,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||
username = config.get('username')
|
||||
password = config.get('password')
|
||||
|
||||
from mficlient.client import MFiClient
|
||||
from mficlient.client import FailedToLogin, MFiClient
|
||||
|
||||
try:
|
||||
client = MFiClient(host, username, password, port=port)
|
||||
except client.FailedToLogin as ex:
|
||||
except (FailedToLogin, requests.exceptions.ConnectionError) as ex:
|
||||
_LOGGER.error('Unable to connect to mFi: %s', str(ex))
|
||||
return False
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@ Tests mFi sensor.
|
|||
import unittest
|
||||
import unittest.mock as mock
|
||||
|
||||
import requests
|
||||
|
||||
import homeassistant.components.sensor as sensor
|
||||
import homeassistant.components.sensor.mfi as mfi
|
||||
from homeassistant.const import TEMP_CELCIUS
|
||||
|
@ -54,6 +56,15 @@ class TestMfiSensorSetup(unittest.TestCase):
|
|||
dict(self.GOOD_CONFIG),
|
||||
None))
|
||||
|
||||
@mock.patch('mficlient.client')
|
||||
def test_setup_failed_connect(self, mock_client):
|
||||
mock_client.FailedToLogin = Exception()
|
||||
mock_client.MFiClient.side_effect = requests.exceptions.ConnectionError
|
||||
self.assertFalse(
|
||||
self.PLATFORM.setup_platform(self.hass,
|
||||
dict(self.GOOD_CONFIG),
|
||||
None))
|
||||
|
||||
@mock.patch('mficlient.client.MFiClient')
|
||||
def test_setup_minimum(self, mock_client):
|
||||
config = dict(self.GOOD_CONFIG)
|
||||
|
|
Loading…
Reference in New Issue