diff --git a/homeassistant/components/duckdns/manifest.json b/homeassistant/components/duckdns/manifest.json index 167b75a5a0d..4be37ed4de0 100644 --- a/homeassistant/components/duckdns/manifest.json +++ b/homeassistant/components/duckdns/manifest.json @@ -5,5 +5,6 @@ "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/duckdns", "integration_type": "service", - "iot_class": "cloud_polling" + "iot_class": "cloud_polling", + "quality_scale": "platinum" } diff --git a/homeassistant/components/duckdns/quality_scale.yaml b/homeassistant/components/duckdns/quality_scale.yaml new file mode 100644 index 00000000000..291f1b34c86 --- /dev/null +++ b/homeassistant/components/duckdns/quality_scale.yaml @@ -0,0 +1,102 @@ +rules: + # Bronze + action-setup: done + 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: done + 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: done + 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: + status: exempt + comment: service does not explicitly return authentication errors + 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: done + 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: done + 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/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index bc97db995f3..cada38831bb 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -298,7 +298,6 @@ INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE = [ "dsmr", "dsmr_reader", "dublin_bus_transport", - "duckdns", "duke_energy", "dunehd", "duotecno", @@ -1290,7 +1289,6 @@ INTEGRATIONS_WITHOUT_SCALE = [ "dsmr", "dsmr_reader", "dublin_bus_transport", - "duckdns", "duke_energy", "dunehd", "duotecno",