Skip to content

Commit 9f1eabe

Browse files
authored
Merge pull request #418 from p1c2u/feature/use-auto-detect-validator-proxy
Use auto-detect validator proxy
2 parents 81c0c84 + 5dab13f commit 9f1eabe

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

openapi_core/spec/paths.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
from typing import Dict
33
from typing import Hashable
44
from typing import Mapping
5+
from typing import Optional
56
from typing import Type
67
from typing import TypeVar
78

8-
from jsonschema.protocols import Validator
99
from jsonschema_spec import Spec as JsonschemaSpec
1010
from jsonschema_spec import default_handlers
11-
from openapi_spec_validator import openapi_v30_spec_validator
11+
from openapi_spec_validator.validation import openapi_spec_validator_proxy
12+
from openapi_spec_validator.validation.protocols import SupportsValidation
1213

1314
TSpec = TypeVar("TSpec", bound="Spec")
1415

@@ -24,7 +25,7 @@ def create(
2425
url: str = "",
2526
ref_resolver_handlers: Dict[str, Any] = default_handlers,
2627
separator: str = SPEC_SEPARATOR,
27-
validator: Validator = openapi_v30_spec_validator,
28+
validator: Optional[SupportsValidation] = openapi_spec_validator_proxy,
2829
) -> TSpec:
2930
if validator is not None:
3031
validator.validate(data, spec_url=url)

openapi_core/spec/shortcuts.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
from typing import Dict
44
from typing import Hashable
55
from typing import Mapping
6+
from typing import Optional
67

78
from jsonschema_spec import default_handlers
8-
from openapi_spec_validator import openapi_v30_spec_validator
9+
from openapi_spec_validator.validation import openapi_spec_validator_proxy
10+
from openapi_spec_validator.validation.protocols import SupportsValidation
911

1012
from openapi_core.spec.paths import Spec
1113

@@ -16,9 +18,9 @@ def create_spec(
1618
handlers: Dict[str, Any] = default_handlers,
1719
validate_spec: bool = True,
1820
) -> Spec:
19-
validator = None
21+
validator: Optional[SupportsValidation] = None
2022
if validate_spec:
21-
validator = openapi_v30_spec_validator
23+
validator = openapi_spec_validator_proxy
2224

2325
return Spec.create(
2426
spec_dict,
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import pytest
2-
from jsonschema.exceptions import ValidationError
2+
from openapi_spec_validator.validation.exceptions import ValidatorDetectError
33

44
from openapi_core.spec import Spec
55

66

77
class TestEmpty:
88
def test_raises_on_invalid(self):
9-
with pytest.raises(ValidationError):
9+
with pytest.raises(ValidatorDetectError):
1010
Spec.create("")

0 commit comments

Comments
 (0)