Fix lying docstring for relative_time template function (#116146)

* Fix lying docstring for relative_time template function

* Update homeassistant/helpers/template.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
Erik Montnemery 2024-04-25 13:01:41 +02:00 committed by GitHub
parent e2c60e9333
commit 2e88ba40ff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 34 additions and 1 deletions

View File

@ -2477,7 +2477,8 @@ def relative_time(hass: HomeAssistant, value: Any) -> Any:
The age can be in second, minute, hour, day, month or year. Only the
biggest unit is considered, e.g. if it's 2 days and 3 hours, "2 days" will
be returned.
Make sure date is not in the future, or else it will return None.
If the input datetime is in the future,
the input datetime will be returned.
If the input are not a datetime object the input will be returned unmodified.
"""

View File

@ -2307,6 +2307,38 @@ def test_relative_time(mock_is_safe, hass: HomeAssistant) -> None:
).async_render()
assert result == "string"
# Test behavior when current time is same as the input time
result = template.Template(
(
"{{"
" relative_time("
" strptime("
' "2000-01-01 10:00:00 +00:00",'
' "%Y-%m-%d %H:%M:%S %z"'
" )"
" )"
"}}"
),
hass,
).async_render()
assert result == "0 seconds"
# Test behavior when the input time is in the future
result = template.Template(
(
"{{"
" relative_time("
" strptime("
' "2000-01-01 11:00:00 +00:00",'
' "%Y-%m-%d %H:%M:%S %z"'
" )"
" )"
"}}"
),
hass,
).async_render()
assert result == "2000-01-01 11:00:00+00:00"
info = template.Template(relative_time_template, hass).async_render_to_info()
assert info.has_time is True