mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Allow base64_encode to support bytes and strings (#145227)
This commit is contained in:
parent
cc504da03a
commit
13a6c13b89
@ -2577,9 +2577,11 @@ def from_hex(value: str) -> bytes:
|
||||
return bytes.fromhex(value)
|
||||
|
||||
|
||||
def base64_encode(value: str) -> str:
|
||||
def base64_encode(value: str | bytes) -> str:
|
||||
"""Perform base64 encode."""
|
||||
return base64.b64encode(value.encode("utf-8")).decode("utf-8")
|
||||
if isinstance(value, str):
|
||||
value = value.encode("utf-8")
|
||||
return base64.b64encode(value).decode("utf-8")
|
||||
|
||||
|
||||
def base64_decode(value: str, encoding: str | None = "utf-8") -> str | bytes:
|
||||
|
@ -1640,12 +1640,17 @@ def test_from_hex(hass: HomeAssistant) -> None:
|
||||
)
|
||||
|
||||
|
||||
def test_base64_encode(hass: HomeAssistant) -> None:
|
||||
"""Test the base64_encode filter."""
|
||||
assert (
|
||||
template.Template('{{ "homeassistant" | base64_encode }}', hass).async_render()
|
||||
== "aG9tZWFzc2lzdGFudA=="
|
||||
@pytest.mark.parametrize(
|
||||
("value_template", "expected"),
|
||||
[
|
||||
('{{ "homeassistant" | base64_encode }}', "aG9tZWFzc2lzdGFudA=="),
|
||||
("{{ int('0F010003', base=16) | pack('>I') | base64_encode }}", "DwEAAw=="),
|
||||
("{{ 'AA01000200150020' | from_hex | base64_encode }}", "qgEAAgAVACA="),
|
||||
],
|
||||
)
|
||||
def test_base64_encode(hass: HomeAssistant, value_template: str, expected: str) -> None:
|
||||
"""Test the base64_encode filter."""
|
||||
assert template.Template(value_template, hass).async_render() == expected
|
||||
|
||||
|
||||
def test_base64_decode(hass: HomeAssistant) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user