assertion: improve diff output of recursive dataclass/attrs

Co-authored-by: Vlad <uladzislau.radziuk@nordcloud.com>
This commit is contained in:
Vlad-Radz
2020-07-08 18:04:56 +02:00
committed by GitHub
parent 9caca5c434
commit 678c1a0745
6 changed files with 100 additions and 58 deletions

View File

@@ -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