diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py index 006d3c078..310b7bf43 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py @@ -20,7 +20,7 @@ def _get_kwargs( cookies: Dict[str, Any] = client.get_cookies() if keep_alive is not UNSET: - headers["keep-alive"] = keep_alive + headers["keep-alive"] = str(keep_alive).lower() multipart_multipart_data = multipart_data.to_multipart() diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py index 5bcfc99c6..2cae2bdff 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py @@ -19,7 +19,7 @@ def _get_kwargs( cookies: Dict[str, Any] = client.get_cookies() if keep_alive is not UNSET: - headers["keep-alive"] = keep_alive + headers["keep-alive"] = str(keep_alive).lower() multipart_multipart_data = [] for multipart_data_item_data in multipart_data: diff --git a/openapi_python_client/__init__.py b/openapi_python_client/__init__.py index a8860198e..8f7caa1fa 100644 --- a/openapi_python_client/__init__.py +++ b/openapi_python_client/__init__.py @@ -267,7 +267,9 @@ def _build_api(self) -> None: encoding=self.file_encoding, ) - endpoint_template = self.env.get_template("endpoint_module.py.jinja") + endpoint_template = self.env.get_template( + "endpoint_module.py.jinja", globals={"isbool": lambda obj: obj.get_base_type_string() == "bool"} + ) for tag, collection in endpoint_collections_by_tag.items(): tag_dir = api_dir / tag tag_dir.mkdir() @@ -281,7 +283,12 @@ def _build_api(self) -> None: for endpoint in collection.endpoints: module_path = tag_dir / f"{utils.PythonIdentifier(endpoint.name, self.config.field_prefix)}.py" - module_path.write_text(endpoint_template.render(endpoint=endpoint), encoding=self.file_encoding) + module_path.write_text( + endpoint_template.render( + endpoint=endpoint, + ), + encoding=self.file_encoding, + ) def _get_project_for_url_or_path( # pylint: disable=too-many-arguments diff --git a/openapi_python_client/templates/endpoint_macros.py.jinja b/openapi_python_client/templates/endpoint_macros.py.jinja index 36c65d7e2..451ed1a51 100644 --- a/openapi_python_client/templates/endpoint_macros.py.jinja +++ b/openapi_python_client/templates/endpoint_macros.py.jinja @@ -2,10 +2,18 @@ {% if endpoint.header_parameters %} {% for parameter in endpoint.header_parameters.values() %} {% if parameter.required %} -headers["{{ parameter.name | kebabcase}}"] = {{ parameter.python_name }} +headers["{{ parameter.name | kebabcase}}"] = {% if isbool(parameter) %} + str({{ parameter.python_name }}).lower() + {% else %} + {{ parameter.python_name}} + {% endif %} {% else %} if {{ parameter.python_name }} is not UNSET: - headers["{{ parameter.name | kebabcase}}"] = {{ parameter.python_name }} + headers["{{ parameter.name | kebabcase}}"] = {% if isbool(parameter) %} + str({{ parameter.python_name }}).lower() + {% else %} + {{ parameter.python_name}} + {% endif %} {% endif %} {% endfor %} {% endif %}