35 lines
		
	
	
		
			760 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			760 B
		
	
	
	
		
			Python
		
	
	
	
from dataclasses import dataclass
 | 
						|
from dataclasses import field
 | 
						|
 | 
						|
 | 
						|
@dataclass
 | 
						|
class SimpleDataObject:
 | 
						|
    field_a: int = field()
 | 
						|
    field_b: str = 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
 |