@@ -71,23 +71,6 @@ def test_build_field_choices(self):
7171 'fname' : 'First name'
7272 }
7373
74- def test_build_query_dict (self ):
75- data = self .data .copy ()
76- form = AdvancedFilterQueryForm (self .fields , data = data )
77- assert form ._build_query_dict () == {'fname__iexact' : 'john' }
78-
79- data ['operator' ] = 'isnull'
80- form = AdvancedFilterQueryForm (self .fields , data = data )
81- assert form ._build_query_dict () == {'fname__isnull' : None }
82-
83- data ['operator' ] = 'istrue'
84- form = AdvancedFilterQueryForm (self .fields , data = data )
85- assert form ._build_query_dict () == {'fname' : True }
86-
87- data ['operator' ] = 'isfalse'
88- form = AdvancedFilterQueryForm (self .fields , data = data )
89- assert form ._build_query_dict () == {'fname' : False }
90-
9174 def test_make_query (self ):
9275 form = AdvancedFilterQueryForm (self .fields , data = self .data )
9376 assert form .is_valid ()
@@ -201,6 +184,33 @@ def test_all_operators_are_restored(self):
201184 assert res == expected [i ]
202185
203186
187+ @pytest .mark .parametrize ("fields, data, expected" , [
188+ (
189+ dict (bday = 'birthday' , fname = 'first name' ),
190+ dict (field = 'fname' , value = 'john' , operator = 'iexact' ),
191+ {'fname__iexact' : 'john' }
192+ ),
193+ (
194+ dict (bday = 'birthday' , fname = 'first name' ),
195+ dict (field = 'fname' , value = 'john' , operator = 'isnull' ),
196+ {'fname__isnull' : True }
197+ ),
198+ (
199+ dict (bday = 'birthday' , fname = 'first name' ),
200+ dict (field = 'fname' , value = 'john' , operator = 'istrue' ),
201+ {'fname' : True }
202+ ),
203+ (
204+ dict (bday = 'birthday' , fname = 'first name' ),
205+ dict (field = 'fname' , value = 'john' , operator = 'isfalse' ),
206+ {'fname' : False }
207+ ),
208+ ])
209+ def test_build_query_dict (data , fields , expected ):
210+ form = AdvancedFilterQueryForm (fields , data = data )
211+ assert form ._build_query_dict () == expected
212+
213+
204214class CommonFormTest (TestCase ):
205215 mgmg_form_data = {
206216 'form-TOTAL_FORMS' : 1 ,
0 commit comments