forked from reflex-dev/reflex
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_base.py
100 lines (71 loc) · 1.95 KB
/
test_base.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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}'
)