diff --git a/openapi_core/spec/paths.py b/openapi_core/spec/paths.py index 99298b0c..ead20691 100644 --- a/openapi_core/spec/paths.py +++ b/openapi_core/spec/paths.py @@ -2,13 +2,14 @@ from typing import Dict from typing import Hashable from typing import Mapping +from typing import Optional from typing import Type from typing import TypeVar -from jsonschema.protocols import Validator from jsonschema_spec import Spec as JsonschemaSpec from jsonschema_spec import default_handlers -from openapi_spec_validator import openapi_v30_spec_validator +from openapi_spec_validator.validation import openapi_spec_validator_proxy +from openapi_spec_validator.validation.protocols import SupportsValidation TSpec = TypeVar("TSpec", bound="Spec") @@ -24,7 +25,7 @@ def create( url: str = "", ref_resolver_handlers: Dict[str, Any] = default_handlers, separator: str = SPEC_SEPARATOR, - validator: Validator = openapi_v30_spec_validator, + validator: Optional[SupportsValidation] = openapi_spec_validator_proxy, ) -> TSpec: if validator is not None: validator.validate(data, spec_url=url) diff --git a/openapi_core/spec/shortcuts.py b/openapi_core/spec/shortcuts.py index 15fdc12e..854e5b95 100644 --- a/openapi_core/spec/shortcuts.py +++ b/openapi_core/spec/shortcuts.py @@ -3,9 +3,11 @@ from typing import Dict from typing import Hashable from typing import Mapping +from typing import Optional from jsonschema_spec import default_handlers -from openapi_spec_validator import openapi_v30_spec_validator +from openapi_spec_validator.validation import openapi_spec_validator_proxy +from openapi_spec_validator.validation.protocols import SupportsValidation from openapi_core.spec.paths import Spec @@ -16,9 +18,9 @@ def create_spec( handlers: Dict[str, Any] = default_handlers, validate_spec: bool = True, ) -> Spec: - validator = None + validator: Optional[SupportsValidation] = None if validate_spec: - validator = openapi_v30_spec_validator + validator = openapi_spec_validator_proxy return Spec.create( spec_dict, diff --git a/tests/integration/schema/test_empty.py b/tests/integration/schema/test_empty.py index 89a98a72..9f1f5dfa 100644 --- a/tests/integration/schema/test_empty.py +++ b/tests/integration/schema/test_empty.py @@ -1,10 +1,10 @@ import pytest -from jsonschema.exceptions import ValidationError +from openapi_spec_validator.validation.exceptions import ValidatorDetectError from openapi_core.spec import Spec class TestEmpty: def test_raises_on_invalid(self): - with pytest.raises(ValidationError): + with pytest.raises(ValidatorDetectError): Spec.create("")