@@ -60,15 +60,15 @@ class SimpleViewSet(views.FilterFieldsUserViewSet):
6060 </form>
6161 """ )
6262
63- def test_request_obj_is_passed (self ):
63+ def test_request_obj_is_passed (test ):
6464 """
6565 Ensure that the request object is passed from the backend to the filterset.
6666 See: https://github.com/philipn/django-rest-framework-filters/issues/149
6767 """
6868 class RequestCheck (FilterSet ):
6969 def __init__ (self , * args , ** kwargs ):
7070 super (RequestCheck , self ).__init__ (* args , ** kwargs )
71- assert self .request is not None
71+ test . assertIsNotNone ( self .request )
7272
7373 class Meta :
7474 model = models .User
@@ -81,3 +81,22 @@ class ViewSet(views.FilterFieldsUserViewSet):
8181 backend = view .filter_backends [0 ]
8282 request = view .initialize_request (factory .get ('/' ))
8383 backend ().filter_queryset (request , view .get_queryset (), view )
84+
85+ def test_exclusion (self ):
86+ class RequestCheck (FilterSet ):
87+ class Meta :
88+ model = models .User
89+ fields = ['username' ]
90+
91+ class ViewSet (views .FilterFieldsUserViewSet ):
92+ filter_class = RequestCheck
93+
94+ view = ViewSet (action_map = {})
95+ backend = view .filter_backends [0 ]
96+ request = view .initialize_request (factory .get ('/?username=user1' ))
97+ qs = backend ().filter_queryset (request , view .get_queryset (), view )
98+ self .assertEqual ([u .pk for u in qs ], [1 ])
99+
100+ request = view .initialize_request (factory .get ('/?username!=user1' ))
101+ qs = backend ().filter_queryset (request , view .get_queryset (), view )
102+ self .assertEqual ([u .pk for u in qs ], [2 ])
0 commit comments