Browse Source

ref: upgrade jsonschema again (#62234)

trying to get openapi-core to latest...
<!-- Describe your PR here. -->
anthony sottile 1 year ago
parent
commit
d06400b605
5 changed files with 20 additions and 21 deletions
  1. 5 8
      fixtures/apidocs_test_case.py
  2. 0 5
      pyproject.toml
  3. 10 5
      requirements-dev-frozen.txt
  4. 1 1
      requirements-dev.txt
  5. 4 2
      requirements-frozen.txt

+ 5 - 8
fixtures/apidocs_test_case.py

@@ -3,8 +3,8 @@ import os
 
 from django.conf import settings
 from openapi_core.contrib.django import DjangoOpenAPIRequest, DjangoOpenAPIResponse
-from openapi_core.spec.shortcuts import create_spec
-from openapi_core.validation.response import openapi_v30_response_validator
+from openapi_core.spec import Spec
+from openapi_core.validation.response.validators import V30ResponseDataValidator
 
 from sentry.testutils.cases import APITestCase
 from sentry.testutils.helpers.datetime import before_now, iso_format
@@ -22,7 +22,7 @@ class APIDocsTestCase(APITestCase):
             data["servers"][0]["url"] = settings.SENTRY_OPTIONS["system.url-prefix"]
             del data["components"]
 
-            return create_spec(data)
+            return Spec.from_dict(data)
 
     def validate_schema(self, request, response):
         assert 200 <= response.status_code < 300, response.status_code
@@ -31,13 +31,10 @@ class APIDocsTestCase(APITestCase):
             assert len(response.data) > 0, "Cannot validate an empty list"
 
         response["Content-Type"] = "application/json"
-        result = openapi_v30_response_validator.validate(
-            self.cached_schema, DjangoOpenAPIRequest(request), DjangoOpenAPIResponse(response)
+        V30ResponseDataValidator(self.cached_schema).validate(
+            DjangoOpenAPIRequest(request), DjangoOpenAPIResponse(response)
         )
 
-        result.raise_for_errors()
-        assert result.errors == []
-
     def create_event(self, name, **kwargs):
         # Somewhat sane default data.
         data = {

+ 0 - 5
pyproject.toml

@@ -38,10 +38,6 @@ filterwarnings = [
     "ignore:The django.utils.timezone.utc alias is deprecated.*",
     "ignore:django.core.files.storage.get_storage_class is deprecated in favor of using django.core.files.storage.storages.",
 
-    # TODO: after upgrading openapi-core and friends
-    "ignore:Passing a schema to Validator.iter_errors is deprecated.*",
-    "ignore:Subclassing validator classes is not intended to be part of their public API.*",
-
     # a bunch of google packages use legacy namespace packages
     "ignore:pkg_resources is deprecated as an API",
     "ignore:Deprecated call to `pkg_resources.declare_namespace\\('google.*'\\)`.",
@@ -113,7 +109,6 @@ module = [
     "onelogin.saml2.auth.*",
     "onelogin.saml2.constants.*",
     "onelogin.saml2.idp_metadata_parser.*",
-    "openapi_core.*",
     "phabricator.*",
     "progressbar.*",
     "rb.*",

+ 10 - 5
requirements-dev-frozen.txt

@@ -84,8 +84,12 @@ iniconfig==1.1.1
 isodate==0.6.1
 isort==5.10.1
 jmespath==0.10.0
-jsonschema==4.17.3
+jsonschema==4.20.0
+jsonschema-path==0.3.2
+jsonschema-spec==0.2.4
+jsonschema-specifications==2023.7.1
 kombu==5.3.4
+lazy-object-proxy==1.10.0
 lxml==4.9.3
 lxml-stubs==0.4.0
 markupsafe==2.1.2
@@ -102,9 +106,9 @@ mypy-extensions==1.0.0
 nodeenv==1.8.0
 oauthlib==3.1.0
 openai==1.3.5
-openapi-core==0.15.0
-openapi-schema-validator==0.2.3
-openapi-spec-validator==0.4.0
+openapi-core==0.18.2
+openapi-schema-validator==0.6.2
+openapi-spec-validator==0.7.1
 outcome==1.2.0
 packaging==21.3
 parse==1.19.0
@@ -136,7 +140,6 @@ pyflakes==3.1.0
 pyjwt==2.4.0
 pymemcache==4.0.0
 pyparsing==3.0.9
-pyrsistent==0.18.1
 pysocks==1.7.1
 pytest==7.2.1
 pytest-cov==4.0.0
@@ -159,6 +162,7 @@ pyyaml==5.4
 rb==1.10.0
 redis==3.4.1
 redis-py-cluster==2.1.0
+referencing==0.30.2
 regex==2022.9.13
 reportlab==4.0.7
 requests==2.31.0
@@ -166,6 +170,7 @@ requests-oauthlib==1.2.0
 responses==0.23.1
 rfc3339-validator==0.1.2
 rfc3986-validator==0.1.1
+rpds-py==0.15.2
 rsa==4.8
 s3transfer==0.6.1
 selenium==4.16.0

+ 1 - 1
requirements-dev.txt

@@ -4,7 +4,7 @@ covdefaults>=2.3.0
 docker>=6
 time-machine>=2.13.0
 honcho>=1.1.0
-openapi-core>=0.15.0
+openapi-core>=0.18.2
 psutil
 pytest>=7.2.1
 pytest-cov>=4.0.0

+ 4 - 2
requirements-frozen.txt

@@ -66,7 +66,8 @@ idna==2.10
 inflection==0.5.1
 isodate==0.6.1
 jmespath==0.10.0
-jsonschema==4.17.3
+jsonschema==4.20.0
+jsonschema-specifications==2023.7.1
 kombu==5.3.4
 lxml==4.9.3
 maxminddb==2.3.0
@@ -95,7 +96,6 @@ pydantic==1.10.9
 pyjwt==2.4.0
 pymemcache==4.0.0
 pyparsing==3.0.9
-pyrsistent==0.18.1
 python-dateutil==2.8.2
 python-memcached==1.59
 python-rapidjson==1.8
@@ -109,12 +109,14 @@ pyyaml==5.4
 rb==1.10.0
 redis==3.4.1
 redis-py-cluster==2.1.0
+referencing==0.30.2
 regex==2022.9.13
 reportlab==4.0.7
 requests==2.31.0
 requests-oauthlib==1.2.0
 rfc3339-validator==0.1.2
 rfc3986-validator==0.1.1
+rpds-py==0.15.2
 rsa==4.8
 s3transfer==0.6.1
 sentry-arroyo==2.15.3