mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 19:27:45 +00:00
Update Sonarr config flow to standardize ports (#127625)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
88c227681d
commit
0468e7e7a3
@ -93,6 +93,13 @@ class SonarrConfigFlow(ConfigFlow, domain=DOMAIN):
|
|||||||
errors = {}
|
errors = {}
|
||||||
|
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
|
# aiopyarr defaults to the service port if one isn't given
|
||||||
|
# this is counter to standard practice where http = 80
|
||||||
|
# and https = 443.
|
||||||
|
if CONF_URL in user_input:
|
||||||
|
url = yarl.URL(user_input[CONF_URL])
|
||||||
|
user_input[CONF_URL] = f"{url.scheme}://{url.host}:{url.port}{url.path}"
|
||||||
|
|
||||||
if self.source == SOURCE_REAUTH:
|
if self.source == SOURCE_REAUTH:
|
||||||
user_input = {**self._get_reauth_entry().data, **user_input}
|
user_input = {**self._get_reauth_entry().data, **user_input}
|
||||||
|
|
||||||
|
@ -5,6 +5,6 @@ from homeassistant.const import CONF_API_KEY, CONF_URL
|
|||||||
MOCK_REAUTH_INPUT = {CONF_API_KEY: "test-api-key-reauth"}
|
MOCK_REAUTH_INPUT = {CONF_API_KEY: "test-api-key-reauth"}
|
||||||
|
|
||||||
MOCK_USER_INPUT = {
|
MOCK_USER_INPUT = {
|
||||||
CONF_URL: "http://192.168.1.189:8989",
|
CONF_URL: "http://192.168.1.189:8989/",
|
||||||
CONF_API_KEY: "MOCK_API_KEY",
|
CONF_API_KEY: "MOCK_API_KEY",
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,34 @@ async def test_cannot_connect(
|
|||||||
assert result["errors"] == {"base": "cannot_connect"}
|
assert result["errors"] == {"base": "cannot_connect"}
|
||||||
|
|
||||||
|
|
||||||
|
async def test_url_rewrite(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
mock_sonarr_config_flow: MagicMock,
|
||||||
|
mock_setup_entry: None,
|
||||||
|
) -> None:
|
||||||
|
"""Test the full manual user flow from start to finish."""
|
||||||
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
DOMAIN,
|
||||||
|
context={CONF_SOURCE: SOURCE_USER},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result["type"] is FlowResultType.FORM
|
||||||
|
assert result["step_id"] == "user"
|
||||||
|
|
||||||
|
user_input = MOCK_USER_INPUT.copy()
|
||||||
|
user_input[CONF_URL] = "https://192.168.1.189"
|
||||||
|
result = await hass.config_entries.flow.async_configure(
|
||||||
|
result["flow_id"],
|
||||||
|
user_input=user_input,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||||
|
assert result["title"] == "192.168.1.189"
|
||||||
|
|
||||||
|
assert result["data"]
|
||||||
|
assert result["data"][CONF_URL] == "https://192.168.1.189:443/"
|
||||||
|
|
||||||
|
|
||||||
async def test_invalid_auth(
|
async def test_invalid_auth(
|
||||||
hass: HomeAssistant, mock_sonarr_config_flow: MagicMock
|
hass: HomeAssistant, mock_sonarr_config_flow: MagicMock
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -145,7 +173,7 @@ async def test_full_user_flow_implementation(
|
|||||||
assert result["title"] == "192.168.1.189"
|
assert result["title"] == "192.168.1.189"
|
||||||
|
|
||||||
assert result["data"]
|
assert result["data"]
|
||||||
assert result["data"][CONF_URL] == "http://192.168.1.189:8989"
|
assert result["data"][CONF_URL] == "http://192.168.1.189:8989/"
|
||||||
|
|
||||||
|
|
||||||
async def test_full_user_flow_advanced_options(
|
async def test_full_user_flow_advanced_options(
|
||||||
@ -175,7 +203,7 @@ async def test_full_user_flow_advanced_options(
|
|||||||
assert result["title"] == "192.168.1.189"
|
assert result["title"] == "192.168.1.189"
|
||||||
|
|
||||||
assert result["data"]
|
assert result["data"]
|
||||||
assert result["data"][CONF_URL] == "http://192.168.1.189:8989"
|
assert result["data"][CONF_URL] == "http://192.168.1.189:8989/"
|
||||||
assert result["data"][CONF_VERIFY_SSL]
|
assert result["data"][CONF_VERIFY_SSL]
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user