Skip to content

Commit cf8eafc

Browse files
expobrainemann
andauthored
feat: Added support of follow HTTP redirects (#724). Thanks @expobrain & @emann!
* Added support of follow HTTP redirects * Regenerated E2E copy --------- Co-authored-by: Ethan Mann <[email protected]>
1 parent 7af7323 commit cf8eafc

38 files changed

+41
-0
lines changed

end_to_end_tests/golden-record/my_test_api_client/api/default/get_common_parameters.py

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def _get_kwargs(
2929
"headers": headers,
3030
"cookies": cookies,
3131
"timeout": client.get_timeout(),
32+
"follow_redirects": client.follow_redirects,
3233
"params": params,
3334
}
3435

end_to_end_tests/golden-record/my_test_api_client/api/default/post_common_parameters.py

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def _get_kwargs(
2929
"headers": headers,
3030
"cookies": cookies,
3131
"timeout": client.get_timeout(),
32+
"follow_redirects": client.follow_redirects,
3233
"params": params,
3334
}
3435

end_to_end_tests/golden-record/my_test_api_client/api/location/get_location_header_types.py

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ def _get_kwargs(
4949
"headers": headers,
5050
"cookies": cookies,
5151
"timeout": client.get_timeout(),
52+
"follow_redirects": client.follow_redirects,
5253
}
5354

5455

end_to_end_tests/golden-record/my_test_api_client/api/location/get_location_query_optionality.py

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def _get_kwargs(
5353
"headers": headers,
5454
"cookies": cookies,
5555
"timeout": client.get_timeout(),
56+
"follow_redirects": client.follow_redirects,
5657
"params": params,
5758
}
5859

end_to_end_tests/golden-record/my_test_api_client/api/parameter_references/get_parameter_references_path_param.py

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def _get_kwargs(
4141
"headers": headers,
4242
"cookies": cookies,
4343
"timeout": client.get_timeout(),
44+
"follow_redirects": client.follow_redirects,
4445
"params": params,
4546
}
4647

end_to_end_tests/golden-record/my_test_api_client/api/parameters/delete_common_parameters_overriding_param.py

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def _get_kwargs(
3030
"headers": headers,
3131
"cookies": cookies,
3232
"timeout": client.get_timeout(),
33+
"follow_redirects": client.follow_redirects,
3334
"params": params,
3435
}
3536

end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_common_parameters_overriding_param.py

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def _get_kwargs(
3030
"headers": headers,
3131
"cookies": cookies,
3232
"timeout": client.get_timeout(),
33+
"follow_redirects": client.follow_redirects,
3334
"params": params,
3435
}
3536

end_to_end_tests/golden-record/my_test_api_client/api/parameters/get_same_name_multiple_locations_param.py

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def _get_kwargs(
3838
"headers": headers,
3939
"cookies": cookies,
4040
"timeout": client.get_timeout(),
41+
"follow_redirects": client.follow_redirects,
4142
"params": params,
4243
}
4344

end_to_end_tests/golden-record/my_test_api_client/api/parameters/multiple_path_parameters.py

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def _get_kwargs(
2929
"headers": headers,
3030
"cookies": cookies,
3131
"timeout": client.get_timeout(),
32+
"follow_redirects": client.follow_redirects,
3233
}
3334

3435

end_to_end_tests/golden-record/my_test_api_client/api/responses/post_responses_unions_simple_before_complex.py

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def _get_kwargs(
2626
"headers": headers,
2727
"cookies": cookies,
2828
"timeout": client.get_timeout(),
29+
"follow_redirects": client.follow_redirects,
2930
}
3031

3132

end_to_end_tests/golden-record/my_test_api_client/api/tag1/get_tag_with_number.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/callback_test.py

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def _get_kwargs(
2828
"headers": headers,
2929
"cookies": cookies,
3030
"timeout": client.get_timeout(),
31+
"follow_redirects": client.follow_redirects,
3132
"json": json_json_body,
3233
}
3334

end_to_end_tests/golden-record/my_test_api_client/api/tests/defaults_tests_defaults_post.py

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ def _get_kwargs(
9595
"headers": headers,
9696
"cookies": cookies,
9797
"timeout": client.get_timeout(),
98+
"follow_redirects": client.follow_redirects,
9899
"params": params,
99100
}
100101

end_to_end_tests/golden-record/my_test_api_client/api/tests/description_with_backslash.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_booleans.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_floats.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_integers.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/get_basic_list_of_strings.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/get_user_list.py

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def _get_kwargs(
6666
"headers": headers,
6767
"cookies": cookies,
6868
"timeout": client.get_timeout(),
69+
"follow_redirects": client.follow_redirects,
6970
"params": params,
7071
}
7172

end_to_end_tests/golden-record/my_test_api_client/api/tests/int_enum_tests_int_enum_post.py

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def _get_kwargs(
3333
"headers": headers,
3434
"cookies": cookies,
3535
"timeout": client.get_timeout(),
36+
"follow_redirects": client.follow_redirects,
3637
"params": params,
3738
}
3839

end_to_end_tests/golden-record/my_test_api_client/api/tests/json_body_tests_json_body_post.py

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def _get_kwargs(
2828
"headers": headers,
2929
"cookies": cookies,
3030
"timeout": client.get_timeout(),
31+
"follow_redirects": client.follow_redirects,
3132
"json": json_json_body,
3233
}
3334

end_to_end_tests/golden-record/my_test_api_client/api/tests/no_response_tests_no_response_get.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/octet_stream_tests_octet_stream_get.py

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def _get_kwargs(
2424
"headers": headers,
2525
"cookies": cookies,
2626
"timeout": client.get_timeout(),
27+
"follow_redirects": client.follow_redirects,
2728
}
2829

2930

end_to_end_tests/golden-record/my_test_api_client/api/tests/post_form_data.py

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def _get_kwargs(
2525
"headers": headers,
2626
"cookies": cookies,
2727
"timeout": client.get_timeout(),
28+
"follow_redirects": client.follow_redirects,
2829
"data": form_data.to_dict(),
2930
}
3031

end_to_end_tests/golden-record/my_test_api_client/api/tests/post_form_data_inline.py

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def _get_kwargs(
2525
"headers": headers,
2626
"cookies": cookies,
2727
"timeout": client.get_timeout(),
28+
"follow_redirects": client.follow_redirects,
2829
"data": form_data.to_dict(),
2930
}
3031

end_to_end_tests/golden-record/my_test_api_client/api/tests/post_tests_json_body_string.py

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def _get_kwargs(
2727
"headers": headers,
2828
"cookies": cookies,
2929
"timeout": client.get_timeout(),
30+
"follow_redirects": client.follow_redirects,
3031
"json": json_json_body,
3132
}
3233

end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def _get_kwargs(
2828
"headers": headers,
2929
"cookies": cookies,
3030
"timeout": client.get_timeout(),
31+
"follow_redirects": client.follow_redirects,
3132
"json": json_json_body,
3233
}
3334

end_to_end_tests/golden-record/my_test_api_client/api/tests/token_with_cookie_auth_token_with_cookie_get.py

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def _get_kwargs(
2626
"headers": headers,
2727
"cookies": cookies,
2828
"timeout": client.get_timeout(),
29+
"follow_redirects": client.follow_redirects,
2930
}
3031

3132

end_to_end_tests/golden-record/my_test_api_client/api/tests/unsupported_content_tests_unsupported_content_get.py

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _get_kwargs(
2323
"headers": headers,
2424
"cookies": cookies,
2525
"timeout": client.get_timeout(),
26+
"follow_redirects": client.follow_redirects,
2627
}
2728

2829

end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_file_tests_upload_post.py

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def _get_kwargs(
2828
"headers": headers,
2929
"cookies": cookies,
3030
"timeout": client.get_timeout(),
31+
"follow_redirects": client.follow_redirects,
3132
"files": multipart_multipart_data,
3233
}
3334

end_to_end_tests/golden-record/my_test_api_client/api/tests/upload_multiple_files_tests_upload_post.py

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def _get_kwargs(
3131
"headers": headers,
3232
"cookies": cookies,
3333
"timeout": client.get_timeout(),
34+
"follow_redirects": client.follow_redirects,
3435
"files": multipart_multipart_data,
3536
}
3637

end_to_end_tests/golden-record/my_test_api_client/api/true_/false_.py

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def _get_kwargs(
2929
"headers": headers,
3030
"cookies": cookies,
3131
"timeout": client.get_timeout(),
32+
"follow_redirects": client.follow_redirects,
3233
"params": params,
3334
}
3435

end_to_end_tests/golden-record/my_test_api_client/client.py

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Client:
1818
but can be set to False for testing purposes.
1919
raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
2020
status code that was not documented in the source OpenAPI document.
21+
follow_redirects: Whether or not to follow redirects. Default value is False.
2122
"""
2223

2324
base_url: str
@@ -26,6 +27,7 @@ class Client:
2627
timeout: float = attr.ib(5.0, kw_only=True)
2728
verify_ssl: Union[str, bool, ssl.SSLContext] = attr.ib(True, kw_only=True)
2829
raise_on_unexpected_status: bool = attr.ib(False, kw_only=True)
30+
follow_redirects: bool = attr.ib(False, kw_only=True)
2931

3032
def get_headers(self) -> Dict[str, str]:
3133
"""Get headers to be used in all endpoints"""

integration-tests/integration_tests/api/body/post_body_multipart.py

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def _get_kwargs(
2929
"headers": headers,
3030
"cookies": cookies,
3131
"timeout": client.get_timeout(),
32+
"follow_redirects": client.follow_redirects,
3233
"files": multipart_multipart_data,
3334
}
3435

integration-tests/integration_tests/api/parameters/post_parameters_header.py

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def _get_kwargs(
3737
"headers": headers,
3838
"cookies": cookies,
3939
"timeout": client.get_timeout(),
40+
"follow_redirects": client.follow_redirects,
4041
}
4142

4243

integration-tests/integration_tests/client.py

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Client:
1818
but can be set to False for testing purposes.
1919
raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
2020
status code that was not documented in the source OpenAPI document.
21+
follow_redirects: Whether or not to follow redirects. Default value is False.
2122
"""
2223

2324
base_url: str
@@ -26,6 +27,7 @@ class Client:
2627
timeout: float = attr.ib(5.0, kw_only=True)
2728
verify_ssl: Union[str, bool, ssl.SSLContext] = attr.ib(True, kw_only=True)
2829
raise_on_unexpected_status: bool = attr.ib(False, kw_only=True)
30+
follow_redirects: bool = attr.ib(False, kw_only=True)
2931

3032
def get_headers(self) -> Dict[str, str]:
3133
"""Get headers to be used in all endpoints"""

openapi_python_client/templates/client.py.jinja

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class Client:
1616
but can be set to False for testing purposes.
1717
raise_on_unexpected_status: Whether or not to raise an errors.UnexpectedStatus if the API returns a
1818
status code that was not documented in the source OpenAPI document.
19+
follow_redirects: Whether or not to follow redirects. Default value is False.
1920
"""
2021

2122
base_url: str
@@ -24,6 +25,7 @@ class Client:
2425
timeout: float = attr.ib(5.0, kw_only=True)
2526
verify_ssl: Union[str, bool, ssl.SSLContext] = attr.ib(True, kw_only=True)
2627
raise_on_unexpected_status: bool = attr.ib(False, kw_only=True)
28+
follow_redirects: bool = attr.ib(False, kw_only=True)
2729

2830
def get_headers(self) -> Dict[str, str]:
2931
""" Get headers to be used in all endpoints """

openapi_python_client/templates/endpoint_module.py.jinja

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ def _get_kwargs(
4646
"headers": headers,
4747
"cookies": cookies,
4848
"timeout": client.get_timeout(),
49+
"follow_redirects": client.follow_redirects,
4950
{% if endpoint.form_body %}
5051
"data": form_data.to_dict(),
5152
{% elif endpoint.multipart_body %}

0 commit comments

Comments
 (0)