def test_shipping_method_query(client): client.shipping_methods.create( types.ShippingMethodDraft( key="test-shipping_method1", name="test shipping method1", tax_category=types.TaxCategoryResourceIdentifier(id="dummy"), zone_rates=[], is_default=False, )) client.shipping_methods.create( types.ShippingMethodDraft( key="test-shipping_method2", name="test shipping method2", tax_category=types.TaxCategoryResourceIdentifier(id="dummy"), zone_rates=[], is_default=False, )) # single sort query result = client.shipping_methods.query(sort="id asc") assert len(result.results) == 2 assert result.total == 2 # multiple sort queries result = client.shipping_methods.query(sort=["id asc", "name asc"]) assert len(result.results) == 2 assert result.total == 2
def test_shipping_method_update(client): """Test the return value of the update methods. It doesn't test the actual update itself. TODO: See if this is worth testing since we're using a mocking backend """ shipping_method = client.shipping_methods.create( types.ShippingMethodDraft( key="test-shipping-method", name="test shipping method", tax_category=types.TaxCategoryResourceIdentifier(id="dummy"), zone_rates=[], is_default=False, )) assert shipping_method.key == "test-shipping-method" shipping_method = client.shipping_methods.update_by_id( id=shipping_method.id, version=shipping_method.version, actions=[ types.ShippingMethodChangeNameAction(name="shipping-method-2") ], ) assert shipping_method.key == "test-shipping-method"
def test_shipping_method_query(client): client.shipping_methods.create( types.ShippingMethodDraft(key="test-shipping_method1", name="test shipping method1")) client.shipping_methods.create( types.ShippingMethodDraft(key="test-shipping_method2", name="test shipping method2")) # single sort query result = client.shipping_methods.query(sort="id asc") assert len(result.results) == 2 assert result.total == 2 # multiple sort queries result = client.shipping_methods.query(sort=["id asc", "name asc"]) assert len(result.results) == 2 assert result.total == 2
def test_multiple_expand(client, commercetools_api): shipping_method = client.shipping_methods.create( types.ShippingMethodDraft( key="test-shipping-method", name="test shipping method", tax_category=types.TaxCategoryResourceIdentifier(id="dummy"), zone_rates=[], is_default=False, )) payment = client.payments.create( types.PaymentDraft( key="test-payment", amount_planned=types.Money(cent_amount=2000, currency_code="GBP"), payment_method_info=types.PaymentMethodInfo( payment_interface="ADYEN", method="mc"), transactions=[ types.TransactionDraft( type=types.TransactionType.CHARGE, amount=types.Money(cent_amount=2000, currency_code="GBP"), state=types.TransactionState.PENDING, ) ], )) order = get_test_order() order.shipping_info.shipping_method.id = shipping_method.id order.payment_info.payments[0].id = payment.id commercetools_api.orders.add_existing(order) expanded_order = client.orders.get_by_id( order.id, expand=["shippingInfo.shippingMethod", "paymentInfo.payments[*]"]) assert expanded_order.id assert expanded_order.shipping_info.shipping_method.obj.id == shipping_method.id assert expanded_order.payment_info.payments[0].obj.id == payment.id expanded_order = client.orders.get_by_id( order.id, expand=["shippingInfo.shippingMethod"]) assert expanded_order.id assert expanded_order.shipping_info.shipping_method.obj.id == shipping_method.id assert expanded_order.payment_info.payments[0].obj is None query_results = client.orders.query( expand=["shippingInfo.shippingMethod", "paymentInfo.payments[*]"]) expanded_order = query_results.results[0] assert expanded_order.id assert expanded_order.shipping_info.shipping_method.obj.id == shipping_method.id assert expanded_order.payment_info.payments[0].obj.id == payment.id
def test_shipping_method_get_by_id(client): shipping_method = client.shipping_methods.create( types.ShippingMethodDraft(key="test-shipping-method", name="test shipping method")) assert shipping_method.id assert shipping_method.key == "test-shipping-method" assert shipping_method.name == "test shipping method" shipping_method = client.shipping_methods.get_by_id(shipping_method.id) assert shipping_method.id assert shipping_method.key == "test-shipping-method" with pytest.raises(HTTPError): client.shipping_methods.get_by_id("invalid")
def test_shipping_method_update(client): """Test the return value of the update methods. It doesn't test the actual update itself. TODO: See if this is worth testing since we're using a mocking backend """ shipping_method = client.shipping_methods.create( types.ShippingMethodDraft(key="test-shipping-method", name="test shipping method")) assert shipping_method.key == "test-shipping-method" shipping_method = client.shipping_methods.update_by_id( id=shipping_method.id, version=shipping_method.version, actions=[ types.ShippingMethodChangeNameAction(name="shipping-method-2") ], ) assert shipping_method.key == "test-shipping-method"
def test_shipping_method_get_by_id(client): shipping_method = client.shipping_methods.create( types.ShippingMethodDraft( key="test-shipping-method", name="test shipping method", tax_category=types.TaxCategoryResourceIdentifier(id="dummy"), zone_rates=[], is_default=False, )) assert shipping_method.id assert shipping_method.key == "test-shipping-method" assert shipping_method.name == "test shipping method" shipping_method = client.shipping_methods.get_by_id(shipping_method.id) assert shipping_method.id assert shipping_method.key == "test-shipping-method" with pytest.raises(HTTPError): client.shipping_methods.get_by_id("invalid")
def post_load(self, data, **kwargs): return types.ShippingMethodDraft(**data)