Raise ValueError when `last_reset` set and not `total` state class (#108391)
* Raise ValueError when last_reset set and not total state class * Fix test * Break long string into smaller onespull/109069/head
parent
aefae5bdae
commit
80bfd4cef7
|
@ -416,21 +416,12 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
|
||||||
"""Return state attributes."""
|
"""Return state attributes."""
|
||||||
if last_reset := self.last_reset:
|
if last_reset := self.last_reset:
|
||||||
state_class = self.state_class
|
state_class = self.state_class
|
||||||
if state_class != SensorStateClass.TOTAL and not self._last_reset_reported:
|
if state_class != SensorStateClass.TOTAL:
|
||||||
self._last_reset_reported = True
|
raise ValueError(
|
||||||
report_issue = self._suggest_report_issue()
|
f"Entity {self.entity_id} ({type(self)}) with state_class {state_class}"
|
||||||
# This should raise in Home Assistant Core 2022.5
|
" has set last_reset. Setting last_reset for entities with state_class"
|
||||||
_LOGGER.warning(
|
" other than 'total' is not supported. Please update your configuration"
|
||||||
(
|
" if state_class is manually configured."
|
||||||
"Entity %s (%s) with state_class %s has set last_reset. Setting"
|
|
||||||
" last_reset for entities with state_class other than 'total'"
|
|
||||||
" is not supported. Please update your configuration if"
|
|
||||||
" state_class is manually configured, otherwise %s"
|
|
||||||
),
|
|
||||||
self.entity_id,
|
|
||||||
type(self),
|
|
||||||
state_class,
|
|
||||||
report_issue,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if state_class == SensorStateClass.TOTAL:
|
if state_class == SensorStateClass.TOTAL:
|
||||||
|
|
|
@ -170,12 +170,11 @@ async def test_deprecated_last_reset(
|
||||||
"Entity sensor.test (<class 'custom_components.test.sensor.MockSensor'>) "
|
"Entity sensor.test (<class 'custom_components.test.sensor.MockSensor'>) "
|
||||||
f"with state_class {state_class} has set last_reset. Setting last_reset for "
|
f"with state_class {state_class} has set last_reset. Setting last_reset for "
|
||||||
"entities with state_class other than 'total' is not supported. Please update "
|
"entities with state_class other than 'total' is not supported. Please update "
|
||||||
"your configuration if state_class is manually configured, otherwise report it "
|
"your configuration if state_class is manually configured."
|
||||||
"to the author of the 'test' custom integration"
|
|
||||||
) in caplog.text
|
) in caplog.text
|
||||||
|
|
||||||
state = hass.states.get("sensor.test")
|
state = hass.states.get("sensor.test")
|
||||||
assert "last_reset" not in state.attributes
|
assert state is None
|
||||||
|
|
||||||
|
|
||||||
async def test_datetime_conversion(
|
async def test_datetime_conversion(
|
||||||
|
|
Loading…
Reference in New Issue