Skip to content

Commit 205e678

Browse files
committed
Path finder returns default server
1 parent f2ed227 commit 205e678

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

openapi_core/templating/paths/finders.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@ def _get_servers_iter(
101101
servers = (
102102
path.get("servers", None)
103103
or operation.get("servers", None)
104-
or self.spec.get("servers", [{"url": "/"}])
104+
or self.spec.get("servers", None)
105105
)
106+
if not servers:
107+
servers = [SchemaPath.from_dict({"url": "/"})]
106108
for server in servers:
107109
server_url_pattern = name.rsplit(path_result.resolved, 1)[0]
108110
server_url = server["url"]

tests/unit/templating/test_paths_finders.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,24 @@ class BaseTestServerNotFound:
172172
def servers(self):
173173
return []
174174

175-
@pytest.mark.xfail(
176-
reason="returns default server",
177-
)
178-
def test_raises(self, finder):
175+
def test_returns_default_server(self, finder, spec):
179176
method = "get"
180177
full_url = "http://petstore.swagger.io/resource"
181178

182-
with pytest.raises(ServerNotFound):
183-
finder.find(method, full_url)
179+
result = finder.find(method, full_url)
180+
181+
path = spec / "paths" / self.path_name
182+
operation = spec / "paths" / self.path_name / method
183+
server = SchemaPath.from_dict({"url": "/"})
184+
path_result = TemplateResult(self.path_name, {})
185+
server_result = TemplateResult("/", {})
186+
assert result == (
187+
path,
188+
operation,
189+
server,
190+
path_result,
191+
server_result,
192+
)
184193

185194

186195
class BaseTestOperationNotFound:

0 commit comments

Comments
 (0)