This repository was archived by the owner on Nov 8, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +43
-1
lines changed Expand file tree Collapse file tree 2 files changed +43
-1
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ from filterparams import build_parser
41
41
url = urlsplit(
42
42
' /users?filter[param][name][like][no_brand_name]=doe'
43
43
' &filter[param][first_name]=doe%&filter[binding]='
44
- ' (!no_brand_name&first_name )&filter[order]=name'
44
+ ' (!no_brand_name%26f irst_name )&filter[order]=name'
45
45
' &filter[order]=desc(first_name)'
46
46
)
47
47
params = parse_qs(url.query)
Original file line number Diff line number Diff line change
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ from unittest import TestCase
4
+
5
+ from urllib .parse import urlsplit , parse_qs
6
+
7
+ from filterparams import build_parser
8
+ from filterparams .obj import And
9
+
10
+
11
+ class TestExample (TestCase ):
12
+
13
+ def test_full_run (self ):
14
+ url = urlsplit (
15
+ '/users?filter[param][name][like][no_brand_name]=doe'
16
+ '&filter[param][first_name]=doe%&filter[binding]='
17
+ '(!no_brand_name%26first_name)&filter[order]=name'
18
+ '&filter[order]=desc(first_name)'
19
+ )
20
+ params = parse_qs (url .query )
21
+
22
+ valid_filters = ['eq' , 'like' ]
23
+ default_filter = 'eq'
24
+
25
+ parser = build_parser (
26
+ valid_filters = valid_filters ,
27
+ default_filter = default_filter ,
28
+ )
29
+
30
+ query = parser (params )
31
+ self .assertIsInstance (
32
+ query .param_order ,
33
+ And ,
34
+ )
35
+ self .assertEqual (
36
+ query .orders [0 ].name ,
37
+ 'name' ,
38
+ )
39
+ self .assertEqual (
40
+ query .orders [1 ].name ,
41
+ 'first_name'
42
+ )
You can’t perform that action at this time.
0 commit comments