diff --git a/apistar/schemas/openapi.py b/apistar/schemas/openapi.py index b8742699..c2c31640 100644 --- a/apistar/schemas/openapi.py +++ b/apistar/schemas/openapi.py @@ -1,7 +1,6 @@ import re -from urllib.parse import urljoin - import typesystem + from apistar.document import Document, Field, Link, Section from apistar.schemas.jsonschema import JSON_SCHEMA @@ -462,7 +461,7 @@ def get_link( return Link( name=name, - url=urljoin(base_url, path), + url=(base_url or "") + path, method=operation, title=title, description=description, diff --git a/requirements.txt b/requirements.txt index cf3a4712..88e4409f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ click jinja2 requests pyyaml -typesystem>=0.2.0 +typesystem==0.2.4 # Testing requirements black diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index 3b23cafe..60fd9f5c 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -1,5 +1,4 @@ import os - import pytest import apistar @@ -21,4 +20,7 @@ def test_openapi(filename): path, extension = os.path.splitext(filename) encoding = {".json": "json", ".yaml": "yaml"}[extension] - apistar.validate(content, format="openapi", encoding=encoding) + document = apistar.validate(content, format="openapi", encoding=encoding) + if document.url is not None: + for link_info in document.walk_links(): + assert document.url in link_info.link.url