mirror of
https://github.com/home-assistant/core.git
synced 2026-04-29 18:33:44 +02:00
Fix issues() template method returns non active issues (#156274)
This commit is contained in:
@@ -1304,7 +1304,11 @@ def issues(hass: HomeAssistant) -> dict[tuple[str, str], dict[str, Any]]:
|
||||
"""Return all open issues."""
|
||||
current_issues = ir.async_get(hass).issues
|
||||
# Use JSON for safe representation
|
||||
return {k: v.to_json() for (k, v) in current_issues.items()}
|
||||
return {
|
||||
key: issue_entry.to_json()
|
||||
for (key, issue_entry) in current_issues.items()
|
||||
if issue_entry.active
|
||||
}
|
||||
|
||||
|
||||
def issue(hass: HomeAssistant, domain: str, issue_id: str) -> dict[str, Any] | None:
|
||||
|
||||
@@ -2878,6 +2878,55 @@ async def test_issues(hass: HomeAssistant, issue_registry: ir.IssueRegistry) ->
|
||||
assert_result_info(info, {})
|
||||
assert info.rate_limit is None
|
||||
|
||||
issue = ir.IssueEntry(
|
||||
active=False,
|
||||
breaks_in_ha_version="2025.12",
|
||||
created=dt_util.utcnow(),
|
||||
data=None,
|
||||
dismissed_version=None,
|
||||
domain="test",
|
||||
is_fixable=False,
|
||||
is_persistent=False,
|
||||
issue_domain="test",
|
||||
issue_id="issue 2",
|
||||
learn_more_url=None,
|
||||
severity="warning",
|
||||
translation_key="abc_1234",
|
||||
translation_placeholders={"abc": "123"},
|
||||
)
|
||||
# Add non active issue
|
||||
issue_registry.issues[("test", "issue 2")] = issue
|
||||
# Test non active issue is omitted
|
||||
issue_entry = issue_registry.async_get_issue("test", "issue 2")
|
||||
assert issue_entry
|
||||
issue_2_created = issue_entry.created
|
||||
assert issue_entry and not issue_entry.active
|
||||
info = render_to_info(hass, "{{ issues() }}")
|
||||
assert_result_info(info, {})
|
||||
assert info.rate_limit is None
|
||||
|
||||
# Load and activate the issue
|
||||
ir.async_create_issue(
|
||||
hass=hass,
|
||||
breaks_in_ha_version="2025.12",
|
||||
data=None,
|
||||
domain="test",
|
||||
is_fixable=False,
|
||||
is_persistent=False,
|
||||
issue_domain="test",
|
||||
issue_id="issue 2",
|
||||
learn_more_url=None,
|
||||
severity="warning",
|
||||
translation_key="abc_1234",
|
||||
translation_placeholders={"abc": "123"},
|
||||
)
|
||||
activated_issue_entry = issue_registry.async_get_issue("test", "issue 2")
|
||||
assert activated_issue_entry and activated_issue_entry.active
|
||||
assert issue_2_created == activated_issue_entry.created
|
||||
info = render_to_info(hass, "{{ issues()['test', 'issue 2'] }}")
|
||||
assert_result_info(info, activated_issue_entry.to_json())
|
||||
assert info.rate_limit is None
|
||||
|
||||
|
||||
async def test_issue(hass: HomeAssistant, issue_registry: ir.IssueRegistry) -> None:
|
||||
"""Test issue function."""
|
||||
|
||||
Reference in New Issue
Block a user