|
1 |
| -import errno |
2 | 1 | import json
|
3 | 2 | import os
|
4 | 3 | import sys
|
5 | 4 | from contextlib import contextmanager
|
6 | 5 | from http.cookies import SimpleCookie
|
7 | 6 | from pathlib import Path
|
8 |
| -from urllib.parse import parse_qs, urlparse, urljoin |
| 7 | +from urllib.parse import parse_qs, urlparse |
9 | 8 |
|
10 | 9 | from openapi_core.validation.request.datatypes import (
|
11 | 10 | RequestParameters, OpenAPIRequest
|
12 | 11 | )
|
13 | 12 | from openapi_core.validation.response.datatypes import OpenAPIResponse
|
14 |
| -from openapi_core import create_spec |
15 | 13 | from openapi_core.validation.request.validators import RequestValidator
|
16 | 14 | from openapi_core.validation.response.validators import ResponseValidator
|
17 | 15 | import requests
|
18 |
| -from ruamel.yaml import YAML |
19 | 16 | import tornado
|
20 | 17 |
|
| 18 | +from jupyterlab_server.spec import openapi_spec |
21 | 19 |
|
22 |
| -here = os.path.dirname(__file__) |
| 20 | + |
| 21 | +HERE = Path(os.path.dirname(__file__)).resolve() |
23 | 22 |
|
24 | 23 | with open(
|
25 |
| - os.path.abspath(os.path.join(here, '..', 'jupyterlab_server', 'test_data', 'app-settings', 'overrides.json')), |
| 24 | + HERE / 'test_data' / 'app-settings' / 'overrides.json', |
26 | 25 | encoding='utf-8'
|
27 | 26 | ) as fpt:
|
28 | 27 | big_unicode_string = json.load(fpt)["@jupyterlab/unicode-extension:plugin"]["comment"]
|
@@ -96,18 +95,13 @@ def wrap_response(response):
|
96 | 95 |
|
97 | 96 | def validate_request(response):
|
98 | 97 | """Validate an API request"""
|
99 |
| - path = (Path(here) / '../jupyterlab_server/rest-api.yml').resolve() |
100 |
| - yaml = YAML(typ='safe') |
101 |
| - spec_dict = yaml.load(path.read_text(encoding='utf-8')) |
102 |
| - spec = create_spec(spec_dict) |
103 |
| - |
104 |
| - validator = RequestValidator(spec) |
105 |
| - request = wrap_request(response.request, spec) |
| 98 | + validator = RequestValidator(openapi_spec) |
| 99 | + request = wrap_request(response.request, openapi_spec) |
106 | 100 | result = validator.validate(request)
|
107 | 101 | print(result.errors)
|
108 | 102 | result.raise_for_errors()
|
109 | 103 |
|
110 |
| - validator = ResponseValidator(spec) |
| 104 | + validator = ResponseValidator(openapi_spec) |
111 | 105 | response = wrap_response(response)
|
112 | 106 | result = validator.validate(request, response)
|
113 | 107 | print(result.errors)
|
|
0 commit comments