Make dataclasses/attrs comparison recursive, fixes #4675

This commit is contained in:
ibriquem
2020-06-02 15:38:41 +02:00
committed by Bruno Oliveira
parent 3de85a9ac9
commit e2e7f15b71
4 changed files with 142 additions and 21 deletions

View File

@@ -0,0 +1,34 @@
from dataclasses import dataclass
from dataclasses import field
@dataclass
class SimpleDataObject:
field_a: int = field()
field_b: int = field()
@dataclass
class ComplexDataObject2:
field_a: SimpleDataObject = field()
field_b: SimpleDataObject = field()
@dataclass
class ComplexDataObject:
field_a: SimpleDataObject = field()
field_b: ComplexDataObject2 = field()
def test_recursive_dataclasses():
left = ComplexDataObject(
SimpleDataObject(1, "b"),
ComplexDataObject2(SimpleDataObject(1, "b"), SimpleDataObject(2, "c"),),
)
right = ComplexDataObject(
SimpleDataObject(1, "b"),
ComplexDataObject2(SimpleDataObject(1, "b"), SimpleDataObject(3, "c"),),
)
assert left == right