assertion: improve diff output of recursive dataclass/attrs
Co-authored-by: Vlad <uladzislau.radziuk@nordcloud.com>
This commit is contained in:
@@ -1,34 +1,38 @@
|
||||
from dataclasses import dataclass
|
||||
from dataclasses import field
|
||||
|
||||
|
||||
@dataclass
|
||||
class SimpleDataObject:
|
||||
field_a: int = field()
|
||||
field_b: str = field()
|
||||
class S:
|
||||
a: int
|
||||
b: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class ComplexDataObject2:
|
||||
field_a: SimpleDataObject = field()
|
||||
field_b: SimpleDataObject = field()
|
||||
class C:
|
||||
c: S
|
||||
d: S
|
||||
|
||||
|
||||
@dataclass
|
||||
class ComplexDataObject:
|
||||
field_a: SimpleDataObject = field()
|
||||
field_b: ComplexDataObject2 = field()
|
||||
class C2:
|
||||
e: C
|
||||
f: S
|
||||
|
||||
|
||||
@dataclass
|
||||
class C3:
|
||||
g: S
|
||||
h: C2
|
||||
i: str
|
||||
j: str
|
||||
|
||||
|
||||
def test_recursive_dataclasses():
|
||||
|
||||
left = ComplexDataObject(
|
||||
SimpleDataObject(1, "b"),
|
||||
ComplexDataObject2(SimpleDataObject(1, "b"), SimpleDataObject(2, "c"),),
|
||||
left = C3(
|
||||
S(10, "ten"), C2(C(S(1, "one"), S(2, "two")), S(2, "three")), "equal", "left",
|
||||
)
|
||||
right = ComplexDataObject(
|
||||
SimpleDataObject(1, "b"),
|
||||
ComplexDataObject2(SimpleDataObject(1, "b"), SimpleDataObject(3, "c"),),
|
||||
right = C3(
|
||||
S(20, "xxx"), C2(C(S(1, "one"), S(2, "yyy")), S(3, "three")), "equal", "right",
|
||||
)
|
||||
|
||||
assert left == right
|
||||
|
||||
Reference in New Issue
Block a user