def post_load(self, data, **kwargs): del data["name"] return types.CustomFieldSetType(**data)
def test_update_actions(commercetools_api, client, cart_draft): cart = client.carts.create(cart_draft) payment_reference = types.PaymentReference(id=str(uuid.uuid4())) cart = client.carts.update_by_id( cart.id, cart.version, actions=[types.CartAddPaymentAction(payment=payment_reference)], ) type_draft = types.TypeDraft( key="foobar", resource_type_ids=[types.ResourceTypeId.ORDER], name={"en-US": "test"}, field_definitions=[ types.FieldDefinition( type=types.CustomFieldStringType(), name="foo1", label={"en-US": "foo-1"}, required=False, ), types.FieldDefinition( type=types.CustomFieldSetType(element_type=None), name="foo2", label={"en-US": "foo-2"}, required=False, ), types.FieldDefinition( type=types.CustomFieldBooleanType(), name="foo3", label={"en-US": "foo-3"}, required=False, ), ], ) custom_type = client.types.create(type_draft) assert custom_type.id assert cart.payment_info.payments[0] == payment_reference cart = client.carts.update_by_id( cart.id, cart.version, actions=[ types.CartSetCustomTypeAction(type=types.TypeResourceIdentifier( id=custom_type.id)) ], ) client.carts.update_by_id( cart.id, cart.version, actions=[ types.CartSetCustomFieldAction(name="foo1", value="bar"), types.CartSetCustomFieldAction(name="foo2", value=["bar"]), types.CartSetCustomFieldAction(name="foo3", value=False), ], ) cart = client.carts.get_by_id(cart.id) assert all(key in cart.custom.fields for key in ["foo1", "foo2", "foo3"]) assert cart.custom.fields["foo1"] == "bar" assert cart.custom.fields["foo2"] == ["bar"] assert cart.custom.fields["foo3"] is False