Skip to content

Commit 1a18f33

Browse files
Temp cherry-pick remove later: [ERSSUP-81420]-[FV]-[Create OpenAPI object and then reuse object to run validation]-[AP]
1 parent 030abac commit 1a18f33

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
@@ -172,6 +172,14 @@ def validate_request_examples():
172172

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

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

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

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

0 commit comments

Comments
 (0)