Skip to content

Commit d047747

Browse files
authored
Merge pull request #165 from p1c2u/refactor/test-suits-refactor
test suites refactor
2 parents a72b0ad + 7bca8cd commit d047747

File tree

7 files changed

+630
-724
lines changed

7 files changed

+630
-724
lines changed

openapi_spec_validator/schemas.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,14 @@
11
"""OpenAIP spec validator schemas module."""
2-
import os
3-
import urllib.parse
4-
import urllib.request
2+
from os import path
53

64
import importlib_resources
75

8-
from jsonschema_spec.handlers.compat import SafeLoader
9-
from jsonschema_spec.handlers.file import FileHandler
6+
from jsonschema_spec.readers import FilePathReader
107

118

129
def get_openapi_schema(version):
13-
path = 'resources/schemas/v{0}/schema.json'.format(version)
14-
ref = importlib_resources.files('openapi_spec_validator') / path
15-
with importlib_resources.as_file(ref) as path_resource:
16-
path_full = os.path.join(os.path.dirname(__file__), path_resource)
17-
schema = read_yaml_file(path_full)
18-
schema_url = urllib.parse.urljoin('file:', urllib.request.pathname2url(path_full))
19-
return schema, schema_url
20-
21-
22-
def read_yaml_file(path, loader=SafeLoader):
23-
"""Open a file, read it and return its contents."""
24-
with open(path) as fh:
25-
return FileHandler(loader=loader)(fh)
10+
schema_path = 'resources/schemas/v{0}/schema.json'.format(version)
11+
ref = importlib_resources.files('openapi_spec_validator') / schema_path
12+
with importlib_resources.as_file(ref) as resource_path:
13+
schema_path_full = path.join(path.dirname(__file__), resource_path)
14+
return FilePathReader(schema_path_full).read()

tests/integration/conftest.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
from os import path
2+
from pathlib import PurePath
3+
from urllib.parse import urlunparse
24

5+
from jsonschema_spec.handlers.file import FilePathHandler
6+
from jsonschema_spec.handlers.urllib import UrllibHandler
37
import pytest
4-
from urllib import request
5-
from urllib.parse import urlunparse
6-
from yaml import safe_load
78

8-
from openapi_spec_validator import (openapi_v2_spec_validator,
9-
openapi_v30_spec_validator,
10-
openapi_v31_spec_validator)
11-
from openapi_spec_validator.schemas import read_yaml_file
9+
from openapi_spec_validator import openapi_v2_spec_validator
10+
from openapi_spec_validator import openapi_v30_spec_validator
11+
from openapi_spec_validator import openapi_v31_spec_validator
1212

1313

14-
def spec_url(spec_file, schema='file'):
14+
def spec_file_url(spec_file, schema='file'):
1515
directory = path.abspath(path.dirname(__file__))
1616
full_path = path.join(directory, spec_file)
1717
return urlunparse((schema, None, full_path, None, None, None))
@@ -20,12 +20,12 @@ def spec_url(spec_file, schema='file'):
2020
def spec_from_file(spec_file):
2121
directory = path.abspath(path.dirname(__file__))
2222
path_full = path.join(directory, spec_file)
23-
return read_yaml_file(path_full)
23+
uri = PurePath(path_full).as_uri()
24+
return FilePathHandler()(uri)
2425

2526

2627
def spec_from_url(spec_url):
27-
content = request.urlopen(spec_url)
28-
return safe_load(content)
28+
return UrllibHandler("http", "https")(spec_url)
2929

3030

3131
class Factory(dict):
@@ -36,7 +36,7 @@ class Factory(dict):
3636
@pytest.fixture
3737
def factory():
3838
return Factory(
39-
spec_url=spec_url,
39+
spec_file_url=spec_file_url,
4040
spec_from_file=spec_from_file,
4141
spec_from_url=spec_from_url,
4242
)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
swagger: "2.0"

0 commit comments

Comments
 (0)