From d50d914928f6deb21946b2d9afea86643baeb757 Mon Sep 17 00:00:00 2001 From: Manu <4445816+tr4nt0r@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:02:23 +0100 Subject: [PATCH] =?UTF-8?q?Update=20quality=20scale=20of=20Namecheap=20Dyn?= =?UTF-8?q?amicDNS=20integration=20to=20platinum=20=F0=9F=8F=86=EF=B8=8F?= =?UTF-8?q?=20(#161682)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .strict-typing | 1 + .../components/namecheapdns/manifest.json | 1 + .../namecheapdns/quality_scale.yaml | 110 ++++++++++++++++++ mypy.ini | 10 ++ script/hassfest/quality_scale.py | 2 - 5 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 homeassistant/components/namecheapdns/quality_scale.yaml diff --git a/.strict-typing b/.strict-typing index 2ea93fa6fbc..90c915e0327 100644 --- a/.strict-typing +++ b/.strict-typing @@ -367,6 +367,7 @@ homeassistant.components.my.* homeassistant.components.mysensors.* homeassistant.components.myuplink.* homeassistant.components.nam.* +homeassistant.components.namecheapdns.* homeassistant.components.nasweb.* homeassistant.components.neato.* homeassistant.components.nest.* diff --git a/homeassistant/components/namecheapdns/manifest.json b/homeassistant/components/namecheapdns/manifest.json index cb8b708a202..f02fef41b96 100644 --- a/homeassistant/components/namecheapdns/manifest.json +++ b/homeassistant/components/namecheapdns/manifest.json @@ -6,5 +6,6 @@ "documentation": "https://www.home-assistant.io/integrations/namecheapdns", "integration_type": "service", "iot_class": "cloud_push", + "quality_scale": "platinum", "requirements": [] } diff --git a/homeassistant/components/namecheapdns/quality_scale.yaml b/homeassistant/components/namecheapdns/quality_scale.yaml new file mode 100644 index 00000000000..a3c9bb2f0da --- /dev/null +++ b/homeassistant/components/namecheapdns/quality_scale.yaml @@ -0,0 +1,110 @@ +rules: + # Bronze + action-setup: + status: exempt + comment: the integration has no actions + appropriate-polling: done + brands: done + common-modules: done + config-flow-test-coverage: done + config-flow: done + dependency-transparency: + status: exempt + comment: no external dependencies + docs-actions: + status: exempt + comment: the integration has no actions + docs-high-level-description: done + docs-installation-instructions: done + docs-removal-instructions: done + entity-event-setup: + status: exempt + comment: integration has no entities + entity-unique-id: + status: exempt + comment: integration has no entities + has-entity-name: + status: exempt + comment: integration has no entities + runtime-data: done + test-before-configure: done + test-before-setup: done + unique-config-entry: done + + # Silver + action-exceptions: + status: exempt + comment: the integration has no actions + config-entry-unloading: done + docs-configuration-parameters: + status: exempt + comment: the integration has no options + docs-installation-parameters: done + entity-unavailable: + status: exempt + comment: integration has no entities + integration-owner: done + log-when-unavailable: done + parallel-updates: + status: exempt + comment: integration has no entity platforms + reauthentication-flow: done + test-coverage: done + + # Gold + devices: + status: exempt + comment: integration has no devices + diagnostics: + status: exempt + comment: the integration has no runtime data and entry data only contains sensitive information + discovery-update-info: + status: exempt + comment: the service cannot be discovered + discovery: + status: exempt + comment: the service cannot be discovered + docs-data-update: done + docs-examples: + status: exempt + comment: the integration has no entities or actions + docs-known-limitations: done + docs-supported-devices: + status: exempt + comment: the integration is a service + docs-supported-functions: + status: exempt + comment: integration has no entities or actions + docs-troubleshooting: done + docs-use-cases: done + dynamic-devices: + status: exempt + comment: integration has no devices + entity-category: + status: exempt + comment: integration has no entities + entity-device-class: + status: exempt + comment: integration has no entities + entity-disabled-by-default: + status: exempt + comment: integration has no entities + entity-translations: + status: exempt + comment: integration has no entities + exception-translations: done + icon-translations: + status: exempt + comment: integration has no entities or actions + reconfiguration-flow: done + repair-issues: done + stale-devices: + status: exempt + comment: integration has no devices + + # Platinum + async-dependency: + status: exempt + comment: integration has no external dependencies + inject-websession: done + strict-typing: done diff --git a/mypy.ini b/mypy.ini index 6ace8e21ce4..c1fc17cf908 100644 --- a/mypy.ini +++ b/mypy.ini @@ -3426,6 +3426,16 @@ disallow_untyped_defs = true warn_return_any = true warn_unreachable = true +[mypy-homeassistant.components.namecheapdns.*] +check_untyped_defs = true +disallow_incomplete_defs = true +disallow_subclassing_any = true +disallow_untyped_calls = true +disallow_untyped_decorators = true +disallow_untyped_defs = true +warn_return_any = true +warn_unreachable = true + [mypy-homeassistant.components.nasweb.*] check_untyped_defs = true disallow_incomplete_defs = true diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index 013f80a165f..4924065b325 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -651,7 +651,6 @@ INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE = [ "mythicbeastsdns", "nad", "nam", - "namecheapdns", "nanoleaf", "nasweb", "neato", @@ -1649,7 +1648,6 @@ INTEGRATIONS_WITHOUT_SCALE = [ "mythicbeastsdns", "nad", "nam", - "namecheapdns", "nanoleaf", "nasweb", "neato",