Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion generate/templates/async_function.py.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
{% endif %}

if not response.is_success:
from ..response_helpers import raise_for_status
from kittycad.response_helpers import raise_for_status
raise_for_status(response)

{% if response_type and response_type != "" %}
Expand Down
6 changes: 3 additions & 3 deletions generate/templates/shared_macros.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@

Args:
response_type: Expected response type for deserialization
import_path: Import path for raise_for_status (default: ..response_helpers)
import_path: Import path for raise_for_status (default: kittycad.response_helpers)
#}
{% macro parse_response(response_type, import_path="..response_helpers") -%}
{% macro parse_response(response_type, import_path="kittycad.response_helpers") -%}
if not response.is_success:
from {{ import_path }} import raise_for_status
raise_for_status(response)
Expand Down Expand Up @@ -208,4 +208,4 @@
{% else %}
return ws_connect(url, additional_headers=headers)
{% endif %}
{%- endmacro %}
{%- endmacro %}
2 changes: 1 addition & 1 deletion generate/templates/sync_function.py.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
{% endif %}

if not response.is_success:
from ..response_helpers import raise_for_status
from kittycad.response_helpers import raise_for_status
raise_for_status(response)

{% if response_type and response_type != "" %}
Expand Down
14 changes: 14 additions & 0 deletions generate/tests/test_generator_patterns.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,20 @@
from kittycad.pagination import AsyncPageIterator, SyncPageIterator


class TestResponseHelperImports:
"""Ensure generated clients import response helpers from valid module paths."""

def test_client_uses_package_scoped_response_helper_imports(self):
import kittycad

client_file = Path(kittycad.__file__)
content = client_file.read_text()

# The generator should never emit parent-relative imports in the package root.
assert "..response_helpers" not in content
assert "from kittycad.response_helpers import raise_for_status" in content


class TestMultipartEndpoints:
"""Test multipart endpoints produce upload_* with file: SyncUpload, correct multipart code."""

Expand Down
Loading
Loading