From ec4ccb10ec1a8abf05d1f3f9dd78809f43a52c77 Mon Sep 17 00:00:00 2001 From: Quentame Date: Wed, 29 Jan 2020 15:16:54 +0100 Subject: [PATCH] Bump iCloud to 0.9.2 + fix setup log (#31273) - pyicloud to 0.9.2 - fix log `ERROR (MainThread) [homeassistant.config_entries] icloud.async_setup_entry did not return boolean` --- homeassistant/components/icloud/__init__.py | 5 +++++ homeassistant/components/icloud/config_flow.py | 2 +- homeassistant/components/icloud/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/icloud/test_config_flow.py | 10 +++++----- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/icloud/__init__.py b/homeassistant/components/icloud/__init__.py index 2e1bdf9e82b..62eb2fb91ac 100644 --- a/homeassistant/components/icloud/__init__.py +++ b/homeassistant/components/icloud/__init__.py @@ -122,6 +122,9 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool hass, username, password, icloud_dir, max_interval, gps_accuracy_threshold, ) await hass.async_add_executor_job(account.setup) + if not account.devices: + return False + hass.data[DOMAIN][username] = account for component in ICLOUD_COMPONENTS: @@ -207,3 +210,5 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool hass.services.async_register( DOMAIN, SERVICE_ICLOUD_UPDATE, update_account, schema=SERVICE_SCHEMA ) + + return True diff --git a/homeassistant/components/icloud/config_flow.py b/homeassistant/components/icloud/config_flow.py index 9b00ccb2a8d..b3cb9c28181 100644 --- a/homeassistant/components/icloud/config_flow.py +++ b/homeassistant/components/icloud/config_flow.py @@ -98,7 +98,7 @@ class IcloudFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): errors[CONF_USERNAME] = "login" return await self._show_setup_form(user_input, errors) - if self.api.requires_2fa: + if self.api.requires_2sa: return await self.async_step_trusted_device() return self.async_create_entry( diff --git a/homeassistant/components/icloud/manifest.json b/homeassistant/components/icloud/manifest.json index 9652ef10469..a4a51f9e1a2 100644 --- a/homeassistant/components/icloud/manifest.json +++ b/homeassistant/components/icloud/manifest.json @@ -3,7 +3,7 @@ "name": "Apple iCloud", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/icloud", - "requirements": ["pyicloud==0.9.1"], + "requirements": ["pyicloud==0.9.2"], "dependencies": [], "codeowners": ["@Quentame"] } diff --git a/requirements_all.txt b/requirements_all.txt index b1a7eb258a8..c625e3be996 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1294,7 +1294,7 @@ pyhomeworks==0.0.6 pyialarm==0.3 # homeassistant.components.icloud -pyicloud==0.9.1 +pyicloud==0.9.2 # homeassistant.components.intesishome pyintesishome==1.6 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 0a5bec51d02..dc6409897a4 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -451,7 +451,7 @@ pyheos==0.6.0 pyhomematic==0.1.63 # homeassistant.components.icloud -pyicloud==0.9.1 +pyicloud==0.9.2 # homeassistant.components.ipma pyipma==2.0.2 diff --git a/tests/components/icloud/test_config_flow.py b/tests/components/icloud/test_config_flow.py index 747af7c940a..6091d1cf1da 100644 --- a/tests/components/icloud/test_config_flow.py +++ b/tests/components/icloud/test_config_flow.py @@ -39,7 +39,7 @@ def mock_controller_service(): with patch( "homeassistant.components.icloud.config_flow.PyiCloudService" ) as service_mock: - service_mock.return_value.requires_2fa = True + service_mock.return_value.requires_2sa = True service_mock.return_value.trusted_devices = TRUSTED_DEVICES service_mock.return_value.send_verification_code = Mock(return_value=True) service_mock.return_value.validate_verification_code = Mock(return_value=True) @@ -52,7 +52,7 @@ def mock_controller_service_with_cookie(): with patch( "homeassistant.components.icloud.config_flow.PyiCloudService" ) as service_mock: - service_mock.return_value.requires_2fa = False + service_mock.return_value.requires_2sa = False service_mock.return_value.trusted_devices = TRUSTED_DEVICES service_mock.return_value.send_verification_code = Mock(return_value=True) service_mock.return_value.validate_verification_code = Mock(return_value=True) @@ -65,7 +65,7 @@ def mock_controller_service_send_verification_code_failed(): with patch( "homeassistant.components.icloud.config_flow.PyiCloudService" ) as service_mock: - service_mock.return_value.requires_2fa = True + service_mock.return_value.requires_2sa = True service_mock.return_value.trusted_devices = TRUSTED_DEVICES service_mock.return_value.send_verification_code = Mock(return_value=False) yield service_mock @@ -77,7 +77,7 @@ def mock_controller_service_validate_verification_code_failed(): with patch( "homeassistant.components.icloud.config_flow.PyiCloudService" ) as service_mock: - service_mock.return_value.requires_2fa = True + service_mock.return_value.requires_2sa = True service_mock.return_value.trusted_devices = TRUSTED_DEVICES service_mock.return_value.send_verification_code = Mock(return_value=True) service_mock.return_value.validate_verification_code = Mock(return_value=False) @@ -324,7 +324,7 @@ async def test_verification_code_success(hass: HomeAssistantType, service: Magic result = await hass.config_entries.flow.async_configure( result["flow_id"], {CONF_TRUSTED_DEVICE: 0} ) - service.return_value.requires_2fa = False + service.return_value.requires_2sa = False result = await hass.config_entries.flow.async_configure( result["flow_id"], {CONF_VERIFICATION_CODE: "0"}