diff --git a/homeassistant/components/sfr_box/quality_scale.yaml b/homeassistant/components/sfr_box/quality_scale.yaml index 77706a6bca6..e6efb8ffbe1 100644 --- a/homeassistant/components/sfr_box/quality_scale.yaml +++ b/homeassistant/components/sfr_box/quality_scale.yaml @@ -38,9 +38,6 @@ rules: status: todo comment: | - 93% on diagnostics / 92% on sensors, need to improve overall coverage - - It would be nice to use the snapshot helper as currently it would just throw everything in a list - - We also test the devices in each platform, kinda overkill - - We should use entity_registry_enabled_by_default instead to enable entities integration-owner: done docs-installation-parameters: status: todo diff --git a/tests/components/sfr_box/snapshots/test_binary_sensor.ambr b/tests/components/sfr_box/snapshots/test_binary_sensor.ambr index f046f95ed42..524c4eb8d61 100644 --- a/tests/components/sfr_box/snapshots/test_binary_sensor.ambr +++ b/tests/components/sfr_box/snapshots/test_binary_sensor.ambr @@ -1,263 +1,197 @@ # serializer version: 1 -# name: test_binary_sensors[adsl] - list([ - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'config_entries_subentries': , - 'configuration_url': 'http://192.168.0.1', - 'connections': set({ - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'sfr_box', - 'e4:5d:51:00:11:22', - ), - }), - 'labels': set({ - }), - 'manufacturer': None, - 'model': 'NB6VAC-FXC-r0', - 'model_id': 'NB6VAC-FXC-r0', - 'name': 'SFR Box', - 'name_by_user': None, - 'primary_config_entry': , - 'serial_number': None, - 'sw_version': 'NB6VAC-MAIN-R4.0.44k', - 'via_device_id': None, +# name: test_binary_sensors[adsl][binary_sensor.sfr_box_dsl_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - ]) + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.sfr_box_dsl_status', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL status', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_status', + 'unique_id': 'e4:5d:51:00:11:22_dsl_status', + 'unit_of_measurement': None, + }) # --- -# name: test_binary_sensors[adsl].1 - list([ - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'binary_sensor', - 'entity_category': , - 'entity_id': 'binary_sensor.sfr_box_wan_status', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'WAN status', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'wan_status', - 'unique_id': 'e4:5d:51:00:11:22_wan_status', - 'unit_of_measurement': None, +# name: test_binary_sensors[adsl][binary_sensor.sfr_box_dsl_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'SFR Box DSL status', }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'binary_sensor', - 'entity_category': , - 'entity_id': 'binary_sensor.sfr_box_dsl_status', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL status', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_status', - 'unique_id': 'e4:5d:51:00:11:22_dsl_status', - 'unit_of_measurement': None, - }), - ]) + 'context': , + 'entity_id': 'binary_sensor.sfr_box_dsl_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) # --- -# name: test_binary_sensors[adsl].2 - list([ - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'connectivity', - 'friendly_name': 'SFR Box WAN status', - }), - 'context': , - 'entity_id': 'binary_sensor.sfr_box_wan_status', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'on', +# name: test_binary_sensors[adsl][binary_sensor.sfr_box_wan_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'connectivity', - 'friendly_name': 'SFR Box DSL status', - }), - 'context': , - 'entity_id': 'binary_sensor.sfr_box_dsl_status', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'on', + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.sfr_box_wan_status', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ }), - ]) + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'WAN status', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'wan_status', + 'unique_id': 'e4:5d:51:00:11:22_wan_status', + 'unit_of_measurement': None, + }) # --- -# name: test_binary_sensors[ftth] - list([ - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'config_entries_subentries': , - 'configuration_url': 'http://192.168.0.1', - 'connections': set({ - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'sfr_box', - 'e4:5d:51:00:11:22', - ), - }), - 'labels': set({ - }), - 'manufacturer': None, - 'model': 'NB6VAC-FXC-r0', - 'model_id': 'NB6VAC-FXC-r0', - 'name': 'SFR Box', - 'name_by_user': None, - 'primary_config_entry': , - 'serial_number': None, - 'sw_version': 'NB6VAC-MAIN-R4.0.44k', - 'via_device_id': None, +# name: test_binary_sensors[adsl][binary_sensor.sfr_box_wan_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'SFR Box WAN status', }), - ]) + 'context': , + 'entity_id': 'binary_sensor.sfr_box_wan_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) # --- -# name: test_binary_sensors[ftth].1 - list([ - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'binary_sensor', - 'entity_category': , - 'entity_id': 'binary_sensor.sfr_box_wan_status', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'WAN status', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'wan_status', - 'unique_id': 'e4:5d:51:00:11:22_wan_status', - 'unit_of_measurement': None, +# name: test_binary_sensors[ftth][binary_sensor.sfr_box_ftth_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'binary_sensor', - 'entity_category': , - 'entity_id': 'binary_sensor.sfr_box_ftth_status', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'FTTH status', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'ftth_status', - 'unique_id': 'e4:5d:51:00:11:22_ftth_status', - 'unit_of_measurement': None, + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.sfr_box_ftth_status', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ }), - ]) + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'FTTH status', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'ftth_status', + 'unique_id': 'e4:5d:51:00:11:22_ftth_status', + 'unit_of_measurement': None, + }) # --- -# name: test_binary_sensors[ftth].2 - list([ - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'connectivity', - 'friendly_name': 'SFR Box WAN status', - }), - 'context': , - 'entity_id': 'binary_sensor.sfr_box_wan_status', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'on', +# name: test_binary_sensors[ftth][binary_sensor.sfr_box_ftth_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'SFR Box FTTH status', }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'connectivity', - 'friendly_name': 'SFR Box FTTH status', - }), - 'context': , - 'entity_id': 'binary_sensor.sfr_box_ftth_status', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'off', - }), - ]) + 'context': , + 'entity_id': 'binary_sensor.sfr_box_ftth_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_binary_sensors[ftth][binary_sensor.sfr_box_wan_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.sfr_box_wan_status', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'WAN status', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'wan_status', + 'unique_id': 'e4:5d:51:00:11:22_wan_status', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensors[ftth][binary_sensor.sfr_box_wan_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'connectivity', + 'friendly_name': 'SFR Box WAN status', + }), + 'context': , + 'entity_id': 'binary_sensor.sfr_box_wan_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) # --- diff --git a/tests/components/sfr_box/snapshots/test_button.ambr b/tests/components/sfr_box/snapshots/test_button.ambr index 5d5c6d0edba..8598b3b21ab 100644 --- a/tests/components/sfr_box/snapshots/test_button.ambr +++ b/tests/components/sfr_box/snapshots/test_button.ambr @@ -1,87 +1,50 @@ # serializer version: 1 -# name: test_buttons - list([ - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'config_entries_subentries': , - 'configuration_url': 'http://192.168.0.1', - 'connections': set({ - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'sfr_box', - 'e4:5d:51:00:11:22', - ), - }), - 'labels': set({ - }), - 'manufacturer': None, - 'model': 'NB6VAC-FXC-r0', - 'model_id': 'NB6VAC-FXC-r0', - 'name': 'SFR Box', - 'name_by_user': None, - 'primary_config_entry': , - 'serial_number': None, - 'sw_version': 'NB6VAC-MAIN-R4.0.44k', - 'via_device_id': None, +# name: test_buttons[button.sfr_box_restart-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - ]) -# --- -# name: test_buttons.1 - list([ - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'button', - 'entity_category': , - 'entity_id': 'button.sfr_box_restart', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Restart', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'e4:5d:51:00:11:22_system_reboot', - 'unit_of_measurement': None, + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.sfr_box_restart', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ }), - ]) -# --- -# name: test_buttons.2 - list([ - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'restart', - 'friendly_name': 'SFR Box Restart', - }), - 'context': , - 'entity_id': 'button.sfr_box_restart', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'unknown', + 'name': None, + 'options': dict({ }), - ]) + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Restart', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'e4:5d:51:00:11:22_system_reboot', + 'unit_of_measurement': None, + }) +# --- +# name: test_buttons[button.sfr_box_restart-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'restart', + 'friendly_name': 'SFR Box Restart', + }), + 'context': , + 'entity_id': 'button.sfr_box_restart', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) # --- diff --git a/tests/components/sfr_box/snapshots/test_init.ambr b/tests/components/sfr_box/snapshots/test_init.ambr new file mode 100644 index 00000000000..0819e80b09d --- /dev/null +++ b/tests/components/sfr_box/snapshots/test_init.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_device_registry + list([ + ]) +# --- diff --git a/tests/components/sfr_box/snapshots/test_sensor.ambr b/tests/components/sfr_box/snapshots/test_sensor.ambr index 0440505859a..e95ea24e14c 100644 --- a/tests/components/sfr_box/snapshots/test_sensor.ambr +++ b/tests/components/sfr_box/snapshots/test_sensor.ambr @@ -1,822 +1,847 @@ # serializer version: 1 -# name: test_sensors - list([ - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'config_entries_subentries': , - 'configuration_url': 'http://192.168.0.1', - 'connections': set({ - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'sfr_box', - 'e4:5d:51:00:11:22', - ), - }), - 'labels': set({ - }), - 'manufacturer': None, - 'model': 'NB6VAC-FXC-r0', - 'model_id': 'NB6VAC-FXC-r0', - 'name': 'SFR Box', - 'name_by_user': None, - 'primary_config_entry': , - 'serial_number': None, - 'sw_version': 'NB6VAC-MAIN-R4.0.44k', - 'via_device_id': None, +# name: test_sensors[sensor.sfr_box_dsl_attenuation_down-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - ]) + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_attenuation_down', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL attenuation down', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_attenuation_down', + 'unique_id': 'e4:5d:51:00:11:22_dsl_attenuation_down', + 'unit_of_measurement': 'dB', + }) # --- -# name: test_sensors.1 - list([ - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'options': list([ - 'adsl', - 'ftth', - 'gprs', - 'unknown', - ]), - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_network_infrastructure', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Network infrastructure', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'net_infra', - 'unique_id': 'e4:5d:51:00:11:22_system_net_infra', - 'unit_of_measurement': None, +# name: test_sensors[sensor.sfr_box_dsl_attenuation_down-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'signal_strength', + 'friendly_name': 'SFR Box DSL attenuation down', + 'state_class': , + 'unit_of_measurement': 'dB', }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_voltage', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Voltage', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'e4:5d:51:00:11:22_system_alimvoltage', - 'unit_of_measurement': , + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_attenuation_down', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '28.5', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_attenuation_up-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_attenuation_up', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL attenuation up', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_attenuation_up', + 'unique_id': 'e4:5d:51:00:11:22_dsl_attenuation_up', + 'unit_of_measurement': 'dB', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_attenuation_up-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'signal_strength', + 'friendly_name': 'SFR Box DSL attenuation up', + 'state_class': , + 'unit_of_measurement': 'dB', + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_attenuation_up', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '20.8', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_counter-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_counter', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'DSL counter', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_counter', + 'unique_id': 'e4:5d:51:00:11:22_dsl_counter', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_counter-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'SFR Box DSL counter', + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_counter', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '16', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_crc-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_crc', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'DSL CRC', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_crc', + 'unique_id': 'e4:5d:51:00:11:22_dsl_crc', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_crc-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'SFR Box DSL CRC', + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_crc', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_line_mode-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_line_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'DSL line mode', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_linemode', + 'unique_id': 'e4:5d:51:00:11:22_dsl_linemode', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_line_mode-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'SFR Box DSL line mode', + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_line_mode', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'ADSL2+', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_line_status-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'no_defect', + 'loss_of_frame', + 'loss_of_signal', + 'loss_of_power', + 'loss_of_signal_quality', + 'unknown', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_line_status', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL line status', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_line_status', + 'unique_id': 'e4:5d:51:00:11:22_dsl_line_status', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_line_status-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'SFR Box DSL line status', + 'options': list([ + 'no_defect', + 'loss_of_frame', + 'loss_of_signal', + 'loss_of_power', + 'loss_of_signal_quality', + 'unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_line_status', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'no_defect', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_noise_down-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_noise_down', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL noise down', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_noise_down', + 'unique_id': 'e4:5d:51:00:11:22_dsl_noise_down', + 'unit_of_measurement': 'dB', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_noise_down-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'signal_strength', + 'friendly_name': 'SFR Box DSL noise down', + 'state_class': , + 'unit_of_measurement': 'dB', + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_noise_down', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '5.8', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_noise_up-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_noise_up', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL noise up', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_noise_up', + 'unique_id': 'e4:5d:51:00:11:22_dsl_noise_up', + 'unit_of_measurement': 'dB', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_noise_up-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'signal_strength', + 'friendly_name': 'SFR Box DSL noise up', + 'state_class': , + 'unit_of_measurement': 'dB', + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_noise_up', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '6.0', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_rate_down-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.sfr_box_dsl_rate_down', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL rate down', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_rate_down', + 'unique_id': 'e4:5d:51:00:11:22_dsl_rate_down', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_rate_down-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'data_rate', + 'friendly_name': 'SFR Box DSL rate down', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_rate_down', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '5549', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_rate_up-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.sfr_box_dsl_rate_up', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_temperature', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL rate up', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_rate_up', + 'unique_id': 'e4:5d:51:00:11:22_dsl_rate_up', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_rate_up-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'data_rate', + 'friendly_name': 'SFR Box DSL rate up', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_rate_up', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '187', + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_training-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'idle', + 'g_994_training', + 'g_992_started', + 'g_922_channel_analysis', + 'g_992_message_exchange', + 'g_993_started', + 'g_993_channel_analysis', + 'g_993_message_exchange', + 'showtime', + 'unknown', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_dsl_training', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'DSL training', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'dsl_training', + 'unique_id': 'e4:5d:51:00:11:22_dsl_training', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_dsl_training-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'SFR Box DSL training', + 'options': list([ + 'idle', + 'g_994_training', + 'g_992_started', + 'g_922_channel_analysis', + 'g_992_message_exchange', + 'g_993_started', + 'g_993_channel_analysis', + 'g_993_message_exchange', + 'showtime', + 'unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.sfr_box_dsl_training', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'showtime', + }) +# --- +# name: test_sensors[sensor.sfr_box_network_infrastructure-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'adsl', + 'ftth', + 'gprs', + 'unknown', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_network_infrastructure', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Network infrastructure', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'net_infra', + 'unique_id': 'e4:5d:51:00:11:22_system_net_infra', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_network_infrastructure-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'SFR Box Network infrastructure', + 'options': list([ + 'adsl', + 'ftth', + 'gprs', + 'unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.sfr_box_network_infrastructure', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'adsl', + }) +# --- +# name: test_sensors[sensor.sfr_box_temperature-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 1, }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Temperature', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'e4:5d:51:00:11:22_system_temperature', + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Temperature', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'e4:5d:51:00:11:22_system_temperature', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.sfr_box_temperature-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'SFR Box Temperature', + 'state_class': , 'unit_of_measurement': , }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'options': list([ - 'adsl_ppp', - 'adsl_routed', - 'ftth_routed', - 'grps_ppp', - 'unknown', - ]), - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_wan_mode', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'WAN mode', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'wan_mode', - 'unique_id': 'e4:5d:51:00:11:22_wan_mode', - 'unit_of_measurement': None, - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_line_mode', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': None, - 'original_icon': None, - 'original_name': 'DSL line mode', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_linemode', - 'unique_id': 'e4:5d:51:00:11:22_dsl_linemode', - 'unit_of_measurement': None, - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_counter', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': None, - 'original_icon': None, - 'original_name': 'DSL counter', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_counter', - 'unique_id': 'e4:5d:51:00:11:22_dsl_counter', - 'unit_of_measurement': None, - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_crc', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': None, - 'original_icon': None, - 'original_name': 'DSL CRC', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_crc', - 'unique_id': 'e4:5d:51:00:11:22_dsl_crc', - 'unit_of_measurement': None, - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_noise_down', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL noise down', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_noise_down', - 'unique_id': 'e4:5d:51:00:11:22_dsl_noise_down', - 'unit_of_measurement': 'dB', - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_noise_up', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL noise up', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_noise_up', - 'unique_id': 'e4:5d:51:00:11:22_dsl_noise_up', - 'unit_of_measurement': 'dB', - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_attenuation_down', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL attenuation down', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_attenuation_down', - 'unique_id': 'e4:5d:51:00:11:22_dsl_attenuation_down', - 'unit_of_measurement': 'dB', - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_attenuation_up', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL attenuation up', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_attenuation_up', - 'unique_id': 'e4:5d:51:00:11:22_dsl_attenuation_up', - 'unit_of_measurement': 'dB', - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.sfr_box_dsl_rate_down', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL rate down', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_rate_down', - 'unique_id': 'e4:5d:51:00:11:22_dsl_rate_down', - 'unit_of_measurement': , - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.sfr_box_dsl_rate_up', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL rate up', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_rate_up', - 'unique_id': 'e4:5d:51:00:11:22_dsl_rate_up', - 'unit_of_measurement': , - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'options': list([ - 'no_defect', - 'loss_of_frame', - 'loss_of_signal', - 'loss_of_power', - 'loss_of_signal_quality', - 'unknown', - ]), - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_line_status', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL line status', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_line_status', - 'unique_id': 'e4:5d:51:00:11:22_dsl_line_status', - 'unit_of_measurement': None, - }), - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'options': list([ - 'idle', - 'g_994_training', - 'g_992_started', - 'g_922_channel_analysis', - 'g_992_message_exchange', - 'g_993_started', - 'g_993_channel_analysis', - 'g_993_message_exchange', - 'showtime', - 'unknown', - ]), - }), - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': , - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.sfr_box_dsl_training', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'DSL training', - 'platform': 'sfr_box', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': 'dsl_training', - 'unique_id': 'e4:5d:51:00:11:22_dsl_training', - 'unit_of_measurement': None, - }), - ]) + 'context': , + 'entity_id': 'sensor.sfr_box_temperature', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '27.56', + }) # --- -# name: test_sensors.2 - list([ - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'enum', - 'friendly_name': 'SFR Box Network infrastructure', - 'options': list([ - 'adsl', - 'ftth', - 'gprs', - 'unknown', - ]), - }), - 'context': , - 'entity_id': 'sensor.sfr_box_network_infrastructure', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'adsl', +# name: test_sensors[sensor.sfr_box_voltage-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'SFR Box Voltage', - 'state_class': , - 'unit_of_measurement': , - }), - 'context': , - 'entity_id': 'sensor.sfr_box_voltage', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '12251', + 'area_id': None, + 'capabilities': dict({ + 'state_class': , }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'temperature', - 'friendly_name': 'SFR Box Temperature', - 'state_class': , - 'unit_of_measurement': , - }), - 'context': , - 'entity_id': 'sensor.sfr_box_temperature', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '27.56', + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'enum', - 'friendly_name': 'SFR Box WAN mode', - 'options': list([ - 'adsl_ppp', - 'adsl_routed', - 'ftth_routed', - 'grps_ppp', - 'unknown', - ]), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, }), - 'context': , - 'entity_id': 'sensor.sfr_box_wan_mode', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'adsl_routed', }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'friendly_name': 'SFR Box DSL line mode', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_line_mode', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'ADSL2+', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'friendly_name': 'SFR Box DSL counter', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_counter', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '16', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'friendly_name': 'SFR Box DSL CRC', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_crc', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '0', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'signal_strength', - 'friendly_name': 'SFR Box DSL noise down', - 'state_class': , - 'unit_of_measurement': 'dB', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_noise_down', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '5.8', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'signal_strength', - 'friendly_name': 'SFR Box DSL noise up', - 'state_class': , - 'unit_of_measurement': 'dB', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_noise_up', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '6.0', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'signal_strength', - 'friendly_name': 'SFR Box DSL attenuation down', - 'state_class': , - 'unit_of_measurement': 'dB', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_attenuation_down', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '28.5', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'signal_strength', - 'friendly_name': 'SFR Box DSL attenuation up', - 'state_class': , - 'unit_of_measurement': 'dB', - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_attenuation_up', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '20.8', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'data_rate', - 'friendly_name': 'SFR Box DSL rate down', - 'state_class': , - 'unit_of_measurement': , - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_rate_down', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '5549', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'data_rate', - 'friendly_name': 'SFR Box DSL rate up', - 'state_class': , - 'unit_of_measurement': , - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_rate_up', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '187', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'enum', - 'friendly_name': 'SFR Box DSL line status', - 'options': list([ - 'no_defect', - 'loss_of_frame', - 'loss_of_signal', - 'loss_of_power', - 'loss_of_signal_quality', - 'unknown', - ]), - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_line_status', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'no_defect', - }), - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'enum', - 'friendly_name': 'SFR Box DSL training', - 'options': list([ - 'idle', - 'g_994_training', - 'g_992_started', - 'g_922_channel_analysis', - 'g_992_message_exchange', - 'g_993_started', - 'g_993_channel_analysis', - 'g_993_message_exchange', - 'showtime', - 'unknown', - ]), - }), - 'context': , - 'entity_id': 'sensor.sfr_box_dsl_training', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': 'showtime', - }), - ]) + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Voltage', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': 'e4:5d:51:00:11:22_system_alimvoltage', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[sensor.sfr_box_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'SFR Box Voltage', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.sfr_box_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '12251', + }) +# --- +# name: test_sensors[sensor.sfr_box_wan_mode-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'adsl_ppp', + 'adsl_routed', + 'ftth_routed', + 'grps_ppp', + 'unknown', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.sfr_box_wan_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'WAN mode', + 'platform': 'sfr_box', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'wan_mode', + 'unique_id': 'e4:5d:51:00:11:22_wan_mode', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[sensor.sfr_box_wan_mode-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'SFR Box WAN mode', + 'options': list([ + 'adsl_ppp', + 'adsl_routed', + 'ftth_routed', + 'grps_ppp', + 'unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.sfr_box_wan_mode', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'adsl_routed', + }) # --- diff --git a/tests/components/sfr_box/test_binary_sensor.py b/tests/components/sfr_box/test_binary_sensor.py index 6152f8e2721..aa226d2e350 100644 --- a/tests/components/sfr_box/test_binary_sensor.py +++ b/tests/components/sfr_box/test_binary_sensor.py @@ -10,7 +10,9 @@ from syrupy.assertion import SnapshotAssertion from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from homeassistant.helpers import device_registry as dr, entity_registry as er +from homeassistant.helpers import entity_registry as er + +from tests.common import snapshot_platform pytestmark = pytest.mark.usefixtures( "system_get_info", "dsl_get_info", "ftth_get_info", "wan_get_info" @@ -28,7 +30,6 @@ def override_platforms() -> Generator[None]: async def test_binary_sensors( hass: HomeAssistant, config_entry: ConfigEntry, - device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, snapshot: SnapshotAssertion, system_get_info: SystemInfo, @@ -39,18 +40,4 @@ async def test_binary_sensors( await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - # Ensure devices are correctly registered - device_entries = dr.async_entries_for_config_entry( - device_registry, config_entry.entry_id - ) - assert device_entries == snapshot - - # Ensure entities are correctly registered - entity_entries = er.async_entries_for_config_entry( - entity_registry, config_entry.entry_id - ) - assert entity_entries == snapshot - - # Ensure entity states are correct - states = [hass.states.get(ent.entity_id) for ent in entity_entries] - assert states == snapshot + await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id) diff --git a/tests/components/sfr_box/test_button.py b/tests/components/sfr_box/test_button.py index f555ccebbf9..4f5739237b4 100644 --- a/tests/components/sfr_box/test_button.py +++ b/tests/components/sfr_box/test_button.py @@ -12,7 +12,9 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_ENTITY_ID, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError -from homeassistant.helpers import device_registry as dr, entity_registry as er +from homeassistant.helpers import entity_registry as er + +from tests.common import snapshot_platform pytestmark = pytest.mark.usefixtures("system_get_info", "dsl_get_info", "wan_get_info") @@ -32,7 +34,6 @@ def override_platforms() -> Generator[None]: async def test_buttons( hass: HomeAssistant, config_entry_with_auth: ConfigEntry, - device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, snapshot: SnapshotAssertion, ) -> None: @@ -40,21 +41,9 @@ async def test_buttons( await hass.config_entries.async_setup(config_entry_with_auth.entry_id) await hass.async_block_till_done() - # Ensure devices are correctly registered - device_entries = dr.async_entries_for_config_entry( - device_registry, config_entry_with_auth.entry_id + await snapshot_platform( + hass, entity_registry, snapshot, config_entry_with_auth.entry_id ) - assert device_entries == snapshot - - # Ensure entities are correctly registered - entity_entries = er.async_entries_for_config_entry( - entity_registry, config_entry_with_auth.entry_id - ) - assert entity_entries == snapshot - - # Ensure entity states are correct - states = [hass.states.get(ent.entity_id) for ent in entity_entries] - assert states == snapshot async def test_reboot(hass: HomeAssistant, config_entry_with_auth: ConfigEntry) -> None: diff --git a/tests/components/sfr_box/test_init.py b/tests/components/sfr_box/test_init.py index 93aa4d6dfce..9ade9c41b4d 100644 --- a/tests/components/sfr_box/test_init.py +++ b/tests/components/sfr_box/test_init.py @@ -5,10 +5,12 @@ from unittest.mock import patch import pytest from sfrbox_api.exceptions import SFRBoxAuthenticationError, SFRBoxError +from syrupy.assertion import SnapshotAssertion from homeassistant.components.sfr_box.const import DOMAIN from homeassistant.config_entries import ConfigEntry, ConfigEntryState from homeassistant.core import HomeAssistant +from homeassistant.helpers import device_registry as dr @pytest.fixture(autouse=True) @@ -78,3 +80,21 @@ async def test_setup_entry_invalid_auth( assert len(hass.config_entries.async_entries(DOMAIN)) == 1 assert config_entry_with_auth.state is ConfigEntryState.SETUP_ERROR + + +@patch("homeassistant.components.sfr_box.PLATFORMS", []) +async def test_device_registry( + hass: HomeAssistant, + config_entry: ConfigEntry, + device_registry: dr.DeviceRegistry, + snapshot: SnapshotAssertion, +) -> None: + """Ensure devices are correctly registered.""" + await hass.config_entries.async_setup(config_entry.entry_id) + await hass.async_block_till_done() + + # Ensure devices are correctly registered + device_entries = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + assert device_entries == snapshot diff --git a/tests/components/sfr_box/test_sensor.py b/tests/components/sfr_box/test_sensor.py index dd4a67b42f6..aec692282b7 100644 --- a/tests/components/sfr_box/test_sensor.py +++ b/tests/components/sfr_box/test_sensor.py @@ -9,7 +9,9 @@ from syrupy.assertion import SnapshotAssertion from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from homeassistant.helpers import device_registry as dr, entity_registry as er +from homeassistant.helpers import entity_registry as er + +from tests.common import snapshot_platform pytestmark = pytest.mark.usefixtures("system_get_info", "dsl_get_info", "wan_get_info") @@ -21,10 +23,10 @@ def override_platforms() -> Generator[None]: yield +@pytest.mark.usefixtures("entity_registry_enabled_by_default") async def test_sensors( hass: HomeAssistant, config_entry: ConfigEntry, - device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, snapshot: SnapshotAssertion, ) -> None: @@ -32,24 +34,4 @@ async def test_sensors( await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - # Ensure devices are correctly registered - device_entries = dr.async_entries_for_config_entry( - device_registry, config_entry.entry_id - ) - assert device_entries == snapshot - - # Ensure entities are correctly registered - entity_entries = er.async_entries_for_config_entry( - entity_registry, config_entry.entry_id - ) - assert entity_entries == snapshot - - # Some entities are disabled, enable them and reload before checking states - for ent in entity_entries: - entity_registry.async_update_entity(ent.entity_id, disabled_by=None) - await hass.config_entries.async_reload(config_entry.entry_id) - await hass.async_block_till_done() - - # Ensure entity states are correct - states = [hass.states.get(ent.entity_id) for ent in entity_entries] - assert states == snapshot + await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)