Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 95e24de

Browse files
committed
Adds test_passed_in_header_overrides_default + test_default_header_used_when_no_header_params_input
1 parent b8f9e01 commit 95e24de

File tree

6 files changed

+93
-12
lines changed

6 files changed

+93
-12
lines changed

modules/openapi-json-schema-generator/src/main/resources/python/api_client.handlebars

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,15 +1055,17 @@ class ApiClient:
10551055

10561056
# header parameters
10571057
used_headers = HTTPHeaderDict(self.default_headers)
1058-
if headers:
1059-
used_headers.extend(headers)
10601058
if self.cookie:
10611059
headers['Cookie'] = self.cookie
10621060

10631061
# auth setting
1064-
self.update_params_for_auth(headers,
1062+
self.update_params_for_auth(used_headers,
10651063
auth_settings, resource_path, method, body)
10661064

1065+
# must happen after cookie setting and auth setting in case user is overriding those
1066+
if headers:
1067+
used_headers.update(headers)
1068+
10671069
# request url
10681070
if host is None:
10691071
url = self.configuration.host + resource_path

samples/openapi3/client/3_0_3_unit_test/python/unit_test_api/api_client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,15 +1056,17 @@ def __call_api(
10561056

10571057
# header parameters
10581058
used_headers = HTTPHeaderDict(self.default_headers)
1059-
if headers:
1060-
used_headers.extend(headers)
10611059
if self.cookie:
10621060
headers['Cookie'] = self.cookie
10631061

10641062
# auth setting
1065-
self.update_params_for_auth(headers,
1063+
self.update_params_for_auth(used_headers,
10661064
auth_settings, resource_path, method, body)
10671065

1066+
# must happen after cookie setting and auth setting in case user is overriding those
1067+
if headers:
1068+
used_headers.update(headers)
1069+
10681070
# request url
10691071
if host is None:
10701072
url = self.configuration.host + resource_path

samples/openapi3/client/features/nonCompliantUseDiscriminatorIfCompositionFails/python/this_package/api_client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,15 +1056,17 @@ def __call_api(
10561056

10571057
# header parameters
10581058
used_headers = HTTPHeaderDict(self.default_headers)
1059-
if headers:
1060-
used_headers.extend(headers)
10611059
if self.cookie:
10621060
headers['Cookie'] = self.cookie
10631061

10641062
# auth setting
1065-
self.update_params_for_auth(headers,
1063+
self.update_params_for_auth(used_headers,
10661064
auth_settings, resource_path, method, body)
10671065

1066+
# must happen after cookie setting and auth setting in case user is overriding those
1067+
if headers:
1068+
used_headers.update(headers)
1069+
10681070
# request url
10691071
if host is None:
10701072
url = self.configuration.host + resource_path

samples/openapi3/client/petstore/python/petstore_api/api_client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,15 +1056,17 @@ def __call_api(
10561056

10571057
# header parameters
10581058
used_headers = HTTPHeaderDict(self.default_headers)
1059-
if headers:
1060-
used_headers.extend(headers)
10611059
if self.cookie:
10621060
headers['Cookie'] = self.cookie
10631061

10641062
# auth setting
1065-
self.update_params_for_auth(headers,
1063+
self.update_params_for_auth(used_headers,
10661064
auth_settings, resource_path, method, body)
10671065

1066+
# must happen after cookie setting and auth setting in case user is overriding those
1067+
if headers:
1068+
used_headers.update(headers)
1069+
10681070
# request url
10691071
if host is None:
10701072
url = self.configuration.host + resource_path

samples/openapi3/client/petstore/python/tests_manual/test_paths/test_fake/__init__.py

Whitespace-only changes.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# coding: utf-8
2+
3+
"""
4+
5+
6+
Generated by: https://openapi-generator.tech
7+
"""
8+
9+
import unittest
10+
from unittest.mock import patch
11+
12+
import urllib3
13+
14+
import petstore_api
15+
from petstore_api.paths.fake import get # noqa: E501
16+
from petstore_api import configuration, schemas, api_client
17+
18+
from ... import ApiTestMixin
19+
20+
21+
class TestFake(ApiTestMixin, unittest.TestCase):
22+
"""
23+
Fake unit test stubs
24+
To test enum parameters # noqa: E501
25+
"""
26+
used_api_client = api_client.ApiClient(
27+
header_name='enum_header_string',
28+
header_value='_abc'
29+
)
30+
api = get.ApiForget(api_client=used_api_client)
31+
32+
@patch.object(urllib3.PoolManager, 'request')
33+
def test_passed_in_header_overrides_default(self, mock_request):
34+
mock_request.return_value = self.response(b'')
35+
36+
api_response = self.api.get(header_params={'enum_header_string': '-efg'})
37+
self.assert_pool_manager_request_called_with(
38+
mock_request,
39+
f'http://petstore.swagger.io:80/v2/fake',
40+
body=None,
41+
method='GET',
42+
content_type=None,
43+
accept_content_type=None,
44+
headers={'enum_header_string': '-efg'}
45+
)
46+
47+
assert isinstance(api_response.response, urllib3.HTTPResponse)
48+
assert isinstance(api_response.body, schemas.Unset)
49+
assert isinstance(api_response.headers, schemas.Unset)
50+
assert api_response.response.status == 200
51+
52+
@patch.object(urllib3.PoolManager, 'request')
53+
def test_default_header_used_when_no_header_params_input(self, mock_request):
54+
mock_request.return_value = self.response(b'')
55+
56+
api_response = self.api.get()
57+
self.assert_pool_manager_request_called_with(
58+
mock_request,
59+
f'http://petstore.swagger.io:80/v2/fake',
60+
body=None,
61+
method='GET',
62+
content_type=None,
63+
accept_content_type=None,
64+
headers={'enum_header_string': '_abc'}
65+
)
66+
67+
assert isinstance(api_response.response, urllib3.HTTPResponse)
68+
assert isinstance(api_response.body, schemas.Unset)
69+
assert isinstance(api_response.headers, schemas.Unset)
70+
assert api_response.response.status == 200
71+
72+
if __name__ == '__main__':
73+
unittest.main()

0 commit comments

Comments
 (0)