diff --git a/homeassistant/components/downloader/config_flow.py b/homeassistant/components/downloader/config_flow.py index 27101630599..e7191e055a6 100644 --- a/homeassistant/components/downloader/config_flow.py +++ b/homeassistant/components/downloader/config_flow.py @@ -29,7 +29,7 @@ class DownloaderConfigFlow(ConfigFlow, domain=DOMAIN): try: await self._validate_input(user_input) except DirectoryDoesNotExist: - errors["base"] = "cannot_connect" + errors["base"] = "directory_does_not_exist" else: return self.async_create_entry(title=DEFAULT_NAME, data=user_input) diff --git a/homeassistant/components/downloader/strings.json b/homeassistant/components/downloader/strings.json index 4cadabf96c6..cf962bd9713 100644 --- a/homeassistant/components/downloader/strings.json +++ b/homeassistant/components/downloader/strings.json @@ -6,7 +6,7 @@ } }, "error": { - "cannot_connect": "The directory could not be reached. Please check your settings." + "directory_does_not_exist": "The directory could not be reached. Please check your settings." }, "abort": { "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" diff --git a/tests/components/downloader/test_config_flow.py b/tests/components/downloader/test_config_flow.py index b561fae98e9..132b83dffdf 100644 --- a/tests/components/downloader/test_config_flow.py +++ b/tests/components/downloader/test_config_flow.py @@ -5,7 +5,6 @@ from unittest.mock import patch import pytest from homeassistant import config_entries -from homeassistant.components.downloader.config_flow import DirectoryDoesNotExist from homeassistant.components.downloader.const import CONF_DOWNLOAD_DIR, DOMAIN from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_USER from homeassistant.core import HomeAssistant @@ -21,39 +20,35 @@ async def test_user_form(hass: HomeAssistant) -> None: result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": SOURCE_USER} ) + result = await hass.config_entries.flow.async_configure( + result["flow_id"], + user_input=CONFIG, + ) + assert result["type"] is FlowResultType.FORM - with patch( - "homeassistant.components.downloader.async_setup_entry", - return_value=True, - ): + with patch("os.path.isdir", return_value=False): result = await hass.config_entries.flow.async_configure( result["flow_id"], user_input=CONFIG, ) assert result["type"] is FlowResultType.FORM - - with patch( - "homeassistant.components.downloader.config_flow.DownloaderConfigFlow._validate_input", - side_effect=DirectoryDoesNotExist, - ): - assert result["type"] is FlowResultType.FORM - assert result["step_id"] == "user" - assert result["errors"] == {"base": "cannot_connect"} + assert result["step_id"] == "user" + assert result["errors"] == {"base": "directory_does_not_exist"} with ( patch( "homeassistant.components.downloader.async_setup_entry", return_value=True ), patch( - "homeassistant.components.downloader.config_flow.DownloaderConfigFlow._validate_input", - return_value=None, + "os.path.isdir", + return_value=True, ), ): result = await hass.config_entries.flow.async_configure( result["flow_id"], user_input=CONFIG, ) - + await hass.async_block_till_done() assert result["type"] is FlowResultType.CREATE_ENTRY assert result["title"] == "Downloader" assert result["data"] == {"download_dir": "download_dir"} @@ -66,7 +61,6 @@ async def test_single_instance_allowed( ) -> None: """Test we abort if already setup.""" mock_config_entry = MockConfigEntry(domain=DOMAIN) - mock_config_entry.add_to_hass(hass) result = await hass.config_entries.flow.async_init( @@ -84,21 +78,19 @@ async def test_import_flow_success(hass: HomeAssistant) -> None: "homeassistant.components.downloader.async_setup_entry", return_value=True ), patch( - "homeassistant.components.downloader.config_flow.DownloaderConfigFlow._validate_input", - return_value=None, + "os.path.isdir", + return_value=True, ), ): result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_IMPORT}, - data={}, + data=CONFIG, ) await hass.async_block_till_done() - assert result["type"] is FlowResultType.CREATE_ENTRY assert result["title"] == "Downloader" - assert result["data"] == {} - assert result["options"] == {} + assert result["data"] == CONFIG async def test_import_flow_directory_not_found(hass: HomeAssistant) -> None: @@ -112,6 +104,5 @@ async def test_import_flow_directory_not_found(hass: HomeAssistant) -> None: }, ) await hass.async_block_till_done() - assert result["type"] is FlowResultType.ABORT assert result["reason"] == "directory_does_not_exist"