Add support for Dyson Purecool 2018 Air Purifiers models TP04 and DP04 (#22215)
* initial commit initial commit rewrite tests fix merge issue with fan component fix merge issue with fan component * correct line length * change to sync_setup_component for tests * rename services and move services.yaml * move hepa and carbon filter state from sensor to fan * add test for duplicate entities * fix method call tests * fix docstring
This commit is contained in:
parent
1ce622469d
commit
e78709c5f5
15 changed files with 946 additions and 133 deletions
|
@ -43,7 +43,7 @@ class DysonTest(unittest.TestCase):
|
|||
"""Stop everything that was started."""
|
||||
self.hass.stop()
|
||||
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=False)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=False)
|
||||
def test_dyson_login_failed(self, mocked_login):
|
||||
"""Test if Dyson connection failed."""
|
||||
dyson.setup(self.hass, {dyson.DOMAIN: {
|
||||
|
@ -53,8 +53,8 @@ class DysonTest(unittest.TestCase):
|
|||
}})
|
||||
assert mocked_login.call_count == 1
|
||||
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices', return_value=[])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices', return_value=[])
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_login(self, mocked_login, mocked_devices):
|
||||
"""Test valid connection to dyson web service."""
|
||||
dyson.setup(self.hass, {dyson.DOMAIN: {
|
||||
|
@ -67,9 +67,9 @@ class DysonTest(unittest.TestCase):
|
|||
assert len(self.hass.data[dyson.DYSON_DEVICES]) == 0
|
||||
|
||||
@mock.patch('homeassistant.helpers.discovery.load_platform')
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices',
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices',
|
||||
return_value=[_get_dyson_account_device_available()])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_custom_conf(self, mocked_login, mocked_devices,
|
||||
mocked_discovery):
|
||||
"""Test device connection using custom configuration."""
|
||||
|
@ -89,9 +89,9 @@ class DysonTest(unittest.TestCase):
|
|||
assert len(self.hass.data[dyson.DYSON_DEVICES]) == 1
|
||||
assert mocked_discovery.call_count == 4
|
||||
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices',
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices',
|
||||
return_value=[_get_dyson_account_device_not_available()])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_custom_conf_device_not_available(self, mocked_login,
|
||||
mocked_devices):
|
||||
"""Test device connection with an invalid device."""
|
||||
|
@ -110,9 +110,9 @@ class DysonTest(unittest.TestCase):
|
|||
assert mocked_devices.call_count == 1
|
||||
assert len(self.hass.data[dyson.DYSON_DEVICES]) == 0
|
||||
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices',
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices',
|
||||
return_value=[_get_dyson_account_device_error()])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_custom_conf_device_error(self, mocked_login,
|
||||
mocked_devices):
|
||||
"""Test device connection with device raising an exception."""
|
||||
|
@ -132,9 +132,9 @@ class DysonTest(unittest.TestCase):
|
|||
assert len(self.hass.data[dyson.DYSON_DEVICES]) == 0
|
||||
|
||||
@mock.patch('homeassistant.helpers.discovery.load_platform')
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices',
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices',
|
||||
return_value=[_get_dyson_account_device_available()])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_custom_conf_with_unknown_device(self, mocked_login,
|
||||
mocked_devices,
|
||||
mocked_discovery):
|
||||
|
@ -156,9 +156,9 @@ class DysonTest(unittest.TestCase):
|
|||
assert mocked_discovery.call_count == 0
|
||||
|
||||
@mock.patch('homeassistant.helpers.discovery.load_platform')
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices',
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices',
|
||||
return_value=[_get_dyson_account_device_available()])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_discovery(self, mocked_login, mocked_devices,
|
||||
mocked_discovery):
|
||||
"""Test device connection using discovery."""
|
||||
|
@ -174,9 +174,9 @@ class DysonTest(unittest.TestCase):
|
|||
assert len(self.hass.data[dyson.DYSON_DEVICES]) == 1
|
||||
assert mocked_discovery.call_count == 4
|
||||
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.devices',
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.devices',
|
||||
return_value=[_get_dyson_account_device_not_available()])
|
||||
@mock.patch('libpurecoollink.dyson.DysonAccount.login', return_value=True)
|
||||
@mock.patch('libpurecool.dyson.DysonAccount.login', return_value=True)
|
||||
def test_dyson_discovery_device_not_available(self, mocked_login,
|
||||
mocked_devices):
|
||||
"""Test device connection with discovery and invalid device."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue