mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-27 11:06:32 +00:00
Fix no changelog API response (#5064)
* Fix no changelog API response * Add comment reasoning HTTP 200 for no changelog Co-authored-by: Stefan Agner <stefan@agner.ch> * Apply suggestions from code review Co-authored-by: Jan Čermák <sairon@users.noreply.github.com> --------- Co-authored-by: Jan Čermák <sairon@users.noreply.github.com> Co-authored-by: Stefan Agner <stefan@agner.ch>
This commit is contained in:
parent
1a700c3013
commit
c05984ca49
@ -697,7 +697,6 @@ class RestAPI(CoreSysAttributes):
|
|||||||
web.get("/store", api_store.store_info),
|
web.get("/store", api_store.store_info),
|
||||||
web.get("/store/addons", api_store.addons_list),
|
web.get("/store/addons", api_store.addons_list),
|
||||||
web.get("/store/addons/{addon}", api_store.addons_addon_info),
|
web.get("/store/addons/{addon}", api_store.addons_addon_info),
|
||||||
web.get("/store/addons/{addon}/{version}", api_store.addons_addon_info),
|
|
||||||
web.get("/store/addons/{addon}/icon", api_store.addons_addon_icon),
|
web.get("/store/addons/{addon}/icon", api_store.addons_addon_icon),
|
||||||
web.get("/store/addons/{addon}/logo", api_store.addons_addon_logo),
|
web.get("/store/addons/{addon}/logo", api_store.addons_addon_logo),
|
||||||
web.get(
|
web.get(
|
||||||
@ -719,6 +718,8 @@ class RestAPI(CoreSysAttributes):
|
|||||||
"/store/addons/{addon}/update/{version}",
|
"/store/addons/{addon}/update/{version}",
|
||||||
api_store.addons_addon_update,
|
api_store.addons_addon_update,
|
||||||
),
|
),
|
||||||
|
# Must be below others since it has a wildcard in resource path
|
||||||
|
web.get("/store/addons/{addon}/{version}", api_store.addons_addon_info),
|
||||||
web.post("/store/reload", api_store.reload),
|
web.post("/store/reload", api_store.reload),
|
||||||
web.get("/store/repositories", api_store.repositories_list),
|
web.get("/store/repositories", api_store.repositories_list),
|
||||||
web.get(
|
web.get(
|
||||||
|
@ -251,7 +251,7 @@ class APIStore(CoreSysAttributes):
|
|||||||
"""Return changelog from add-on."""
|
"""Return changelog from add-on."""
|
||||||
addon = self._extract_addon(request)
|
addon = self._extract_addon(request)
|
||||||
if not addon.with_changelog:
|
if not addon.with_changelog:
|
||||||
raise APIError(f"No changelog found for add-on {addon.slug}!")
|
return f"No changelog found for add-on {addon.slug}!"
|
||||||
|
|
||||||
with addon.path_changelog.open("r") as changelog:
|
with addon.path_changelog.open("r") as changelog:
|
||||||
return changelog.read()
|
return changelog.read()
|
||||||
|
@ -188,3 +188,18 @@ async def test_api_store_update_healthcheck(
|
|||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
|
|
||||||
await _container_events_task
|
await _container_events_task
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("resource", ["store/addons", "addons"])
|
||||||
|
async def test_api_store_addons_no_changelog(
|
||||||
|
api_client: TestClient, coresys: CoreSys, store_addon: AddonStore, resource: str
|
||||||
|
):
|
||||||
|
"""Test /store/addons/{addon}/changelog REST API.
|
||||||
|
|
||||||
|
Currently the frontend expects a valid body even in the error case. Make sure that is
|
||||||
|
what the API returns.
|
||||||
|
"""
|
||||||
|
resp = await api_client.get(f"/{resource}/{store_addon.slug}/changelog")
|
||||||
|
assert resp.status == 200
|
||||||
|
result = await resp.text()
|
||||||
|
assert result == "No changelog found for add-on test_store_addon!"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user