Skip to content

Commit 193b322

Browse files
authored
Fix domain validation in Tesla Fleet (home-assistant#148555)
1 parent e6702d2 commit 193b322

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

homeassistant/components/tesla_fleet/config_flow.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,5 +226,7 @@ async def async_step_reauth_confirm(
226226
def _is_valid_domain(self, domain: str) -> bool:
227227
"""Validate domain format."""
228228
# Basic domain validation regex
229-
domain_pattern = re.compile(r"^(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9-]+$")
229+
domain_pattern = re.compile(
230+
r"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$"
231+
)
230232
return bool(domain_pattern.match(domain))

tests/components/tesla_fleet/test_config_flow.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,15 +713,20 @@ async def test_reauth_confirm_form(hass: HomeAssistant) -> None:
713713
("domain", "expected_valid"),
714714
[
715715
("example.com", True),
716+
("exa-mple.com", True),
716717
("test.example.com", True),
718+
("tes-t.example.com", True),
717719
("sub.domain.example.org", True),
720+
("su-b.dom-ain.exam-ple.org", True),
718721
("https://example.com", False),
719722
("invalid-domain", False),
720723
("", False),
721724
("example", False),
722725
("example.", False),
723726
(".example.com", False),
724727
("exam ple.com", False),
728+
("-example.com", False),
729+
("domain-.example.com", False),
725730
],
726731
)
727732
def test_is_valid_domain(domain: str, expected_valid: bool) -> None:

0 commit comments

Comments
 (0)