1
mirror of https://github.com/home-assistant/core synced 2024-08-02 23:40:32 +02:00

Swap order of int template helper kwargs (#57729)

* swap order of int kwargs

* Add binary and kwargless base tests
This commit is contained in:
Petro31 2021-10-15 07:04:26 -04:00 committed by GitHub
parent 0e0430ba36
commit f8dbcb953c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -1463,7 +1463,7 @@ def forgiving_float_filter(value, default=_SENTINEL):
return default
def forgiving_int(value, default=_SENTINEL, base=10):
def forgiving_int(value, base=10, default=_SENTINEL):
"""Try to convert value to an int, and warn if it fails."""
result = jinja2.filters.do_int(value, default=default, base=base)
if result is _SENTINEL:
@ -1472,7 +1472,7 @@ def forgiving_int(value, default=_SENTINEL, base=10):
return result
def forgiving_int_filter(value, default=_SENTINEL, base=10):
def forgiving_int_filter(value, base=10, default=_SENTINEL):
"""Try to convert value to an int, and warn if it fails."""
result = jinja2.filters.do_int(value, default=default, base=base)
if result is _SENTINEL:

View File

@ -248,9 +248,14 @@ def test_int_filter(hass):
hass.states.async_set("sensor.temperature", "0x10")
assert render(hass, "{{ states.sensor.temperature.state | int(base=16) }}") == 16
assert render(hass, "{{ states.sensor.temperature.state | int(16) }}") == 16
hass.states.async_set("sensor.temperature", "1111")
assert render(hass, "{{ states.sensor.temperature.state | int(base=2) }}") == 15
assert render(hass, "{{ states.sensor.temperature.state | int(2) }}") == 15
assert render(hass, "{{ 'bad' | int }}") == 0
assert render(hass, "{{ 'bad' | int(1) }}") == 1
assert render(hass, "{{ 'bad' | int(10, 1) }}") == 1
assert render(hass, "{{ 'bad' | int(default=1) }}") == 1
@ -262,9 +267,14 @@ def test_int_function(hass):
hass.states.async_set("sensor.temperature", "0x10")
assert render(hass, "{{ int(states.sensor.temperature.state, base=16) }}") == 16
assert render(hass, "{{ int(states.sensor.temperature.state, 16) }}") == 16
hass.states.async_set("sensor.temperature", "1111")
assert render(hass, "{{ int(states.sensor.temperature.state, base=2) }}") == 15
assert render(hass, "{{ int(states.sensor.temperature.state, 2) }}") == 15
assert render(hass, "{{ int('bad') }}") == "bad"
assert render(hass, "{{ int('bad', 1) }}") == 1
assert render(hass, "{{ int('bad', 10, 1) }}") == 1
assert render(hass, "{{ int('bad', default=1) }}") == 1