Skip to content

Commit

Permalink
Add HEOS quality scale (#132311)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewsayre authored Dec 12, 2024
1 parent a6b785d commit 1205178
Show file tree
Hide file tree
Showing 2 changed files with 114 additions and 1 deletion.
114 changes: 114 additions & 0 deletions homeassistant/components/heos/quality_scale.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
rules:
# Bronze
action-setup:
status: todo
comment: Future enhancement to move custom actions for login/out into an options flow.
appropriate-polling:
status: done
comment: Integration is a local push integration
brands: done
common-modules: todo
config-flow-test-coverage:
status: todo
comment:
1. The config flow is 100% covered, however some tests need to let HA create the flow
handler instead of doing it manually in the test.
2. We should also make sure every test ends in either CREATE_ENTRY or ABORT so we test
that the flow is able to recover from an error.
config-flow:
status: todo
comment: |
1. YAML import to be removed after core team meeting discussion on approach.
2. Consider enhnacement to automatically select a host when multiple are discovered.
3. Move hass.data[heos_discovered_hosts] into hass.data[heos]
dependency-transparency: done
docs-actions: done
docs-high-level-description: done
docs-installation-instructions: done
docs-removal-instructions: todo
entity-event-setup:
status: todo
comment: |
Simplify by using async_on_remove instead of keeping track of listeners to remove
later in async_will_remove_from_hass.
entity-unique-id: done
has-entity-name: done
runtime-data: done
test-before-configure: todo
test-before-setup: done
unique-config-entry:
status: todo
comment: |
The HEOS integration only supports a single config entry, but needs to be migrated to use
the `single_config_entry` flag. HEOS devices interconnect to each other, so connecting to
a single node yields access to all the devices setup with HEOS on your network. The HEOS API
documentation does not recommend connecting to multiple nodes which would provide no bennefit.
# Silver
action-exceptions:
status: todo
comment: Actions currently only log and instead should raise exceptions.
config-entry-unloading: done
docs-configuration-parameters:
status: done
comment: |
The integration doesn't provide any additional configuration parameters.
docs-installation-parameters: done
entity-unavailable: done
integration-owner: done
log-when-unavailable:
status: todo
comment: |
The integration currently spams the logs until reconnected
parallel-updates:
status: todo
comment: Needs to be set to 0. The underlying library handles parallel updates.
reauthentication-flow:
status: exempt
comment: |
This integration doesn't require re-authentication.
test-coverage:
status: todo
comment: |
1. Integration has >95% coverage, however tests need to be updated to not patch internals.
2. test_async_setup_entry_connect_failure and test_async_setup_entry_player_failure -> Instead of
calling async_setup_entry directly, rather use hass.config_entries.async_setup and then assert
the config_entry.state is what we expect.
3. test_unload_entry -> We should use hass.config_entries.async_unload and assert the entry state
4. Recommend using snapshot in test_state_attributes.
5. Find a way to avoid using internal dispatcher in test_updates_from_connection_event.
# Gold
devices:
status: todo
comment: |
The integraiton creates devices, but needs to stringify the id for the device identifier and
also migrate the device.
diagnostics: todo
discovery-update-info:
status: todo
comment: Explore if this is possible.
discovery: done
docs-data-update: todo
docs-examples: todo
docs-known-limitations: todo
docs-supported-devices: todo
docs-supported-functions: done
docs-troubleshooting:
status: todo
comment: Has some troublehsooting setps, but needs to be improved
docs-use-cases: done
dynamic-devices: todo
entity-category: done
entity-device-class: done
entity-disabled-by-default: done
entity-translations: done
exception-translations: todo
icon-translations: done
reconfiguration-flow: todo
repair-issues: todo
stale-devices: todo
# Platinum
async-dependency: done
inject-websession:
status: done
comment: The integration does not use websession
strict-typing: todo
1 change: 0 additions & 1 deletion script/hassfest/quality_scale.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,6 @@ class Rule:
"hddtemp",
"hdmi_cec",
"heatmiser",
"heos",
"here_travel_time",
"hikvision",
"hikvisioncam",
Expand Down

0 comments on commit 1205178

Please sign in to comment.