Skip to content

Commit 7d99522

Browse files
committed
Extend the UnexpectedStatus exception to include the response's content
1 parent f741d81 commit 7d99522

37 files changed

+50
-38
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3737
if response.status_code == HTTPStatus.OK:
3838
return None
3939
if client.raise_on_unexpected_status:
40-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
40+
raise errors.UnexpectedStatus(response.status_code, response.content)
4141
else:
4242
return None
4343

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3737
if response.status_code == HTTPStatus.OK:
3838
return None
3939
if client.raise_on_unexpected_status:
40-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
40+
raise errors.UnexpectedStatus(response.status_code, response.content)
4141
else:
4242
return None
4343

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
5656
if response.status_code == HTTPStatus.OK:
5757
return None
5858
if client.raise_on_unexpected_status:
59-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
59+
raise errors.UnexpectedStatus(response.status_code, response.content)
6060
else:
6161
return None
6262

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
6161
if response.status_code == HTTPStatus.OK:
6262
return None
6363
if client.raise_on_unexpected_status:
64-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
64+
raise errors.UnexpectedStatus(response.status_code, response.content)
6565
else:
6666
return None
6767

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
4747
if response.status_code == HTTPStatus.OK:
4848
return None
4949
if client.raise_on_unexpected_status:
50-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
50+
raise errors.UnexpectedStatus(response.status_code, response.content)
5151
else:
5252
return None
5353

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3838
if response.status_code == HTTPStatus.OK:
3939
return None
4040
if client.raise_on_unexpected_status:
41-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
41+
raise errors.UnexpectedStatus(response.status_code, response.content)
4242
else:
4343
return None
4444

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3838
if response.status_code == HTTPStatus.OK:
3939
return None
4040
if client.raise_on_unexpected_status:
41-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
41+
raise errors.UnexpectedStatus(response.status_code, response.content)
4242
else:
4343
return None
4444

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
4646
if response.status_code == HTTPStatus.OK:
4747
return None
4848
if client.raise_on_unexpected_status:
49-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
49+
raise errors.UnexpectedStatus(response.status_code, response.content)
5050
else:
5151
return None
5252

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3636
if response.status_code == HTTPStatus.OK:
3737
return None
3838
if client.raise_on_unexpected_status:
39-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
39+
raise errors.UnexpectedStatus(response.status_code, response.content)
4040
else:
4141
return None
4242

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def _parse_response(
3737

3838
return response_200
3939
if client.raise_on_unexpected_status:
40-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
40+
raise errors.UnexpectedStatus(response.status_code, response.content)
4141
else:
4242
return None
4343

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3030
if response.status_code == HTTPStatus.OK:
3131
return None
3232
if client.raise_on_unexpected_status:
33-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
33+
raise errors.UnexpectedStatus(response.status_code, response.content)
3434
else:
3535
return None
3636

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
4141

4242
return response_422
4343
if client.raise_on_unexpected_status:
44-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
44+
raise errors.UnexpectedStatus(response.status_code, response.content)
4545
else:
4646
return None
4747

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
108108

109109
return response_422
110110
if client.raise_on_unexpected_status:
111-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
111+
raise errors.UnexpectedStatus(response.status_code, response.content)
112112
else:
113113
return None
114114

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Lis
3232

3333
return response_200
3434
if client.raise_on_unexpected_status:
35-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
35+
raise errors.UnexpectedStatus(response.status_code, response.content)
3636
else:
3737
return None
3838

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Lis
3232

3333
return response_200
3434
if client.raise_on_unexpected_status:
35-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
35+
raise errors.UnexpectedStatus(response.status_code, response.content)
3636
else:
3737
return None
3838

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Lis
3232

3333
return response_200
3434
if client.raise_on_unexpected_status:
35-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
35+
raise errors.UnexpectedStatus(response.status_code, response.content)
3636
else:
3737
return None
3838

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Lis
3232

3333
return response_200
3434
if client.raise_on_unexpected_status:
35-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
35+
raise errors.UnexpectedStatus(response.status_code, response.content)
3636
else:
3737
return None
3838

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def _parse_response(
9191

9292
return response_423
9393
if client.raise_on_unexpected_status:
94-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
94+
raise errors.UnexpectedStatus(response.status_code, response.content)
9595
else:
9696
return None
9797

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
4646

4747
return response_422
4848
if client.raise_on_unexpected_status:
49-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
49+
raise errors.UnexpectedStatus(response.status_code, response.content)
5050
else:
5151
return None
5252

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
4141

4242
return response_422
4343
if client.raise_on_unexpected_status:
44-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
44+
raise errors.UnexpectedStatus(response.status_code, response.content)
4545
else:
4646
return None
4747

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3030
if response.status_code == HTTPStatus.OK:
3131
return None
3232
if client.raise_on_unexpected_status:
33-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
33+
raise errors.UnexpectedStatus(response.status_code, response.content)
3434
else:
3535
return None
3636

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Fil
3333

3434
return response_200
3535
if client.raise_on_unexpected_status:
36-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
36+
raise errors.UnexpectedStatus(response.status_code, response.content)
3737
else:
3838
return None
3939

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3333
if response.status_code == HTTPStatus.OK:
3434
return None
3535
if client.raise_on_unexpected_status:
36-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
36+
raise errors.UnexpectedStatus(response.status_code, response.content)
3737
else:
3838
return None
3939

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3333
if response.status_code == HTTPStatus.OK:
3434
return None
3535
if client.raise_on_unexpected_status:
36-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
36+
raise errors.UnexpectedStatus(response.status_code, response.content)
3737
else:
3838
return None
3939

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
4040

4141
return response_422
4242
if client.raise_on_unexpected_status:
43-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
43+
raise errors.UnexpectedStatus(response.status_code, response.content)
4444
else:
4545
return None
4646

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Tes
3838

3939
return response_200
4040
if client.raise_on_unexpected_status:
41-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
41+
raise errors.UnexpectedStatus(response.status_code, response.content)
4242
else:
4343
return None
4444

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3535
if response.status_code == HTTPStatus.UNAUTHORIZED:
3636
return None
3737
if client.raise_on_unexpected_status:
38-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
38+
raise errors.UnexpectedStatus(response.status_code, response.content)
3939
else:
4040
return None
4141

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3030
if response.status_code == HTTPStatus.OK:
3131
return None
3232
if client.raise_on_unexpected_status:
33-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
33+
raise errors.UnexpectedStatus(response.status_code, response.content)
3434
else:
3535
return None
3636

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
4141

4242
return response_422
4343
if client.raise_on_unexpected_status:
44-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
44+
raise errors.UnexpectedStatus(response.status_code, response.content)
4545
else:
4646
return None
4747

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Uni
4444

4545
return response_422
4646
if client.raise_on_unexpected_status:
47-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
47+
raise errors.UnexpectedStatus(response.status_code, response.content)
4848
else:
4949
return None
5050

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any
3737
if response.status_code == HTTPStatus.OK:
3838
return None
3939
if client.raise_on_unexpected_status:
40-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
40+
raise errors.UnexpectedStatus(response.status_code, response.content)
4141
else:
4242
return None
4343

end_to_end_tests/golden-record/my_test_api_client/errors.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
class UnexpectedStatus(Exception):
55
"""Raised by api functions when the response status an undocumented status and Client.raise_on_unexpected_status is True"""
66

7-
...
7+
def __init__(self, status_code: int, content: bytes):
8+
self.status_code = status_code
9+
self.content = content
10+
11+
super().__init__("Unexpected status: {status_code}")
812

913

1014
__all__ = ["UnexpectedStatus"]

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def _parse_response(
4545

4646
return response_400
4747
if client.raise_on_unexpected_status:
48-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
48+
raise errors.UnexpectedStatus(response.status_code, response.content)
4949
else:
5050
return None
5151

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def _parse_response(
5252

5353
return response_400
5454
if client.raise_on_unexpected_status:
55-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
55+
raise errors.UnexpectedStatus(response.status_code, response.content)
5656
else:
5757
return None
5858

integration-tests/integration_tests/errors.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
class UnexpectedStatus(Exception):
55
"""Raised by api functions when the response status an undocumented status and Client.raise_on_unexpected_status is True"""
66

7-
...
7+
def __init__(self, status_code: int, content: bytes):
8+
self.status_code = status_code
9+
self.content = content
10+
11+
super().__init__("Unexpected status: {status_code}")
812

913

1014
__all__ = ["UnexpectedStatus"]

openapi_python_client/templates/endpoint_module.py.jinja

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[{{
7474
{% endif %}
7575
{% endfor %}
7676
if client.raise_on_unexpected_status:
77-
raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
77+
raise errors.UnexpectedStatus(response.status_code, response.content)
7878
else:
7979
return None
8080

@@ -141,4 +141,3 @@ async def asyncio(
141141
{{ kwargs(endpoint) }}
142142
)).parsed
143143
{% endif %}
144-

openapi_python_client/templates/errors.py.jinja

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
class UnexpectedStatus(Exception):
44
""" Raised by api functions when the response status an undocumented status and Client.raise_on_unexpected_status is True """
5-
...
5+
6+
def __init__(self, status_code: int, content: bytes):
7+
self.status_code = status_code
8+
self.content = content
9+
10+
super().__init__("Unexpected status: {status_code}")
611

712
__all__ = ["UnexpectedStatus"]

0 commit comments

Comments
 (0)