Skip to content

Commit 2e21ae0

Browse files
authored
Fix manifest URL requirement install check (home-assistant#155664)
1 parent 6992bfe commit 2e21ae0

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

homeassistant/util/package.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ def is_installed(requirement_str: str) -> bool:
8686
"Installed version for %s resolved to None", req.name
8787
)
8888
return False
89+
if req.url:
90+
# If requirement is a URL, we cannot verify versions, so let
91+
# the package manager handle it
92+
return False
8993
return req.specifier.contains(installed_version, prereleases=True)
9094
except PackageNotFoundError:
9195
return False

tests/util/test_package.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,11 @@ def test_get_is_installed() -> None:
400400
assert package.is_installed(f"{installed_package}<={installed_version}")
401401
assert not package.is_installed(f"{installed_package}<{installed_version}")
402402

403+
# URL-based requirements should always return False, as no version check is possible
404+
assert not package.is_installed(
405+
"homeassistant@git+https://github.com/home-assistant/core.git@dev"
406+
)
407+
403408

404409
def test_check_package_previous_failed_install() -> None:
405410
"""Test for when a previously install package failed and left cruft behind."""

0 commit comments

Comments
 (0)