39 lines
503 B
Python
39 lines
503 B
Python
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class S:
|
|
a: int
|
|
b: str
|
|
|
|
|
|
@dataclass
|
|
class C:
|
|
c: S
|
|
d: S
|
|
|
|
|
|
@dataclass
|
|
class C2:
|
|
e: C
|
|
f: S
|
|
|
|
|
|
@dataclass
|
|
class C3:
|
|
g: S
|
|
h: C2
|
|
i: str
|
|
j: str
|
|
|
|
|
|
def test_recursive_dataclasses():
|
|
left = C3(
|
|
S(10, "ten"), C2(C(S(1, "one"), S(2, "two")), S(2, "three")), "equal", "left",
|
|
)
|
|
right = C3(
|
|
S(20, "xxx"), C2(C(S(1, "one"), S(2, "yyy")), S(3, "three")), "equal", "right",
|
|
)
|
|
|
|
assert left == right
|