diff --git a/tests/components/renault/snapshots/test_binary_sensor.ambr b/tests/components/renault/snapshots/test_binary_sensor.ambr new file mode 100644 index 00000000000..ddeadd436cf --- /dev/null +++ b/tests/components/renault/snapshots/test_binary_sensor.ambr @@ -0,0 +1,1163 @@ +# serializer version: 1 +# name: test_binary_sensors[captur_fuel] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_binary_sensors[captur_fuel].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_lock', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Lock', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'lock_status', + 'unique_id': 'vf1aaaaa555777123_lock_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_hatch', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hatch', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hatch_status', + 'unique_id': 'vf1aaaaa555777123_hatch_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_rear_left_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Rear left door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'rear_left_door_status', + 'unique_id': 'vf1aaaaa555777123_rear_left_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_rear_right_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Rear right door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'rear_right_door_status', + 'unique_id': 'vf1aaaaa555777123_rear_right_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_driver_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Driver door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'driver_door_status', + 'unique_id': 'vf1aaaaa555777123_driver_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_passenger_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Passenger door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'passenger_door_status', + 'unique_id': 'vf1aaaaa555777123_passenger_door_status', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_binary_sensors[captur_fuel].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'lock', + 'friendly_name': 'REG-NUMBER Lock', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_lock', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Hatch', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_hatch', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Rear left door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_rear_left_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Rear right door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_rear_right_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Driver door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_driver_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Passenger door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_passenger_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + ]) +# --- +# name: test_binary_sensors[captur_phev] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_binary_sensors[captur_phev].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_plug', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Plug', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'plugged_in', + 'unique_id': 'vf1aaaaa555777123_plugged_in', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_charging', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Charging', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging', + 'unique_id': 'vf1aaaaa555777123_charging', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_lock', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Lock', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'lock_status', + 'unique_id': 'vf1aaaaa555777123_lock_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_hatch', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hatch', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hatch_status', + 'unique_id': 'vf1aaaaa555777123_hatch_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_rear_left_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Rear left door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'rear_left_door_status', + 'unique_id': 'vf1aaaaa555777123_rear_left_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_rear_right_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Rear right door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'rear_right_door_status', + 'unique_id': 'vf1aaaaa555777123_rear_right_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_driver_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Driver door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'driver_door_status', + 'unique_id': 'vf1aaaaa555777123_driver_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_passenger_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Passenger door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'passenger_door_status', + 'unique_id': 'vf1aaaaa555777123_passenger_door_status', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_binary_sensors[captur_phev].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'plug', + 'friendly_name': 'REG-NUMBER Plug', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_plug', + 'last_changed': , + 'last_updated': , + 'state': 'on', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery_charging', + 'friendly_name': 'REG-NUMBER Charging', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_charging', + 'last_changed': , + 'last_updated': , + 'state': 'on', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'lock', + 'friendly_name': 'REG-NUMBER Lock', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_lock', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Hatch', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_hatch', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Rear left door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_rear_left_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Rear right door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_rear_right_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Driver door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_driver_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Passenger door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_passenger_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + ]) +# --- +# name: test_binary_sensors[zoe_40] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X101VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_binary_sensors[zoe_40].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_plug', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Plug', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'plugged_in', + 'unique_id': 'vf1aaaaa555777999_plugged_in', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_charging', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Charging', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging', + 'unique_id': 'vf1aaaaa555777999_charging', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_hvac', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:fan-off', + 'original_name': 'HVAC', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hvac_status', + 'unique_id': 'vf1aaaaa555777999_hvac_status', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_binary_sensors[zoe_40].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'plug', + 'friendly_name': 'REG-NUMBER Plug', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_plug', + 'last_changed': , + 'last_updated': , + 'state': 'on', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery_charging', + 'friendly_name': 'REG-NUMBER Charging', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_charging', + 'last_changed': , + 'last_updated': , + 'state': 'on', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER HVAC', + 'icon': 'mdi:fan-off', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_hvac', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + ]) +# --- +# name: test_binary_sensors[zoe_50] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X102VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_binary_sensors[zoe_50].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_plug', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Plug', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'plugged_in', + 'unique_id': 'vf1aaaaa555777999_plugged_in', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_charging', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Charging', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging', + 'unique_id': 'vf1aaaaa555777999_charging', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_hvac', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:fan-off', + 'original_name': 'HVAC', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hvac_status', + 'unique_id': 'vf1aaaaa555777999_hvac_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_lock', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Lock', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'lock_status', + 'unique_id': 'vf1aaaaa555777999_lock_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_hatch', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hatch', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hatch_status', + 'unique_id': 'vf1aaaaa555777999_hatch_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_rear_left_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Rear left door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'rear_left_door_status', + 'unique_id': 'vf1aaaaa555777999_rear_left_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_rear_right_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Rear right door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'rear_right_door_status', + 'unique_id': 'vf1aaaaa555777999_rear_right_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_driver_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Driver door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'driver_door_status', + 'unique_id': 'vf1aaaaa555777999_driver_door_status', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.reg_number_passenger_door', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Passenger door', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'passenger_door_status', + 'unique_id': 'vf1aaaaa555777999_passenger_door_status', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_binary_sensors[zoe_50].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'plug', + 'friendly_name': 'REG-NUMBER Plug', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_plug', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery_charging', + 'friendly_name': 'REG-NUMBER Charging', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_charging', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER HVAC', + 'icon': 'mdi:fan-off', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_hvac', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'lock', + 'friendly_name': 'REG-NUMBER Lock', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_lock', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Hatch', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_hatch', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Rear left door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_rear_left_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Rear right door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_rear_right_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Driver door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_driver_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'door', + 'friendly_name': 'REG-NUMBER Passenger door', + }), + 'context': , + 'entity_id': 'binary_sensor.reg_number_passenger_door', + 'last_changed': , + 'last_updated': , + 'state': 'off', + }), + ]) +# --- diff --git a/tests/components/renault/snapshots/test_button.ambr b/tests/components/renault/snapshots/test_button.ambr new file mode 100644 index 00000000000..8a0c8af7aa7 --- /dev/null +++ b/tests/components/renault/snapshots/test_button.ambr @@ -0,0 +1,539 @@ +# serializer version: 1 +# name: test_buttons[captur_fuel] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_buttons[captur_fuel].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_air_conditioner', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:air-conditioner', + 'original_name': 'Start air conditioner', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_air_conditioner', + 'unique_id': 'vf1aaaaa555777123_start_air_conditioner', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_buttons[captur_fuel].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start air conditioner', + 'icon': 'mdi:air-conditioner', + }), + 'context': , + 'entity_id': 'button.reg_number_start_air_conditioner', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + ]) +# --- +# name: test_buttons[captur_phev] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_buttons[captur_phev].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_air_conditioner', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:air-conditioner', + 'original_name': 'Start air conditioner', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_air_conditioner', + 'unique_id': 'vf1aaaaa555777123_start_air_conditioner', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_charge', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:ev-station', + 'original_name': 'Start charge', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_charge', + 'unique_id': 'vf1aaaaa555777123_start_charge', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_stop_charge', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:ev-station', + 'original_name': 'Stop charge', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'stop_charge', + 'unique_id': 'vf1aaaaa555777123_stop_charge', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_buttons[captur_phev].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start air conditioner', + 'icon': 'mdi:air-conditioner', + }), + 'context': , + 'entity_id': 'button.reg_number_start_air_conditioner', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start charge', + 'icon': 'mdi:ev-station', + }), + 'context': , + 'entity_id': 'button.reg_number_start_charge', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Stop charge', + 'icon': 'mdi:ev-station', + }), + 'context': , + 'entity_id': 'button.reg_number_stop_charge', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + ]) +# --- +# name: test_buttons[zoe_40] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X101VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_buttons[zoe_40].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_air_conditioner', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:air-conditioner', + 'original_name': 'Start air conditioner', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_air_conditioner', + 'unique_id': 'vf1aaaaa555777999_start_air_conditioner', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_charge', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:ev-station', + 'original_name': 'Start charge', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_charge', + 'unique_id': 'vf1aaaaa555777999_start_charge', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_stop_charge', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:ev-station', + 'original_name': 'Stop charge', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'stop_charge', + 'unique_id': 'vf1aaaaa555777999_stop_charge', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_buttons[zoe_40].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start air conditioner', + 'icon': 'mdi:air-conditioner', + }), + 'context': , + 'entity_id': 'button.reg_number_start_air_conditioner', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start charge', + 'icon': 'mdi:ev-station', + }), + 'context': , + 'entity_id': 'button.reg_number_start_charge', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Stop charge', + 'icon': 'mdi:ev-station', + }), + 'context': , + 'entity_id': 'button.reg_number_stop_charge', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + ]) +# --- +# name: test_buttons[zoe_50] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X102VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_buttons[zoe_50].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_air_conditioner', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:air-conditioner', + 'original_name': 'Start air conditioner', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_air_conditioner', + 'unique_id': 'vf1aaaaa555777999_start_air_conditioner', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_start_charge', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:ev-station', + 'original_name': 'Start charge', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'start_charge', + 'unique_id': 'vf1aaaaa555777999_start_charge', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.reg_number_stop_charge', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:ev-station', + 'original_name': 'Stop charge', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'stop_charge', + 'unique_id': 'vf1aaaaa555777999_stop_charge', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_buttons[zoe_50].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start air conditioner', + 'icon': 'mdi:air-conditioner', + }), + 'context': , + 'entity_id': 'button.reg_number_start_air_conditioner', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Start charge', + 'icon': 'mdi:ev-station', + }), + 'context': , + 'entity_id': 'button.reg_number_start_charge', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Stop charge', + 'icon': 'mdi:ev-station', + }), + 'context': , + 'entity_id': 'button.reg_number_stop_charge', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + ]) +# --- diff --git a/tests/components/renault/snapshots/test_device_tracker.ambr b/tests/components/renault/snapshots/test_device_tracker.ambr new file mode 100644 index 00000000000..571ef2203e1 --- /dev/null +++ b/tests/components/renault/snapshots/test_device_tracker.ambr @@ -0,0 +1,278 @@ +# serializer version: 1 +# name: test_device_trackers[captur_fuel] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_device_trackers[captur_fuel].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'device_tracker', + 'entity_category': , + 'entity_id': 'device_tracker.reg_number_location', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:car', + 'original_name': 'Location', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'location', + 'unique_id': 'vf1aaaaa555777123_location', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_device_trackers[captur_fuel].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Location', + 'gps_accuracy': 0, + 'icon': 'mdi:car', + 'latitude': 48.1234567, + 'longitude': 11.1234567, + 'source_type': , + }), + 'context': , + 'entity_id': 'device_tracker.reg_number_location', + 'last_changed': , + 'last_updated': , + 'state': 'not_home', + }), + ]) +# --- +# name: test_device_trackers[captur_phev] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_device_trackers[captur_phev].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'device_tracker', + 'entity_category': , + 'entity_id': 'device_tracker.reg_number_location', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:car', + 'original_name': 'Location', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'location', + 'unique_id': 'vf1aaaaa555777123_location', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_device_trackers[captur_phev].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Location', + 'gps_accuracy': 0, + 'icon': 'mdi:car', + 'latitude': 48.1234567, + 'longitude': 11.1234567, + 'source_type': , + }), + 'context': , + 'entity_id': 'device_tracker.reg_number_location', + 'last_changed': , + 'last_updated': , + 'state': 'not_home', + }), + ]) +# --- +# name: test_device_trackers[zoe_40] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X101VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_device_trackers[zoe_40].1 + list([ + ]) +# --- +# name: test_device_trackers[zoe_40].2 + list([ + ]) +# --- +# name: test_device_trackers[zoe_50] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X102VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_device_trackers[zoe_50].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'device_tracker', + 'entity_category': , + 'entity_id': 'device_tracker.reg_number_location', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:car', + 'original_name': 'Location', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'location', + 'unique_id': 'vf1aaaaa555777999_location', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_device_trackers[zoe_50].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Location', + 'gps_accuracy': 0, + 'icon': 'mdi:car', + 'latitude': 48.1234567, + 'longitude': 11.1234567, + 'source_type': , + }), + 'context': , + 'entity_id': 'device_tracker.reg_number_location', + 'last_changed': , + 'last_updated': , + 'state': 'not_home', + }), + ]) +# --- diff --git a/tests/components/renault/snapshots/test_select.ambr b/tests/components/renault/snapshots/test_select.ambr new file mode 100644 index 00000000000..4c7103ebe5b --- /dev/null +++ b/tests/components/renault/snapshots/test_select.ambr @@ -0,0 +1,299 @@ +# serializer version: 1 +# name: test_selects[captur_fuel] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_selects[captur_fuel].1 + list([ + ]) +# --- +# name: test_selects[captur_fuel].2 + list([ + ]) +# --- +# name: test_selects[captur_phev] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_selects[captur_phev].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'always', + 'always_charging', + 'schedule_mode', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': None, + 'entity_id': 'select.reg_number_charge_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:calendar-remove', + 'original_name': 'Charge mode', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charge_mode', + 'unique_id': 'vf1aaaaa555777123_charge_mode', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_selects[captur_phev].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Charge mode', + 'icon': 'mdi:calendar-remove', + 'options': list([ + 'always', + 'always_charging', + 'schedule_mode', + ]), + }), + 'context': , + 'entity_id': 'select.reg_number_charge_mode', + 'last_changed': , + 'last_updated': , + 'state': 'always', + }), + ]) +# --- +# name: test_selects[zoe_40] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X101VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_selects[zoe_40].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'always', + 'always_charging', + 'schedule_mode', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': None, + 'entity_id': 'select.reg_number_charge_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:calendar-remove', + 'original_name': 'Charge mode', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charge_mode', + 'unique_id': 'vf1aaaaa555777999_charge_mode', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_selects[zoe_40].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Charge mode', + 'icon': 'mdi:calendar-remove', + 'options': list([ + 'always', + 'always_charging', + 'schedule_mode', + ]), + }), + 'context': , + 'entity_id': 'select.reg_number_charge_mode', + 'last_changed': , + 'last_updated': , + 'state': 'always', + }), + ]) +# --- +# name: test_selects[zoe_50] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X102VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_selects[zoe_50].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'always', + 'always_charging', + 'schedule_mode', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': None, + 'entity_id': 'select.reg_number_charge_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:calendar-clock', + 'original_name': 'Charge mode', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charge_mode', + 'unique_id': 'vf1aaaaa555777999_charge_mode', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_selects[zoe_50].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Charge mode', + 'icon': 'mdi:calendar-clock', + 'options': list([ + 'always', + 'always_charging', + 'schedule_mode', + ]), + }), + 'context': , + 'entity_id': 'select.reg_number_charge_mode', + 'last_changed': , + 'last_updated': , + 'state': 'schedule_mode', + }), + ]) +# --- diff --git a/tests/components/renault/snapshots/test_sensor.ambr b/tests/components/renault/snapshots/test_sensor.ambr new file mode 100644 index 00000000000..2bf8c0c17bf --- /dev/null +++ b/tests/components/renault/snapshots/test_sensor.ambr @@ -0,0 +1,2400 @@ +# serializer version: 1 +# name: test_sensors[captur_fuel] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_sensors[captur_fuel].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_mileage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:sign-direction', + 'original_name': 'Mileage', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'mileage', + 'unique_id': 'vf1aaaaa555777123_mileage', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_fuel_autonomy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:gas-station', + 'original_name': 'Fuel autonomy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'fuel_autonomy', + 'unique_id': 'vf1aaaaa555777123_fuel_autonomy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_fuel_quantity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:fuel', + 'original_name': 'Fuel quantity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'fuel_quantity', + 'unique_id': 'vf1aaaaa555777123_fuel_quantity', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_location_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last location activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'location_last_activity', + 'unique_id': 'vf1aaaaa555777123_location_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state', + 'unique_id': 'vf1aaaaa555777123_res_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start code', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state_code', + 'unique_id': 'vf1aaaaa555777123_res_state_code', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_sensors[captur_fuel].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Mileage', + 'icon': 'mdi:sign-direction', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_mileage', + 'last_changed': , + 'last_updated': , + 'state': '5567', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Fuel autonomy', + 'icon': 'mdi:gas-station', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_fuel_autonomy', + 'last_changed': , + 'last_updated': , + 'state': '35', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'volume', + 'friendly_name': 'REG-NUMBER Fuel quantity', + 'icon': 'mdi:fuel', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_fuel_quantity', + 'last_changed': , + 'last_updated': , + 'state': '3', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last location activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_location_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-02-18T16:58:38+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'last_changed': , + 'last_updated': , + 'state': 'Stopped, ready for RES', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start code', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'last_changed': , + 'last_updated': , + 'state': '10', + }), + ]) +# --- +# name: test_sensors[captur_phev] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777123', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Captur ii', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'XJB1SU', + 'via_device_id': None, + }), + ]) +# --- +# name: test_sensors[captur_phev].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_level', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery level', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_level', + 'unique_id': 'vf1aaaaa555777123_battery_level', + 'unit_of_measurement': '%', + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'not_in_charge', + 'waiting_for_a_planned_charge', + 'charge_ended', + 'waiting_for_current_charge', + 'energy_flap_opened', + 'charge_in_progress', + 'charge_error', + 'unavailable', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charge_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:flash', + 'original_name': 'Charge state', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charge_state', + 'unique_id': 'vf1aaaaa555777123_charge_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charging_remaining_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:timer', + 'original_name': 'Charging remaining time', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging_remaining_time', + 'unique_id': 'vf1aaaaa555777123_charging_remaining_time', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_admissible_charging_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Admissible charging power', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'admissible_charging_power', + 'unique_id': 'vf1aaaaa555777123_charging_power', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'unplugged', + 'plugged', + 'plug_error', + 'plug_unknown', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_plug_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:power-plug', + 'original_name': 'Plug state', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'plug_state', + 'unique_id': 'vf1aaaaa555777123_plug_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_autonomy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:ev-station', + 'original_name': 'Battery autonomy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_autonomy', + 'unique_id': 'vf1aaaaa555777123_battery_autonomy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_available_energy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery available energy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_available_energy', + 'unique_id': 'vf1aaaaa555777123_battery_available_energy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery temperature', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_temperature', + 'unique_id': 'vf1aaaaa555777123_battery_temperature', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_battery_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last battery activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_last_activity', + 'unique_id': 'vf1aaaaa555777123_battery_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_mileage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:sign-direction', + 'original_name': 'Mileage', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'mileage', + 'unique_id': 'vf1aaaaa555777123_mileage', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_fuel_autonomy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:gas-station', + 'original_name': 'Fuel autonomy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'fuel_autonomy', + 'unique_id': 'vf1aaaaa555777123_fuel_autonomy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_fuel_quantity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:fuel', + 'original_name': 'Fuel quantity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'fuel_quantity', + 'unique_id': 'vf1aaaaa555777123_fuel_quantity', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_location_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last location activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'location_last_activity', + 'unique_id': 'vf1aaaaa555777123_location_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state', + 'unique_id': 'vf1aaaaa555777123_res_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start code', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state_code', + 'unique_id': 'vf1aaaaa555777123_res_state_code', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_sensors[captur_phev].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'REG-NUMBER Battery level', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_level', + 'last_changed': , + 'last_updated': , + 'state': '60', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'REG-NUMBER Charge state', + 'icon': 'mdi:flash', + 'options': list([ + 'not_in_charge', + 'waiting_for_a_planned_charge', + 'charge_ended', + 'waiting_for_current_charge', + 'energy_flap_opened', + 'charge_in_progress', + 'charge_error', + 'unavailable', + ]), + }), + 'context': , + 'entity_id': 'sensor.reg_number_charge_state', + 'last_changed': , + 'last_updated': , + 'state': 'charge_in_progress', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Charging remaining time', + 'icon': 'mdi:timer', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_charging_remaining_time', + 'last_changed': , + 'last_updated': , + 'state': '145', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'REG-NUMBER Admissible charging power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_admissible_charging_power', + 'last_changed': , + 'last_updated': , + 'state': '27.0', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'REG-NUMBER Plug state', + 'icon': 'mdi:power-plug', + 'options': list([ + 'unplugged', + 'plugged', + 'plug_error', + 'plug_unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.reg_number_plug_state', + 'last_changed': , + 'last_updated': , + 'state': 'plugged', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Battery autonomy', + 'icon': 'mdi:ev-station', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_autonomy', + 'last_changed': , + 'last_updated': , + 'state': '141', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'REG-NUMBER Battery available energy', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_available_energy', + 'last_changed': , + 'last_updated': , + 'state': '31', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'REG-NUMBER Battery temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_temperature', + 'last_changed': , + 'last_updated': , + 'state': '20', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last battery activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_battery_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-01-12T21:40:16+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Mileage', + 'icon': 'mdi:sign-direction', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_mileage', + 'last_changed': , + 'last_updated': , + 'state': '5567', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Fuel autonomy', + 'icon': 'mdi:gas-station', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_fuel_autonomy', + 'last_changed': , + 'last_updated': , + 'state': '35', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'volume', + 'friendly_name': 'REG-NUMBER Fuel quantity', + 'icon': 'mdi:fuel', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_fuel_quantity', + 'last_changed': , + 'last_updated': , + 'state': '3', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last location activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_location_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-02-18T16:58:38+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'last_changed': , + 'last_updated': , + 'state': 'Stopped, ready for RES', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start code', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'last_changed': , + 'last_updated': , + 'state': '10', + }), + ]) +# --- +# name: test_sensors[zoe_40] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X101VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_sensors[zoe_40].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_level', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery level', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_level', + 'unique_id': 'vf1aaaaa555777999_battery_level', + 'unit_of_measurement': '%', + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'not_in_charge', + 'waiting_for_a_planned_charge', + 'charge_ended', + 'waiting_for_current_charge', + 'energy_flap_opened', + 'charge_in_progress', + 'charge_error', + 'unavailable', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charge_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:flash', + 'original_name': 'Charge state', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charge_state', + 'unique_id': 'vf1aaaaa555777999_charge_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charging_remaining_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:timer', + 'original_name': 'Charging remaining time', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging_remaining_time', + 'unique_id': 'vf1aaaaa555777999_charging_remaining_time', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charging_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Charging power', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging_power', + 'unique_id': 'vf1aaaaa555777999_charging_power', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'unplugged', + 'plugged', + 'plug_error', + 'plug_unknown', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_plug_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:power-plug', + 'original_name': 'Plug state', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'plug_state', + 'unique_id': 'vf1aaaaa555777999_plug_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_autonomy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:ev-station', + 'original_name': 'Battery autonomy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_autonomy', + 'unique_id': 'vf1aaaaa555777999_battery_autonomy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_available_energy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery available energy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_available_energy', + 'unique_id': 'vf1aaaaa555777999_battery_available_energy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery temperature', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_temperature', + 'unique_id': 'vf1aaaaa555777999_battery_temperature', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_battery_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last battery activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_last_activity', + 'unique_id': 'vf1aaaaa555777999_battery_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_mileage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:sign-direction', + 'original_name': 'Mileage', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'mileage', + 'unique_id': 'vf1aaaaa555777999_mileage', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_outside_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Outside temperature', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'outside_temperature', + 'unique_id': 'vf1aaaaa555777999_outside_temperature', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_hvac_soc_threshold', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HVAC SoC threshold', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hvac_soc_threshold', + 'unique_id': 'vf1aaaaa555777999_hvac_soc_threshold', + 'unit_of_measurement': '%', + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_hvac_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last HVAC activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hvac_last_activity', + 'unique_id': 'vf1aaaaa555777999_hvac_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state', + 'unique_id': 'vf1aaaaa555777999_res_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start code', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state_code', + 'unique_id': 'vf1aaaaa555777999_res_state_code', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_sensors[zoe_40].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'REG-NUMBER Battery level', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_level', + 'last_changed': , + 'last_updated': , + 'state': '60', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'REG-NUMBER Charge state', + 'icon': 'mdi:flash', + 'options': list([ + 'not_in_charge', + 'waiting_for_a_planned_charge', + 'charge_ended', + 'waiting_for_current_charge', + 'energy_flap_opened', + 'charge_in_progress', + 'charge_error', + 'unavailable', + ]), + }), + 'context': , + 'entity_id': 'sensor.reg_number_charge_state', + 'last_changed': , + 'last_updated': , + 'state': 'charge_in_progress', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Charging remaining time', + 'icon': 'mdi:timer', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_charging_remaining_time', + 'last_changed': , + 'last_updated': , + 'state': '145', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'REG-NUMBER Charging power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_charging_power', + 'last_changed': , + 'last_updated': , + 'state': '0.027', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'REG-NUMBER Plug state', + 'icon': 'mdi:power-plug', + 'options': list([ + 'unplugged', + 'plugged', + 'plug_error', + 'plug_unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.reg_number_plug_state', + 'last_changed': , + 'last_updated': , + 'state': 'plugged', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Battery autonomy', + 'icon': 'mdi:ev-station', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_autonomy', + 'last_changed': , + 'last_updated': , + 'state': '141', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'REG-NUMBER Battery available energy', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_available_energy', + 'last_changed': , + 'last_updated': , + 'state': '31', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'REG-NUMBER Battery temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_temperature', + 'last_changed': , + 'last_updated': , + 'state': '20', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last battery activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_battery_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-01-12T21:40:16+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Mileage', + 'icon': 'mdi:sign-direction', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_mileage', + 'last_changed': , + 'last_updated': , + 'state': '49114', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'REG-NUMBER Outside temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_outside_temperature', + 'last_changed': , + 'last_updated': , + 'state': '8.0', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER HVAC SoC threshold', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.reg_number_hvac_soc_threshold', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last HVAC activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_hvac_activity', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start code', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + ]) +# --- +# name: test_sensors[zoe_50] + list([ + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'renault', + 'VF1AAAAA555777999', + ), + }), + 'is_new': False, + 'manufacturer': 'Renault', + 'model': 'Zoe', + 'name': 'REG-NUMBER', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': 'X102VE', + 'via_device_id': None, + }), + ]) +# --- +# name: test_sensors[zoe_50].1 + list([ + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_level', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery level', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_level', + 'unique_id': 'vf1aaaaa555777999_battery_level', + 'unit_of_measurement': '%', + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'not_in_charge', + 'waiting_for_a_planned_charge', + 'charge_ended', + 'waiting_for_current_charge', + 'energy_flap_opened', + 'charge_in_progress', + 'charge_error', + 'unavailable', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charge_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:flash-off', + 'original_name': 'Charge state', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charge_state', + 'unique_id': 'vf1aaaaa555777999_charge_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_charging_remaining_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:timer', + 'original_name': 'Charging remaining time', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'charging_remaining_time', + 'unique_id': 'vf1aaaaa555777999_charging_remaining_time', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_admissible_charging_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Admissible charging power', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'admissible_charging_power', + 'unique_id': 'vf1aaaaa555777999_charging_power', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'unplugged', + 'plugged', + 'plug_error', + 'plug_unknown', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_plug_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:power-plug-off', + 'original_name': 'Plug state', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'plug_state', + 'unique_id': 'vf1aaaaa555777999_plug_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_autonomy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:ev-station', + 'original_name': 'Battery autonomy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_autonomy', + 'unique_id': 'vf1aaaaa555777999_battery_autonomy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_available_energy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery available energy', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_available_energy', + 'unique_id': 'vf1aaaaa555777999_battery_available_energy', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_battery_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery temperature', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_temperature', + 'unique_id': 'vf1aaaaa555777999_battery_temperature', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_battery_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last battery activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'battery_last_activity', + 'unique_id': 'vf1aaaaa555777999_battery_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_mileage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:sign-direction', + 'original_name': 'Mileage', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'mileage', + 'unique_id': 'vf1aaaaa555777999_mileage', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_outside_temperature', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Outside temperature', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'outside_temperature', + 'unique_id': 'vf1aaaaa555777999_outside_temperature', + 'unit_of_measurement': , + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_hvac_soc_threshold', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HVAC SoC threshold', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hvac_soc_threshold', + 'unique_id': 'vf1aaaaa555777999_hvac_soc_threshold', + 'unit_of_measurement': '%', + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_hvac_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last HVAC activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'hvac_last_activity', + 'unique_id': 'vf1aaaaa555777999_hvac_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_last_location_activity', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last location activity', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'location_last_activity', + 'unique_id': 'vf1aaaaa555777999_location_last_activity', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state', + 'unique_id': 'vf1aaaaa555777999_res_state', + 'unit_of_measurement': None, + }), + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': , + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Remote engine start code', + 'platform': 'renault', + 'supported_features': 0, + 'translation_key': 'res_state_code', + 'unique_id': 'vf1aaaaa555777999_res_state_code', + 'unit_of_measurement': None, + }), + ]) +# --- +# name: test_sensors[zoe_50].2 + list([ + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'REG-NUMBER Battery level', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_level', + 'last_changed': , + 'last_updated': , + 'state': '50', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'REG-NUMBER Charge state', + 'icon': 'mdi:flash-off', + 'options': list([ + 'not_in_charge', + 'waiting_for_a_planned_charge', + 'charge_ended', + 'waiting_for_current_charge', + 'energy_flap_opened', + 'charge_in_progress', + 'charge_error', + 'unavailable', + ]), + }), + 'context': , + 'entity_id': 'sensor.reg_number_charge_state', + 'last_changed': , + 'last_updated': , + 'state': 'charge_error', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Charging remaining time', + 'icon': 'mdi:timer', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_charging_remaining_time', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'REG-NUMBER Admissible charging power', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_admissible_charging_power', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'REG-NUMBER Plug state', + 'icon': 'mdi:power-plug-off', + 'options': list([ + 'unplugged', + 'plugged', + 'plug_error', + 'plug_unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.reg_number_plug_state', + 'last_changed': , + 'last_updated': , + 'state': 'unplugged', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Battery autonomy', + 'icon': 'mdi:ev-station', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_autonomy', + 'last_changed': , + 'last_updated': , + 'state': '128', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'REG-NUMBER Battery available energy', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_available_energy', + 'last_changed': , + 'last_updated': , + 'state': '0', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'REG-NUMBER Battery temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_battery_temperature', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last battery activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_battery_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-11-17T08:06:48+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'distance', + 'friendly_name': 'REG-NUMBER Mileage', + 'icon': 'mdi:sign-direction', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_mileage', + 'last_changed': , + 'last_updated': , + 'state': '49114', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'temperature', + 'friendly_name': 'REG-NUMBER Outside temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.reg_number_outside_temperature', + 'last_changed': , + 'last_updated': , + 'state': 'unknown', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER HVAC SoC threshold', + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.reg_number_hvac_soc_threshold', + 'last_changed': , + 'last_updated': , + 'state': '30.0', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last HVAC activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_hvac_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-12-03T00:00:00+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'timestamp', + 'friendly_name': 'REG-NUMBER Last location activity', + }), + 'context': , + 'entity_id': 'sensor.reg_number_last_location_activity', + 'last_changed': , + 'last_updated': , + 'state': '2020-02-18T16:58:38+00:00', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start', + 'last_changed': , + 'last_updated': , + 'state': 'Stopped, ready for RES', + }), + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'REG-NUMBER Remote engine start code', + }), + 'context': , + 'entity_id': 'sensor.reg_number_remote_engine_start_code', + 'last_changed': , + 'last_updated': , + 'state': '10', + }), + ]) +# --- diff --git a/tests/components/renault/test_binary_sensor.py b/tests/components/renault/test_binary_sensor.py index 2a332d655d0..320c5cc30d5 100644 --- a/tests/components/renault/test_binary_sensor.py +++ b/tests/components/renault/test_binary_sensor.py @@ -3,18 +3,14 @@ from collections.abc import Generator from unittest.mock import patch import pytest +from syrupy.assertion import SnapshotAssertion from homeassistant.config_entries import ConfigEntry from homeassistant.const import STATE_UNKNOWN, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er -from . import ( - check_device_registry, - check_entities, - check_entities_no_data, - check_entities_unavailable, -) +from . import check_device_registry, check_entities_no_data, check_entities_unavailable from .const import MOCK_VEHICLES pytestmark = pytest.mark.usefixtures("patch_renault_account", "patch_get_vehicles") @@ -31,21 +27,29 @@ def override_platforms() -> Generator[None, None, None]: async def test_binary_sensors( hass: HomeAssistant, config_entry: ConfigEntry, - vehicle_type: str, device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test for Renault binary sensors.""" await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - mock_vehicle = MOCK_VEHICLES[vehicle_type] - check_device_registry(device_registry, mock_vehicle["expected_device"]) + # Ensure devices are correctly registered + device_entries = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + assert device_entries == snapshot - expected_entities = mock_vehicle[Platform.BINARY_SENSOR] - assert len(entity_registry.entities) == len(expected_entities) + # Ensure entities are correctly registered + entity_entries = er.async_entries_for_config_entry( + entity_registry, config_entry.entry_id + ) + assert entity_entries == snapshot - check_entities(hass, entity_registry, expected_entities) + # Ensure entity states are correct + states = [hass.states.get(ent.entity_id) for ent in entity_entries] + assert states == snapshot @pytest.mark.usefixtures("fixtures_with_no_data") diff --git a/tests/components/renault/test_button.py b/tests/components/renault/test_button.py index 695be73089e..576e3c05c2a 100644 --- a/tests/components/renault/test_button.py +++ b/tests/components/renault/test_button.py @@ -4,6 +4,7 @@ from unittest.mock import patch import pytest from renault_api.kamereon import schemas +from syrupy.assertion import SnapshotAssertion from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS from homeassistant.config_entries import ConfigEntry @@ -30,21 +31,29 @@ def override_platforms() -> Generator[None, None, None]: async def test_buttons( hass: HomeAssistant, config_entry: ConfigEntry, - vehicle_type: str, device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test for Renault device trackers.""" await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - mock_vehicle = MOCK_VEHICLES[vehicle_type] - check_device_registry(device_registry, mock_vehicle["expected_device"]) + # Ensure devices are correctly registered + device_entries = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + assert device_entries == snapshot - expected_entities = mock_vehicle[Platform.BUTTON] - assert len(entity_registry.entities) == len(expected_entities) + # Ensure entities are correctly registered + entity_entries = er.async_entries_for_config_entry( + entity_registry, config_entry.entry_id + ) + assert entity_entries == snapshot - check_entities_no_data(hass, entity_registry, expected_entities, STATE_UNKNOWN) + # Ensure entity states are correct + states = [hass.states.get(ent.entity_id) for ent in entity_entries] + assert states == snapshot @pytest.mark.usefixtures("fixtures_with_no_data") diff --git a/tests/components/renault/test_device_tracker.py b/tests/components/renault/test_device_tracker.py index 8a186fbe9d5..910524422ca 100644 --- a/tests/components/renault/test_device_tracker.py +++ b/tests/components/renault/test_device_tracker.py @@ -3,18 +3,14 @@ from collections.abc import Generator from unittest.mock import patch import pytest +from syrupy.assertion import SnapshotAssertion from homeassistant.config_entries import ConfigEntry from homeassistant.const import STATE_UNKNOWN, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er -from . import ( - check_device_registry, - check_entities, - check_entities_no_data, - check_entities_unavailable, -) +from . import check_device_registry, check_entities_no_data, check_entities_unavailable from .const import MOCK_VEHICLES pytestmark = pytest.mark.usefixtures("patch_renault_account", "patch_get_vehicles") @@ -31,21 +27,29 @@ def override_platforms() -> Generator[None, None, None]: async def test_device_trackers( hass: HomeAssistant, config_entry: ConfigEntry, - vehicle_type: str, device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test for Renault device trackers.""" await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - mock_vehicle = MOCK_VEHICLES[vehicle_type] - check_device_registry(device_registry, mock_vehicle["expected_device"]) + # Ensure devices are correctly registered + device_entries = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + assert device_entries == snapshot - expected_entities = mock_vehicle[Platform.DEVICE_TRACKER] - assert len(entity_registry.entities) == len(expected_entities) + # Ensure entities are correctly registered + entity_entries = er.async_entries_for_config_entry( + entity_registry, config_entry.entry_id + ) + assert entity_entries == snapshot - check_entities(hass, entity_registry, expected_entities) + # Ensure entity states are correct + states = [hass.states.get(ent.entity_id) for ent in entity_entries] + assert states == snapshot @pytest.mark.usefixtures("fixtures_with_no_data") diff --git a/tests/components/renault/test_select.py b/tests/components/renault/test_select.py index 2179d678376..9b5a6b01452 100644 --- a/tests/components/renault/test_select.py +++ b/tests/components/renault/test_select.py @@ -4,6 +4,7 @@ from unittest.mock import patch import pytest from renault_api.kamereon import schemas +from syrupy.assertion import SnapshotAssertion from homeassistant.components.select import ( ATTR_OPTION, @@ -15,12 +16,7 @@ from homeassistant.const import ATTR_ENTITY_ID, STATE_UNKNOWN, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er -from . import ( - check_device_registry, - check_entities, - check_entities_no_data, - check_entities_unavailable, -) +from . import check_device_registry, check_entities_no_data, check_entities_unavailable from .const import MOCK_VEHICLES from tests.common import load_fixture @@ -39,21 +35,29 @@ def override_platforms() -> Generator[None, None, None]: async def test_selects( hass: HomeAssistant, config_entry: ConfigEntry, - vehicle_type: str, device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test for Renault selects.""" await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - mock_vehicle = MOCK_VEHICLES[vehicle_type] - check_device_registry(device_registry, mock_vehicle["expected_device"]) + # Ensure devices are correctly registered + device_entries = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + assert device_entries == snapshot - expected_entities = mock_vehicle[Platform.SELECT] - assert len(entity_registry.entities) == len(expected_entities) + # Ensure entities are correctly registered + entity_entries = er.async_entries_for_config_entry( + entity_registry, config_entry.entry_id + ) + assert entity_entries == snapshot - check_entities(hass, entity_registry, expected_entities) + # Ensure entity states are correct + states = [hass.states.get(ent.entity_id) for ent in entity_entries] + assert states == snapshot @pytest.mark.usefixtures("fixtures_with_no_data") diff --git a/tests/components/renault/test_sensor.py b/tests/components/renault/test_sensor.py index 8220a0bf6aa..e0462834ae4 100644 --- a/tests/components/renault/test_sensor.py +++ b/tests/components/renault/test_sensor.py @@ -1,22 +1,17 @@ """Tests for Renault sensors.""" from collections.abc import Generator -from types import MappingProxyType from unittest.mock import patch import pytest +from syrupy.assertion import SnapshotAssertion from homeassistant.config_entries import ConfigEntry -from homeassistant.const import ATTR_ENTITY_ID, STATE_UNKNOWN, Platform +from homeassistant.const import STATE_UNKNOWN, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er -from . import ( - check_device_registry, - check_entities, - check_entities_no_data, - check_entities_unavailable, -) -from .const import ATTR_DEFAULT_DISABLED, MOCK_VEHICLES +from . import check_device_registry, check_entities_no_data, check_entities_unavailable +from .const import MOCK_VEHICLES pytestmark = pytest.mark.usefixtures("patch_renault_account", "patch_get_vehicles") @@ -28,46 +23,42 @@ def override_platforms() -> Generator[None, None, None]: yield -def _check_and_enable_disabled_entities( - entity_registry: er.EntityRegistry, expected_entities: MappingProxyType -) -> None: - """Ensure that the expected_entities are correctly disabled.""" - for expected_entity in expected_entities: - if expected_entity.get(ATTR_DEFAULT_DISABLED): - entity_id = expected_entity[ATTR_ENTITY_ID] - registry_entry = entity_registry.entities.get(entity_id) - assert registry_entry, f"{entity_id} not found in registry" - assert registry_entry.disabled - assert registry_entry.disabled_by is er.RegistryEntryDisabler.INTEGRATION - entity_registry.async_update_entity(entity_id, **{"disabled_by": None}) - - @pytest.mark.usefixtures("fixtures_with_data") async def test_sensors( hass: HomeAssistant, config_entry: ConfigEntry, - vehicle_type: str, device_registry: dr.DeviceRegistry, entity_registry: er.EntityRegistry, + snapshot: SnapshotAssertion, ) -> None: """Test for Renault sensors.""" await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - mock_vehicle = MOCK_VEHICLES[vehicle_type] - check_device_registry(device_registry, mock_vehicle["expected_device"]) + # Ensure devices are correctly registered + device_entries = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + assert device_entries == snapshot - expected_entities = mock_vehicle[Platform.SENSOR] - assert len(entity_registry.entities) == len(expected_entities) + # Ensure entities are correctly registered + entity_entries = er.async_entries_for_config_entry( + entity_registry, config_entry.entry_id + ) + assert entity_entries == snapshot - _check_and_enable_disabled_entities(entity_registry, expected_entities) + # 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() - check_entities(hass, entity_registry, expected_entities) + # Ensure entity states are correct + states = [hass.states.get(ent.entity_id) for ent in entity_entries] + assert states == snapshot -@pytest.mark.usefixtures("fixtures_with_no_data") +@pytest.mark.usefixtures("fixtures_with_no_data", "entity_registry_enabled_by_default") async def test_sensor_empty( hass: HomeAssistant, config_entry: ConfigEntry, @@ -85,14 +76,12 @@ async def test_sensor_empty( expected_entities = mock_vehicle[Platform.SENSOR] assert len(entity_registry.entities) == len(expected_entities) - _check_and_enable_disabled_entities(entity_registry, expected_entities) - await hass.config_entries.async_reload(config_entry.entry_id) - await hass.async_block_till_done() - check_entities_no_data(hass, entity_registry, expected_entities, STATE_UNKNOWN) -@pytest.mark.usefixtures("fixtures_with_invalid_upstream_exception") +@pytest.mark.usefixtures( + "fixtures_with_invalid_upstream_exception", "entity_registry_enabled_by_default" +) async def test_sensor_errors( hass: HomeAssistant, config_entry: ConfigEntry, @@ -110,7 +99,6 @@ async def test_sensor_errors( expected_entities = mock_vehicle[Platform.SENSOR] assert len(entity_registry.entities) == len(expected_entities) - _check_and_enable_disabled_entities(entity_registry, expected_entities) await hass.config_entries.async_reload(config_entry.entry_id) await hass.async_block_till_done()