From 6177a5978e0a2a101ba9a91d35430fb8036cd020 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:57:32 +0000 Subject: [PATCH] Only run validation if it's the only plugin --- script/hassfest/quality_scale.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index 706a482523a..5449ea48f0b 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -2357,7 +2357,9 @@ SCHEMA = vol.Schema( ) -def validate_iqs_file(config: Config, integration: Integration) -> None: +def validate_iqs_file( + config: Config, integration: Integration, run_validation: bool +) -> None: """Validate quality scale file for integration.""" if not integration.core: return @@ -2448,8 +2450,12 @@ def validate_iqs_file(config: Config, integration: Integration) -> None: rules_done.add(rule_name) for rule_name in rules_done: - if (validator := VALIDATORS.get(rule_name)) and ( - errors := validator.validate(config, integration, rules_done=rules_done) + if ( + run_validation + and (validator := VALIDATORS.get(rule_name)) + and ( + errors := validator.validate(config, integration, rules_done=rules_done) + ) ): for error in errors: integration.add_error("quality_scale", f"[{rule_name}] {error}") @@ -2476,5 +2482,8 @@ def validate_iqs_file(config: Config, integration: Integration) -> None: def validate(integrations: dict[str, Integration], config: Config) -> None: """Handle YAML files inside integrations.""" + # Only run validation if this is the only plugin + run_validation = len(config.plugins) == 1 + for integration in integrations.values(): - validate_iqs_file(config, integration) + validate_iqs_file(config, integration, run_validation)