-
-
Notifications
You must be signed in to change notification settings - Fork 67
/
Copy pathconftest.py
38 lines (27 loc) · 986 Bytes
/
conftest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from os import path
from pathlib import PurePath
from urllib.parse import urlunparse
import pytest
from jsonschema_path.handlers.file import FilePathHandler
from jsonschema_path.handlers.urllib import UrllibHandler
def spec_file_url(spec_file, schema="file"):
directory = path.abspath(path.dirname(__file__))
full_path = path.join(directory, spec_file)
return urlunparse((schema, None, full_path, None, None, None))
def spec_from_file(spec_file):
directory = path.abspath(path.dirname(__file__))
path_full = path.join(directory, spec_file)
uri = PurePath(path_full).as_uri()
return FilePathHandler()(uri)
def spec_from_url(spec_url):
return UrllibHandler("http", "https")(spec_url)
class Factory(dict):
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__
@pytest.fixture
def factory():
return Factory(
spec_file_url=spec_file_url,
spec_from_file=spec_from_file,
spec_from_url=spec_from_url,
)