@@ -275,9 +275,44 @@ def test_search_filter(self):
275
275
'query' : {'type' : 'contains' , 'caseSensitive' : 'true' , 'value' : 'val' }}
276
276
assert actual == expected
277
277
278
+ def test_search_filter_with_extraction_function (self ):
279
+ extraction_fn = dimensions .RegexExtraction ("([a-b])" )
280
+ actual = filters .Filter .build_filter (
281
+ filters .Filter (
282
+ type = "search" ,
283
+ dimension = "dim" ,
284
+ value = "val" ,
285
+ extraction_function = extraction_fn ,
286
+ )
287
+ )
288
+ expected = {
289
+ "type" : "search" ,
290
+ "dimension" : "dim" ,
291
+ "query" : {"type" : "contains" , "caseSensitive" : "false" , "value" : "val" },
292
+ "extractionFn" : {"type" : "regex" , "expr" : "([a-b])" },
293
+ }
294
+ assert actual == expected
295
+
278
296
def test_like_filter (self ):
279
297
actual = filters .Filter .build_filter (
280
298
filters .Filter (type = "like" , dimension = "dim" , pattern = "%val%" ))
281
299
expected = {'type' : 'like' , 'dimension' : 'dim' , 'pattern' : '%val%' }
282
300
assert actual == expected
283
-
301
+
302
+ def test_like_filter_with_extraction_function (self ):
303
+ extraction_fn = dimensions .RegexExtraction ("([a-b])" )
304
+ actual = filters .Filter .build_filter (
305
+ filters .Filter (
306
+ type = "like" ,
307
+ dimension = "dim" ,
308
+ pattern = "%val%" ,
309
+ extraction_function = extraction_fn ,
310
+ )
311
+ )
312
+ expected = {
313
+ "type" : "like" ,
314
+ "dimension" : "dim" ,
315
+ "pattern" : "%val%" ,
316
+ "extractionFn" : {"type" : "regex" , "expr" : "([a-b])" },
317
+ }
318
+ assert actual == expected
0 commit comments