File tree Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Original file line number Diff line number Diff line change 11from parse import Parser
22
33
4+ class ExtendedParser (Parser ):
5+ def _handle_field (self , field ):
6+ # handle as path parameter field
7+ field = field [1 :- 1 ]
8+ path_parameter_field = "{%s:PathParameter}" % field
9+ return super (ExtendedParser , self )._handle_field (
10+ path_parameter_field )
11+
12+
13+ def parse_path_parameter (text ):
14+ return text
15+
16+
17+ parse_path_parameter .pattern = r"[^\/]+"
18+ parse_path_parameter .name = "PathParameter"
19+
20+
421def search (path_pattern , full_url_pattern ):
5- p = Parser (path_pattern )
22+ extra_types = {parse_path_parameter .name : parse_path_parameter }
23+ p = ExtendedParser (path_pattern , extra_types )
624 p ._expression = p ._expression + '$'
725 return p .search (full_url_pattern )
826
927
1028def parse (server_url , server_url_pattern ):
11- p = Parser (server_url )
29+ extra_types = {parse_path_parameter .name : parse_path_parameter }
30+ p = ExtendedParser (server_url , extra_types )
1231 p ._expression = '^' + p ._expression
1332 return p .parse (server_url_pattern )
Original file line number Diff line number Diff line change 1+ from openapi_core .templating .util import search
2+
3+
4+ class TestSearch :
5+
6+ def test_endswith (self ):
7+ path_patter = '/{test}/test'
8+ full_url_pattern = '/test1/test/test2/test'
9+
10+ result = search (path_patter , full_url_pattern )
11+
12+ assert result .named == {
13+ 'test' : 'test2' ,
14+ }
15+
16+ def test_exact (self ):
17+ path_patter = '/{test}/test'
18+ full_url_pattern = '/test/test'
19+
20+ result = search (path_patter , full_url_pattern )
21+
22+ assert result .named == {
23+ 'test' : 'test' ,
24+ }
You can’t perform that action at this time.
0 commit comments