Skip to content

Commit 56d95b9

Browse files
committed
Add test_util.test_data_conversion
Signed-off-by: David Rapan <[email protected]>
1 parent 6c56fb0 commit 56d95b9

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

tests/components/sql/test_util.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
"""Test the sql utils."""
22

3+
from datetime import date
4+
from decimal import Decimal
35
import pytest
46
import voluptuous as vol
57

68
from homeassistant.components.recorder import Recorder, get_instance
7-
from homeassistant.components.sql.util import resolve_db_url, validate_sql_select
9+
from homeassistant.components.sql.util import (
10+
ensure_serializable,
11+
resolve_db_url,
12+
validate_sql_select,
13+
)
814
from homeassistant.core import HomeAssistant
915

1016

@@ -64,3 +70,22 @@ async def test_invalid_sql_queries(
6470
"""Test that various invalid or disallowed SQL queries raise the correct exception."""
6571
with pytest.raises(vol.Invalid, match=expected_error_message):
6672
validate_sql_select(sql_query)
73+
74+
75+
@pytest.mark.parametrize(
76+
("input", "expected_output"),
77+
[
78+
(Decimal(199.99), 199.99),
79+
(date(2023, 1, 15), "2023-01-15"),
80+
(b"\xde\xad\xbe\xef", "0xdeadbeef"),
81+
("deadbeef", "deadbeef"),
82+
(199.99, 199.99),
83+
(69, 69),
84+
],
85+
)
86+
async def test_data_conversion(
87+
input: Decimal | date | bytes | str | float,
88+
expected_output: str | float,
89+
) -> None:
90+
"""Test data conversion to serializable type."""
91+
assert ensure_serializable(input) == expected_output

0 commit comments

Comments
 (0)