29 lines
623 B
Python
29 lines
623 B
Python
from typing import Dict, List, Union
|
|
|
|
import pytest
|
|
|
|
from reflex.vars.base import figure_out_type
|
|
|
|
|
|
class CustomDict(dict[str, str]):
|
|
"""A custom dict."""
|
|
|
|
pass
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("value", "expected"),
|
|
[
|
|
(1, int),
|
|
(1.0, float),
|
|
("a", str),
|
|
([1, 2, 3], List[int]),
|
|
([1, 2.0, "a"], List[Union[int, float, str]]),
|
|
({"a": 1, "b": 2}, Dict[str, int]),
|
|
({"a": 1, 2: "b"}, Dict[Union[int, str], Union[str, int]]),
|
|
(CustomDict(), CustomDict),
|
|
],
|
|
)
|
|
def test_figure_out_type(value, expected):
|
|
assert figure_out_type(value) == expected
|