Skip to content

Commit 817ff5c

Browse files
committed
Move path finder to separate templating module
1 parent 8539d9b commit 817ff5c

File tree

8 files changed

+32
-22
lines changed

8 files changed

+32
-22
lines changed

openapi_core/templating/__init__.py

Whitespace-only changes.

openapi_core/templating/paths/__init__.py

Whitespace-only changes.
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
"""OpenAPI core templating paths finders module"""
2+
from openapi_core.templating.paths.util import get_operation_pattern
3+
4+
5+
class PathFinder(object):
6+
7+
def __init__(self, spec):
8+
self.spec = spec
9+
10+
def find(self, request):
11+
operation_pattern = self._get_operation_pattern(request)
12+
13+
path = self.spec[operation_pattern]
14+
path_variables = {}
15+
operation = self.spec.get_operation(operation_pattern, request.method)
16+
servers = path.servers or operation.servers or self.spec.servers
17+
server = servers[0]
18+
server_variables = {}
19+
20+
return path, operation, server, path_variables, server_variables
21+
22+
def _get_operation_pattern(self, request):
23+
server = self.spec.get_server(request.full_url_pattern)
24+
25+
return get_operation_pattern(
26+
server.default_url, request.full_url_pattern
27+
)

openapi_core/validation/util.py renamed to openapi_core/templating/paths/util.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""OpenAPI core validation util module"""
1+
"""OpenAPI core templating paths util module"""
22
from six.moves.urllib.parse import urlparse
33

44

openapi_core/validation/request/validators.py

-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
from openapi_core.validation.request.datatypes import (
2222
RequestParameters, RequestValidationResult,
2323
)
24-
from openapi_core.validation.util import get_operation_pattern
2524
from openapi_core.validation.validators import BaseValidator
2625

2726

openapi_core/validation/response/validators.py

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
UnmarshalError, ValidateError,
1414
)
1515
from openapi_core.validation.response.datatypes import ResponseValidationResult
16-
from openapi_core.validation.util import get_operation_pattern
1716
from openapi_core.validation.validators import BaseValidator
1817

1918

openapi_core/validation/validators.py

+3-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
"""OpenAPI core validation validators module"""
2-
from openapi_core.validation.util import get_operation_pattern
32

43

54
class BaseValidator(object):
@@ -13,23 +12,9 @@ def __init__(
1312
self.custom_media_type_deserializers = custom_media_type_deserializers
1413

1514
def _find_path(self, request):
16-
operation_pattern = self._get_operation_pattern(request)
17-
18-
path = self.spec[operation_pattern]
19-
path_variables = {}
20-
operation = self.spec.get_operation(operation_pattern, request.method)
21-
servers = path.servers or operation.servers or self.spec.servers
22-
server = servers[0]
23-
server_variables = {}
24-
25-
return path, operation, server, path_variables, server_variables
26-
27-
def _get_operation_pattern(self, request):
28-
server = self.spec.get_server(request.full_url_pattern)
29-
30-
return get_operation_pattern(
31-
server.default_url, request.full_url_pattern
32-
)
15+
from openapi_core.templating.paths.finders import PathFinder
16+
finder = PathFinder(self.spec)
17+
return finder.find(request)
3318

3419
def _deserialise_media_type(self, media_type, value):
3520
from openapi_core.deserializing.media_types.factories import (

tests/unit/validation/test_util.py renamed to tests/unit/templating/test_paths_util.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from openapi_core.validation.util import path_qs
1+
from openapi_core.templating.paths.util import path_qs
22

33

44
class TestPathQs(object):

0 commit comments

Comments
 (0)