Strip trailing / from OTBR url (#124223)

This commit is contained in:
Erik Montnemery 2024-08-19 16:06:20 +02:00 committed by GitHub
parent c76d68503a
commit 110ee9ff35
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 6 deletions

View File

@ -111,7 +111,7 @@ class OTBRConfigFlow(ConfigFlow, domain=DOMAIN):
errors = {} errors = {}
if user_input is not None: if user_input is not None:
url = user_input[CONF_URL] url = user_input[CONF_URL].rstrip("/")
try: try:
await self._connect_and_set_dataset(url) await self._connect_and_set_dataset(url)
except ( except (
@ -124,7 +124,7 @@ class OTBRConfigFlow(ConfigFlow, domain=DOMAIN):
await self.async_set_unique_id(DOMAIN) await self.async_set_unique_id(DOMAIN)
return self.async_create_entry( return self.async_create_entry(
title="Open Thread Border Router", title="Open Thread Border Router",
data=user_input, data={CONF_URL: url},
) )
data_schema = vol.Schema({CONF_URL: str}) data_schema = vol.Schema({CONF_URL: str})

View File

@ -49,17 +49,25 @@ def addon_info_fixture():
yield addon_info yield addon_info
@pytest.mark.parametrize(
"url",
[
"http://custom_url:1234",
"http://custom_url:1234/",
"http://custom_url:1234//",
],
)
async def test_user_flow( async def test_user_flow(
hass: HomeAssistant, aioclient_mock: AiohttpClientMocker hass: HomeAssistant, aioclient_mock: AiohttpClientMocker, url: str
) -> None: ) -> None:
"""Test the user flow.""" """Test the user flow."""
url = "http://custom_url:1234" stripped_url = "http://custom_url:1234"
aioclient_mock.get(f"{url}/node/dataset/active", text="aa") aioclient_mock.get(f"{stripped_url}/node/dataset/active", text="aa")
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
otbr.DOMAIN, context={"source": "user"} otbr.DOMAIN, context={"source": "user"}
) )
expected_data = {"url": url} expected_data = {"url": stripped_url}
assert result["type"] is FlowResultType.FORM assert result["type"] is FlowResultType.FORM
assert result["errors"] == {} assert result["errors"] == {}