mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Add template Base64 decode encoding parameter (#116603)
Co-authored-by: Robert Resch <robert@resch.dev>
This commit is contained in:
parent
0556d9d4ed
commit
624017a0f9
@ -2397,14 +2397,18 @@ def struct_unpack(value: bytes, format_string: str, offset: int = 0) -> Any | No
|
||||
return None
|
||||
|
||||
|
||||
def base64_encode(value):
|
||||
def base64_encode(value: str) -> str:
|
||||
"""Perform base64 encode."""
|
||||
return base64.b64encode(value.encode("utf-8")).decode("utf-8")
|
||||
|
||||
|
||||
def base64_decode(value):
|
||||
"""Perform base64 denode."""
|
||||
return base64.b64decode(value).decode("utf-8")
|
||||
def base64_decode(value: str, encoding: str | None = "utf-8") -> str | bytes:
|
||||
"""Perform base64 decode."""
|
||||
decoded = base64.b64decode(value)
|
||||
if encoding:
|
||||
return decoded.decode(encoding)
|
||||
|
||||
return decoded
|
||||
|
||||
|
||||
def ordinal(value):
|
||||
|
@ -1643,6 +1643,18 @@ def test_base64_decode(hass: HomeAssistant) -> None:
|
||||
).async_render()
|
||||
== "homeassistant"
|
||||
)
|
||||
assert (
|
||||
template.Template(
|
||||
'{{ "aG9tZWFzc2lzdGFudA==" | base64_decode(None) }}', hass
|
||||
).async_render()
|
||||
== b"homeassistant"
|
||||
)
|
||||
assert (
|
||||
template.Template(
|
||||
'{{ "aG9tZWFzc2lzdGFudA==" | base64_decode("ascii") }}', hass
|
||||
).async_render()
|
||||
== "homeassistant"
|
||||
)
|
||||
|
||||
|
||||
def test_slugify(hass: HomeAssistant) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user