1
- import pytest
2
- from rest_framework import VERSION as DRFVERSION
3
1
from rest_framework import filters as drf_filters
4
2
5
3
from rest_framework_json_api import filters as dja_filters
@@ -13,17 +11,14 @@ class DummyEntryViewSet(EntryViewSet):
13
11
backends .DjangoFilterBackend , drf_filters .SearchFilter )
14
12
filterset_fields = {
15
13
'id' : ('exact' ,),
16
- 'headline' : ('exact' ,),
14
+ 'headline' : ('exact' , 'contains' ),
15
+ 'blog__name' : ('contains' , ),
17
16
}
18
17
19
- def __init__ (self ):
18
+ def __init__ (self , ** kwargs ):
20
19
# dummy up self.request since PreloadIncludesMixin expects it to be defined
21
20
self .request = None
22
-
23
-
24
- # get_schema_operation_parameters is only available in DRF >= 3.10
25
- drf_version = tuple (int (x ) for x in DRFVERSION .split ('.' ))
26
- pytestmark = pytest .mark .skipif (drf_version < (3 , 10 ), reason = "requires DRF 3.10 or higher" )
21
+ super (DummyEntryViewSet , self ).__init__ (** kwargs )
27
22
28
23
29
24
def test_filters_get_schema_params ():
@@ -41,7 +36,15 @@ def test_filters_get_schema_params():
41
36
{
42
37
'name' : 'filter[headline]' , 'required' : False , 'in' : 'query' ,
43
38
'description' : 'headline' , 'schema' : {'type' : 'string' }
44
- }
39
+ },
40
+ {
41
+ 'name' : 'filter[headline.contains]' , 'required' : False , 'in' : 'query' ,
42
+ 'description' : 'headline__contains' , 'schema' : {'type' : 'string' }
43
+ },
44
+ {
45
+ 'name' : 'filter[blog.name.contains]' , 'required' : False , 'in' : 'query' ,
46
+ 'description' : 'blog__name__contains' , 'schema' : {'type' : 'string' }
47
+ },
45
48
]),
46
49
(dja_filters .OrderingFilter , [
47
50
{
@@ -65,12 +68,10 @@ def test_filters_get_schema_params():
65
68
result = f .get_schema_operation_parameters (view )
66
69
assert len (result ) == len (expected )
67
70
if len (result ) == 0 :
68
- return
71
+ continue
69
72
# py35: the result list/dict ordering isn't guaranteed
70
73
for res_item in result :
71
74
assert 'name' in res_item
72
75
for exp_item in expected :
73
76
if res_item ['name' ] == exp_item ['name' ]:
74
77
assert res_item == exp_item
75
- return
76
- assert False
0 commit comments