Skip to content

Commit 723d364

Browse files
committed
Add cast back and test for latest version of installed addon
1 parent 4983c0b commit 723d364

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
@@ -300,7 +300,7 @@ async def addons_addon_documentation(self, request: web.Request) -> str:
300300
@api_process
301301
async def addons_addon_availability(self, request: web.Request) -> None:
302302
"""Check add-on availability for current system."""
303-
addon = self._extract_addon(request)
303+
addon = cast(AddonStore, self._extract_addon(request))
304304
addon.validate_availability()
305305

306306
@api_process

tests/api/test_store.py

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

405405

406-
@pytest.mark.usefixtures("install_addon_ssh")
407-
async def test_api_store_addons_addon_availability_installed_addon(
408-
api_client: TestClient,
409-
):
410-
"""Test /store/addons/{addon}/availability REST API - installed addon."""
411-
resp = await api_client.get("/store/addons/local_ssh/availability")
412-
assert resp.status == 200
413-
414-
415406
async def test_api_store_addons_addon_availability_arch_not_supported(
416407
api_client: TestClient, coresys: CoreSys
417408
):
@@ -506,3 +497,27 @@ async def test_api_store_addons_addon_availability_homeassistant_version_too_old
506497
assert (
507498
"requires Home Assistant version 2023.1.1 or greater" in result["message"]
508499
)
500+
501+
502+
async def test_api_store_addons_addon_availability_installed_addon(
503+
api_client: TestClient, install_addon_ssh: Addon
504+
):
505+
"""Test /store/addons/{addon}/availability REST API - installed addon checks against latest version."""
506+
resp = await api_client.get("/store/addons/local_ssh/availability")
507+
assert resp.status == 200
508+
509+
install_addon_ssh.data_store["version"] = AwesomeVersion("10.0.0")
510+
install_addon_ssh.data_store["homeassistant"] = AwesomeVersion("2023.1.1")
511+
512+
# Mock the Home Assistant version to be older
513+
with patch.object(
514+
HomeAssistant,
515+
"version",
516+
new=PropertyMock(return_value=AwesomeVersion("2022.1.1")),
517+
):
518+
resp = await api_client.get("/store/addons/local_ssh/availability")
519+
assert resp.status == 400
520+
result = await resp.json()
521+
assert (
522+
"requires Home Assistant version 2023.1.1 or greater" in result["message"]
523+
)

0 commit comments

Comments
 (0)