1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00

Add check for typed ConfigEntry in quality scale validation (#132028)

This commit is contained in:
epenet
2024-12-10 13:07:08 +01:00
committed by GitHub
parent 46d4081ec6
commit 95107cf670
12 changed files with 101 additions and 22 deletions

View File

@@ -1348,16 +1348,19 @@ def validate_iqs_file(config: Config, integration: Integration) -> None:
"quality_scale", f"Invalid {name}: {humanize_error(data, err)}"
)
rules_done = set[str]()
rules_met = set[str]()
for rule_name, rule_value in data.get("rules", {}).items():
status = rule_value["status"] if isinstance(rule_value, dict) else rule_value
if status not in {"done", "exempt"}:
continue
rules_met.add(rule_name)
if (
status == "done"
and (validator := VALIDATORS.get(rule_name))
and (errors := validator.validate(integration))
if status == "done":
rules_done.add(rule_name)
for rule_name in rules_done:
if (validator := VALIDATORS.get(rule_name)) and (
errors := validator.validate(integration, rules_done=rules_done)
):
for error in errors:
integration.add_error("quality_scale", f"[{rule_name}] {error}")