Skip to content

Commit 85b56a5

Browse files
Temp cherry-pick remove later: [ERSSUP-81420]-[FV]-[Create OpenAPI object and then reuse object to run validation]-[AP]
1 parent 8787eea commit 85b56a5

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

scripts/validate_oas_examples.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
from json import dumps as json_dumps
2727

2828
from openapi_core import Spec
29-
from openapi_core import validate_apicall_request
30-
from openapi_core import validate_apicall_response
29+
from openapi_core.app import OpenAPI
30+
from openapi_core.configurations import Config
3131
from openapi_core.contrib.requests import RequestsOpenAPIRequest
3232
from openapi_core.contrib.requests import RequestsOpenAPIResponse
3333
from openapi_core.validation.request.validators import V30RequestBodyValidator
@@ -173,6 +173,14 @@ def validate_request_examples():
173173

174174
file_count = 0
175175
print("Validating request examples.")
176+
config = Config(
177+
server_base_url=None,
178+
request_validator_cls=V30RequestBodyValidator,
179+
extra_media_type_deserializers={"application/fhir+json": json_loads},
180+
)
181+
182+
openApiSpec = OpenAPI(spec, config)
183+
176184
# Validate request examples
177185
for endpoint in endpoints_and_examples_request:
178186
file_count += len(endpoints_and_examples_request[endpoint])
@@ -194,14 +202,7 @@ def validate_request_examples():
194202
# Validate request body
195203

196204
try:
197-
validate_apicall_request(
198-
oapi_req,
199-
spec=spec,
200-
cls=V30RequestBodyValidator,
201-
extra_media_type_deserializers={
202-
"application/fhir+json": json_loads
203-
},
204-
)
205+
openApiSpec.validate_apicall_request(oapi_req)
205206
except ValidateError as exc:
206207
print("\nError: JSON data file with path " + abspath_example)
207208
print(
@@ -270,6 +271,13 @@ def validate_response_examples():
270271
file_count = 0
271272

272273
print("Validating example responses.")
274+
config = Config(
275+
server_base_url=None,
276+
response_validator_cls=V30ResponseDataValidator,
277+
extra_media_type_deserializers={"application/fhir+json": json_loads},
278+
)
279+
280+
openApiSpec = OpenAPI(spec, config)
273281

274282
# Validate response for each endpoint
275283
for endpoint_dict in endpoints_and_examples_response:
@@ -296,15 +304,7 @@ def validate_response_examples():
296304
)
297305
oapi_req = RequestsOpenAPIRequest(request)
298306
try:
299-
validate_apicall_response(
300-
oapi_req,
301-
oapi_res,
302-
spec=spec,
303-
cls=V30ResponseDataValidator,
304-
extra_media_type_deserializers={
305-
"application/fhir+json": json_loads
306-
},
307-
)
307+
openApiSpec.validate_apicall_response(oapi_req, oapi_res)
308308
except ValidateError as exc:
309309
print("\nError: JSON data file with path " + abspath_example)
310310
print(

0 commit comments

Comments
 (0)