reflex/tests/test_base.py
2023-06-25 16:56:55 -07:00

101 lines
1.9 KiB
Python

import pytest
from reflex.base import Base
@pytest.fixture
def child() -> Base:
"""A child class.
Returns:
A child class.
"""
class Child(Base):
num: float
key: str
return Child(num=3.14, key="pi")
def test_get_fields(child):
"""Test that the fields are set correctly.
Args:
child: A child class.
"""
assert child.get_fields().keys() == {"num", "key"}
def test_set(child):
"""Test setting fields.
Args:
child: A child class.
"""
child.set(num=1, key="a")
assert child.num == 1
assert child.key == "a"
def test_json(child):
"""Test converting to json.
Args:
child: A child class.
"""
assert child.json().replace(" ", "") == '{"num":3.14,"key":"pi"}'
@pytest.fixture
def complex_child() -> Base:
"""A child class.
Returns:
A child class.
"""
class Child(Base):
num: float
key: str
name: str
age: int
active: bool
return Child(num=3.14, key="pi", name="John Doe", age=30, active=True)
def test_complex_get_fields(complex_child):
"""Test that the fields are set correctly.
Args:
complex_child: A child class.
"""
assert complex_child.get_fields().keys() == {"num", "key", "name", "age", "active"}
def test_complex_set(complex_child):
"""Test setting fields.
Args:
complex_child: A child class.
"""
complex_child.set(num=1, key="a", name="Jane Doe", age=28, active=False)
assert complex_child.num == 1
assert complex_child.key == "a"
assert complex_child.name == "Jane Doe"
assert complex_child.age == 28
assert complex_child.active is False
def test_complex_json(complex_child):
"""Test converting to json.
Args:
complex_child: A child class.
"""
assert (
complex_child.json().replace(" ", "")
== '{"num":3.14,"key":"pi","name":"JohnDoe","age":30,"active":true}'
)