Skip to content

Commit dde5fac

Browse files
committed
resolver / add reference tests
1 parent 8f404a3 commit dde5fac

File tree

1 file changed

+212
-0
lines changed

1 file changed

+212
-0
lines changed
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
import pytest
2+
3+
4+
def get_data_set():
5+
# https://swagger.io/docs/specification/using-ref/
6+
return {
7+
"local_references": ["#/definitions/myElement"],
8+
"remote_references": [
9+
"document.json#/myElement",
10+
"../document.json#/myElement",
11+
"../another-folder/document.json#/myElement",
12+
],
13+
"url_references": [
14+
"http://path/to/your/resource",
15+
"http://path/to/your/resource.json#myElement",
16+
"//anotherserver.com/files/example.json",
17+
],
18+
"relative_references": [
19+
"#/definitions/myElement",
20+
"document.json#/myElement",
21+
"../document.json#/myElement",
22+
"../another-folder/document.json#/myElement",
23+
],
24+
"absolute_references": [
25+
"http://path/to/your/resource",
26+
"http://path/to/your/resource.json#myElement",
27+
"//anotherserver.com/files/example.json",
28+
],
29+
"full_document_references": [
30+
"http://path/to/your/resource",
31+
"//anotherserver.com/files/example.json",
32+
],
33+
"not_full_document_references": [
34+
"#/definitions/myElement",
35+
"document.json#/myElement",
36+
"../document.json#/myElement",
37+
"../another-folder/document.json#/myElement",
38+
"http://path/to/your/resource.json#myElement",
39+
],
40+
"path_by_reference": {
41+
"#/definitions/myElement": "",
42+
"document.json#/myElement": "document.json",
43+
"../document.json#/myElement": "../document.json",
44+
"../another-folder/document.json#/myElement": "../another-folder/document.json",
45+
"http://path/to/your/resource": "http://path/to/your/resource",
46+
"http://path/to/your/resource.json#myElement": "http://path/to/your/resource.json",
47+
"//anotherserver.com/files/example.json": "//anotherserver.com/files/example.json",
48+
},
49+
"pointer_by_reference": {
50+
"#/definitions/myElement": "/definitions/myElement",
51+
"document.json#/myElement": "/myElement",
52+
"../document.json#/myElement": "/myElement",
53+
"../another-folder/document.json#/myElement": "/myElement",
54+
"http://path/to/your/resource": "",
55+
"http://path/to/your/resource.json#myElement": "/myElement",
56+
"//anotherserver.com/files/example.json": "",
57+
},
58+
"pointerparent_by_reference": {
59+
"#/definitions/myElement": "/definitions",
60+
"document.json#/myElement": "",
61+
"../document.json#/myElement": "",
62+
"../another-folder/document.json#/myElement": "",
63+
"http://path/to/your/resource": None,
64+
"http://path/to/your/resource.json#myElement": "",
65+
"//anotherserver.com/files/example.json": None,
66+
},
67+
}
68+
69+
70+
def test_is_local():
71+
from openapi_python_client.resolver.reference import Reference
72+
73+
data_set = get_data_set()
74+
75+
for ref_str in data_set["local_references"]:
76+
ref = Reference(ref_str)
77+
assert ref.is_local() == True
78+
79+
for ref_str in data_set["remote_references"]:
80+
ref = Reference(ref_str)
81+
assert ref.is_local() == False
82+
83+
for ref_str in data_set["url_references"]:
84+
ref = Reference(ref_str)
85+
assert ref.is_local() == False
86+
87+
88+
def test_is_remote():
89+
from openapi_python_client.resolver.reference import Reference
90+
91+
data_set = get_data_set()
92+
93+
for ref_str in data_set["local_references"]:
94+
ref = Reference(ref_str)
95+
assert ref.is_remote() == False
96+
97+
for ref_str in data_set["remote_references"]:
98+
ref = Reference(ref_str)
99+
assert ref.is_remote() == True
100+
101+
for ref_str in data_set["url_references"]:
102+
ref = Reference(ref_str)
103+
assert ref.is_remote() == True
104+
105+
106+
def test_is_url():
107+
from openapi_python_client.resolver.reference import Reference
108+
109+
data_set = get_data_set()
110+
111+
for ref_str in data_set["local_references"]:
112+
ref = Reference(ref_str)
113+
assert ref.is_url() == False
114+
115+
for ref_str in data_set["remote_references"]:
116+
ref = Reference(ref_str)
117+
assert ref.is_url() == False
118+
119+
for ref_str in data_set["url_references"]:
120+
ref = Reference(ref_str)
121+
assert ref.is_url() == True
122+
123+
124+
def test_is_absolute():
125+
from openapi_python_client.resolver.reference import Reference
126+
127+
data_set = get_data_set()
128+
129+
for ref_str in data_set["absolute_references"]:
130+
ref = Reference(ref_str)
131+
assert ref.is_absolute() == True
132+
133+
for ref_str in data_set["relative_references"]:
134+
ref = Reference(ref_str)
135+
assert ref.is_absolute() == False
136+
137+
138+
def test_is_relative():
139+
from openapi_python_client.resolver.reference import Reference
140+
141+
data_set = get_data_set()
142+
143+
for ref_str in data_set["absolute_references"]:
144+
ref = Reference(ref_str)
145+
assert ref.is_relative() == False
146+
147+
for ref_str in data_set["relative_references"]:
148+
ref = Reference(ref_str)
149+
assert ref.is_relative() == True
150+
151+
152+
def test_pointer():
153+
from openapi_python_client.resolver.reference import Reference
154+
155+
data_set = get_data_set()
156+
157+
for ref_str in data_set["pointer_by_reference"].keys():
158+
ref = Reference(ref_str)
159+
pointer = data_set["pointer_by_reference"][ref_str]
160+
assert ref.pointer.value == pointer
161+
162+
163+
def test_pointer_parent():
164+
from openapi_python_client.resolver.reference import Reference
165+
166+
data_set = get_data_set()
167+
168+
for ref_str in data_set["pointerparent_by_reference"].keys():
169+
ref = Reference(ref_str)
170+
pointer_parent = data_set["pointerparent_by_reference"][ref_str]
171+
172+
if pointer_parent is not None:
173+
assert ref.pointer.parent.value == pointer_parent
174+
else:
175+
assert ref.pointer.parent == None
176+
177+
178+
def test_path():
179+
from openapi_python_client.resolver.reference import Reference
180+
181+
data_set = get_data_set()
182+
183+
for ref_str in data_set["path_by_reference"].keys():
184+
ref = Reference(ref_str)
185+
path = data_set["path_by_reference"][ref_str]
186+
assert ref.path == path
187+
188+
189+
def test_is_full_document():
190+
from openapi_python_client.resolver.reference import Reference
191+
192+
data_set = get_data_set()
193+
194+
for ref_str in data_set["full_document_references"]:
195+
ref = Reference(ref_str)
196+
assert ref.is_full_document() == True
197+
assert ref.pointer.parent == None
198+
199+
for ref_str in data_set["not_full_document_references"]:
200+
ref = Reference(ref_str)
201+
assert ref.is_full_document() == False
202+
assert ref.pointer.parent != None
203+
204+
205+
def test_value():
206+
from openapi_python_client.resolver.reference import Reference
207+
208+
ref = Reference("fooBaR")
209+
assert ref.value == "fooBaR"
210+
211+
ref = Reference("FooBAR")
212+
assert ref.value == "FooBAR"

0 commit comments

Comments
 (0)