@@ -146,6 +146,12 @@ def test_make_engine_value_decoder_basic_types():
146146 # Extra field in engine value for Customer (should ignore)
147147 (Customer , ["Alice" , ["O1" , "item1" , 10.0 , "default_extra" ], [["vip" ]], "extra" ], Customer ("Alice" , Order ("O1" , "item1" , 10.0 , "default_extra" ), [Tag ("vip" )])),
148148 (CustomerNamedTuple , ["Alice" , ["O1" , "item1" , 10.0 , "default_extra" ], [["vip" ]], "extra" ], CustomerNamedTuple ("Alice" , OrderNamedTuple ("O1" , "item1" , 10.0 , "default_extra" ), [Tag ("vip" )])),
149+ # Missing optional field with default
150+ (Order , ["O123" , "mixed nuts" , 25.0 ], Order ("O123" , "mixed nuts" , 25.0 , "default_extra" )),
151+ (OrderNamedTuple , ["O123" , "mixed nuts" , 25.0 ], OrderNamedTuple ("O123" , "mixed nuts" , 25.0 , "default_extra" )),
152+ # Partial optional fields
153+ (Customer , ["Alice" , ["O1" , "item1" , 10.0 ]], Customer ("Alice" , Order ("O1" , "item1" , 10.0 , "default_extra" ), None )),
154+ (CustomerNamedTuple , ["Alice" , ["O1" , "item1" , 10.0 ]], CustomerNamedTuple ("Alice" , OrderNamedTuple ("O1" , "item1" , 10.0 , "default_extra" ), None )),
149155 ]
150156)
151157def test_struct_decoder_cases (data_type , engine_val , expected ):
0 commit comments