@@ -180,6 +180,10 @@ def test_char_filter(self):
180
180
self .assertEqual (self .filters ['charfield__niew' ].exclude , True )
181
181
self .assertEqual (self .filters ['charfield__empty' ].lookup_expr , 'empty' )
182
182
self .assertEqual (self .filters ['charfield__empty' ].exclude , False )
183
+ self .assertEqual (self .filters ['charfield__regex' ].lookup_expr , 'regex' )
184
+ self .assertEqual (self .filters ['charfield__regex' ].exclude , False )
185
+ self .assertEqual (self .filters ['charfield__iregex' ].lookup_expr , 'iregex' )
186
+ self .assertEqual (self .filters ['charfield__iregex' ].exclude , False )
183
187
184
188
def test_number_filter (self ):
185
189
self .assertIsInstance (self .filters ['numberfield' ], django_filters .NumberFilter )
@@ -220,6 +224,10 @@ def test_mac_address_filter(self):
220
224
self .assertEqual (self .filters ['macaddressfield__iew' ].exclude , False )
221
225
self .assertEqual (self .filters ['macaddressfield__niew' ].lookup_expr , 'iendswith' )
222
226
self .assertEqual (self .filters ['macaddressfield__niew' ].exclude , True )
227
+ self .assertEqual (self .filters ['macaddressfield__regex' ].lookup_expr , 'regex' )
228
+ self .assertEqual (self .filters ['macaddressfield__regex' ].exclude , False )
229
+ self .assertEqual (self .filters ['macaddressfield__iregex' ].lookup_expr , 'iregex' )
230
+ self .assertEqual (self .filters ['macaddressfield__iregex' ].exclude , False )
223
231
224
232
def test_model_choice_filter (self ):
225
233
self .assertIsInstance (self .filters ['modelchoicefield' ], django_filters .ModelChoiceFilter )
@@ -257,6 +265,10 @@ def test_multi_value_char_filter(self):
257
265
self .assertEqual (self .filters ['multivaluecharfield__iew' ].exclude , False )
258
266
self .assertEqual (self .filters ['multivaluecharfield__niew' ].lookup_expr , 'iendswith' )
259
267
self .assertEqual (self .filters ['multivaluecharfield__niew' ].exclude , True )
268
+ self .assertEqual (self .filters ['multivaluecharfield__regex' ].lookup_expr , 'regex' )
269
+ self .assertEqual (self .filters ['multivaluecharfield__regex' ].exclude , False )
270
+ self .assertEqual (self .filters ['multivaluecharfield__iregex' ].lookup_expr , 'iregex' )
271
+ self .assertEqual (self .filters ['multivaluecharfield__iregex' ].exclude , False )
260
272
261
273
def test_multi_value_date_filter (self ):
262
274
self .assertIsInstance (self .filters ['datefield' ], MultiValueDateFilter )
@@ -340,6 +352,10 @@ def test_multiple_choice_filter(self):
340
352
self .assertEqual (self .filters ['multiplechoicefield__iew' ].exclude , False )
341
353
self .assertEqual (self .filters ['multiplechoicefield__niew' ].lookup_expr , 'iendswith' )
342
354
self .assertEqual (self .filters ['multiplechoicefield__niew' ].exclude , True )
355
+ self .assertEqual (self .filters ['multiplechoicefield__regex' ].lookup_expr , 'regex' )
356
+ self .assertEqual (self .filters ['multiplechoicefield__regex' ].exclude , False )
357
+ self .assertEqual (self .filters ['multiplechoicefield__iregex' ].lookup_expr , 'iregex' )
358
+ self .assertEqual (self .filters ['multiplechoicefield__iregex' ].exclude , False )
343
359
344
360
def test_tag_filter (self ):
345
361
self .assertIsInstance (self .filters ['tagfield' ], TagFilter )
@@ -534,6 +550,14 @@ def test_site_slug_endswith_negation(self):
534
550
params = {'slug__niew' : ['-1' ]}
535
551
self .assertEqual (SiteFilterSet (params , Site .objects .all ()).qs .count (), 2 )
536
552
553
+ def test_site_slug_regex (self ):
554
+ params = {'slug__regex' : ['^def-[a-z]*-2$' ]}
555
+ self .assertEqual (SiteFilterSet (params , Site .objects .all ()).qs .count (), 1 )
556
+
557
+ def test_site_slug_iregex (self ):
558
+ params = {'slug__iregex' : ['^DEF-[a-z]*-2$' ]}
559
+ self .assertEqual (SiteFilterSet (params , Site .objects .all ()).qs .count (), 1 )
560
+
537
561
def test_provider_asn_lt (self ):
538
562
params = {'asn__lt' : [65101 ]}
539
563
self .assertEqual (ASNFilterSet (params , ASN .objects .all ()).qs .count (), 1 )
@@ -618,6 +642,14 @@ def test_device_mac_address_icontains_negation(self):
618
642
params = {'mac_address__nic' : ['aa:' , 'bb' ]}
619
643
self .assertEqual (DeviceFilterSet (params , Device .objects .all ()).qs .count (), 1 )
620
644
645
+ def test_device_mac_address_regex (self ):
646
+ params = {'mac_address__regex' : ['^cc.*:03$' ]}
647
+ self .assertEqual (DeviceFilterSet (params , Device .objects .all ()).qs .count (), 1 )
648
+
649
+ def test_device_mac_address_iregex (self ):
650
+ params = {'mac_address__iregex' : ['^CC.*:03$' ]}
651
+ self .assertEqual (DeviceFilterSet (params , Device .objects .all ()).qs .count (), 1 )
652
+
621
653
def test_interface_rf_role_empty (self ):
622
654
params = {'rf_role__empty' : 'true' }
623
655
self .assertEqual (InterfaceFilterSet (params , Interface .objects .all ()).qs .count (), 5 )
0 commit comments