From 9d387acb97399b199859ab37fa87ca6f4cedd530 Mon Sep 17 00:00:00 2001
From: Franck Nijhof <git@frenck.dev>
Date: Thu, 28 Nov 2024 12:25:16 +0100
Subject: [PATCH] Ensure custom integrations are assigned the custom IQS scale
 (#131795)

---
 homeassistant/loader.py | 3 +++
 tests/test_loader.py    | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/homeassistant/loader.py b/homeassistant/loader.py
index 4313cd2d6e0..1fa9d0cd49d 100644
--- a/homeassistant/loader.py
+++ b/homeassistant/loader.py
@@ -830,6 +830,9 @@ class Integration:
     @cached_property
     def quality_scale(self) -> str | None:
         """Return Integration Quality Scale."""
+        # Custom integrations default to "custom" quality scale.
+        if not self.is_built_in or self.overwrites_built_in:
+            return "custom"
         return self.manifest.get("quality_scale")
 
     @cached_property
diff --git a/tests/test_loader.py b/tests/test_loader.py
index a39bd63ad0d..4c3c4eb309f 100644
--- a/tests/test_loader.py
+++ b/tests/test_loader.py
@@ -547,6 +547,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
             ],
             "mqtt": ["hue/discovery"],
             "version": "1.0.0",
+            "quality_scale": "gold",
         },
     )
     assert integration.name == "Philips Hue"
@@ -585,6 +586,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
     assert integration.is_built_in is True
     assert integration.overwrites_built_in is False
     assert integration.version == "1.0.0"
+    assert integration.quality_scale == "gold"
 
     integration = loader.Integration(
         hass,
@@ -595,6 +597,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
             "domain": "hue",
             "dependencies": ["test-dep"],
             "requirements": ["test-req==1.0.0"],
+            "quality_scale": "gold",
         },
     )
     assert integration.is_built_in is False
@@ -607,6 +610,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
     assert integration.ssdp is None
     assert integration.mqtt is None
     assert integration.version is None
+    assert integration.quality_scale == "custom"
 
     integration = loader.Integration(
         hass,
-- 
GitLab