Improve warnings for datetime and date sensors with invalid states (#73598)

This commit is contained in:
Erik Montnemery 2022-06-17 12:17:13 +02:00 committed by GitHub
parent 66feac2257
commit baa810aabb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 7 deletions

View File

@ -404,10 +404,10 @@ class SensorEntity(Entity):
value = value.astimezone(timezone.utc) value = value.astimezone(timezone.utc)
return value.isoformat(timespec="seconds") return value.isoformat(timespec="seconds")
except (AttributeError, TypeError) as err: except (AttributeError, OverflowError, TypeError) as err:
raise ValueError( raise ValueError(
f"Invalid datetime: {self.entity_id} has a timestamp device class " f"Invalid datetime: {self.entity_id} has timestamp device class "
f"but does not provide a datetime state but {type(value)}" f"but provides state {value}:{type(value)} resulting in '{err}'"
) from err ) from err
# Received a date value # Received a date value
@ -419,8 +419,8 @@ class SensorEntity(Entity):
return value.isoformat() return value.isoformat()
except (AttributeError, TypeError) as err: except (AttributeError, TypeError) as err:
raise ValueError( raise ValueError(
f"Invalid date: {self.entity_id} has a date device class " f"Invalid date: {self.entity_id} has date device class "
f"but does not provide a date state but {type(value)}" f"but provides state {value}:{type(value)} resulting in '{err}'"
) from err ) from err
if ( if (

View File

@ -183,8 +183,8 @@ async def test_deprecated_datetime_str(
await hass.async_block_till_done() await hass.async_block_till_done()
assert ( assert (
f"Invalid {provides}: sensor.test has a {device_class} device class " f"Invalid {provides}: sensor.test has {device_class} device class "
f"but does not provide a {provides} state but {type(state_value)}" f"but provides state {state_value}:{type(state_value)}"
) in caplog.text ) in caplog.text