Skip to content

Commit 82f94f8

Browse files
committed
Add cast back and test for latest version of installed addon
1 parent 29b882f commit 82f94f8

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

supervisor/api/store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ async def addons_addon_documentation(self, request: web.Request) -> str:
329329
@api_process
330330
async def addons_addon_availability(self, request: web.Request) -> None:
331331
"""Check add-on availability for current system."""
332-
addon = self._extract_addon(request)
332+
addon = cast(AddonStore, self._extract_addon(request))
333333
addon.validate_availability()
334334

335335
@api_process

tests/api/test_store.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -505,15 +505,6 @@ async def test_api_store_addons_addon_availability_success(
505505
assert resp.status == 200
506506

507507

508-
@pytest.mark.usefixtures("install_addon_ssh")
509-
async def test_api_store_addons_addon_availability_installed_addon(
510-
api_client: TestClient,
511-
):
512-
"""Test /store/addons/{addon}/availability REST API - installed addon."""
513-
resp = await api_client.get("/store/addons/local_ssh/availability")
514-
assert resp.status == 200
515-
516-
517508
async def test_api_store_addons_addon_availability_arch_not_supported(
518509
api_client: TestClient, coresys: CoreSys
519510
):
@@ -608,3 +599,27 @@ async def test_api_store_addons_addon_availability_homeassistant_version_too_old
608599
assert (
609600
"requires Home Assistant version 2023.1.1 or greater" in result["message"]
610601
)
602+
603+
604+
async def test_api_store_addons_addon_availability_installed_addon(
605+
api_client: TestClient, install_addon_ssh: Addon
606+
):
607+
"""Test /store/addons/{addon}/availability REST API - installed addon checks against latest version."""
608+
resp = await api_client.get("/store/addons/local_ssh/availability")
609+
assert resp.status == 200
610+
611+
install_addon_ssh.data_store["version"] = AwesomeVersion("10.0.0")
612+
install_addon_ssh.data_store["homeassistant"] = AwesomeVersion("2023.1.1")
613+
614+
# Mock the Home Assistant version to be older
615+
with patch.object(
616+
HomeAssistant,
617+
"version",
618+
new=PropertyMock(return_value=AwesomeVersion("2022.1.1")),
619+
):
620+
resp = await api_client.get("/store/addons/local_ssh/availability")
621+
assert resp.status == 400
622+
result = await resp.json()
623+
assert (
624+
"requires Home Assistant version 2023.1.1 or greater" in result["message"]
625+
)

0 commit comments

Comments
 (0)