From c191b78e1c06644f1db63141262cc7f7ffd714a9 Mon Sep 17 00:00:00 2001 From: DonQueso89 Date: Fri, 29 Jan 2021 16:20:15 +0100 Subject: [PATCH] upd tests --- .../filter/tests/test_in_filter.py | 12 ++---- graphene_django/filter/utils.py | 39 ++++++++++--------- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/graphene_django/filter/tests/test_in_filter.py b/graphene_django/filter/tests/test_in_filter.py index 9e9c323..7126645 100644 --- a/graphene_django/filter/tests/test_in_filter.py +++ b/graphene_django/filter/tests/test_in_filter.py @@ -33,21 +33,15 @@ class PetNode(DjangoObjectType): class PersonFilterSet(FilterSet): class Meta: model = Person - fields = {} - - names = filters.BaseInFilter(method="filter_names") - - def filter_names(self, qs, name, value): - return qs.filter(name__in=value) - + fields = {"name": ["in"]} + class PersonNode(DjangoObjectType): class Meta: model = Person interfaces = (Node,) filterset_class = PersonFilterSet - class Query(ObjectType): pets = DjangoFilterConnectionField(PetNode) people = DjangoFilterConnectionField(PersonNode) @@ -92,7 +86,7 @@ def test_string_in_filter_with_filterset_class(): query = """ query { - people (names: ["John", "Michael"]) { + people (name_In: ["John", "Michael"]) { edges { node { name diff --git a/graphene_django/filter/utils.py b/graphene_django/filter/utils.py index 013ee21..0737432 100644 --- a/graphene_django/filter/utils.py +++ b/graphene_django/filter/utils.py @@ -79,23 +79,24 @@ def replace_csv_filters(filterset_class): """ for name, filter_field in list(filterset_class.base_filters.items()): filter_type = filter_field.lookup_expr - if name not in filterset_class.declared_filters: - if filter_type in {"in", "contains", "overlap"}: - filterset_class.base_filters[name] = InFilter( - field_name=filter_field.field_name, - lookup_expr=filter_field.lookup_expr, - label=filter_field.label, - method=filter_field.method, - exclude=filter_field.exclude, - **filter_field.extra - ) + if name in filterset_class.declared_filters: + continue + if filter_type in {"in", "contains", "overlap"}: + filterset_class.base_filters[name] = InFilter( + field_name=filter_field.field_name, + lookup_expr=filter_field.lookup_expr, + label=filter_field.label, + method=filter_field.method, + exclude=filter_field.exclude, + **filter_field.extra + ) - elif filter_type == "range": - filterset_class.base_filters[name] = RangeFilter( - field_name=filter_field.field_name, - lookup_expr=filter_field.lookup_expr, - label=filter_field.label, - method=filter_field.method, - exclude=filter_field.exclude, - **filter_field.extra - ) + elif filter_type == "range": + filterset_class.base_filters[name] = RangeFilter( + field_name=filter_field.field_name, + lookup_expr=filter_field.lookup_expr, + label=filter_field.label, + method=filter_field.method, + exclude=filter_field.exclude, + **filter_field.extra + )