From 72dabb73dce1a5df643dd968843526018e9abc76 Mon Sep 17 00:00:00 2001 From: David Weterings Date: Wed, 18 Nov 2020 14:52:23 +0100 Subject: [PATCH] feat: support in syntax for single values Commercetools API supports this as well, so we should emulate it. --- src/commercetools/testing/predicates.py | 4 ++++ tests/test_service_order.py | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/commercetools/testing/predicates.py b/src/commercetools/testing/predicates.py index a3f0cdb3..2a10bb08 100644 --- a/src/commercetools/testing/predicates.py +++ b/src/commercetools/testing/predicates.py @@ -514,6 +514,10 @@ def filter_field( if operator_value == "in": return op(value, obj) + # allow comparing single values with 'in' syntax + if operator_value == "in" and not isinstance(value, list): + return op([value], obj) + return op(obj, value) def case_insensitive_get(sef, dict, key, default=None): diff --git a/tests/test_service_order.py b/tests/test_service_order.py index fc05ef98..d9d8d6a2 100644 --- a/tests/test_service_order.py +++ b/tests/test_service_order.py @@ -268,3 +268,12 @@ def get_test_order(): refused_gifts=[], ) return order + + +def test_where_query_state(commercetools_api, client): + order = get_test_order() + commercetools_api.orders.add_existing(order) + + result = client.orders.query(where='orderState in ("Open")') + + assert result.results[0].id == order.id