Skip to content

Commit bf9608f

Browse files
authored
Fix error handling issues (#95)
* Fix error handling issues * Revert version bump * Add test for missing error and error_description * Format file * Fix tests for error parameters
1 parent 722a468 commit bf9608f

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

tests/utils/test_requests.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,30 @@ def test_bad_request_exceptions_include_expected_request_data(
7474

7575
try:
7676
request_helper.request("bad_place")
77-
except ServerException as ex:
78-
assert ex.request_id == request_id
79-
assert ex.error == error
80-
assert ex.error_description == error_description
77+
except BadRequestException as ex:
78+
assert (
79+
str(ex)
80+
== "(message=No message, request_id=request-123, error=example_error, error_description=Example error description)"
81+
)
82+
except Exception as ex:
83+
assert ex.__class__ == BadRequestException
84+
85+
def test_bad_request_exceptions_exclude_expected_request_data(
86+
self, mock_request_method
87+
):
88+
request_helper = RequestHelper()
89+
90+
request_id = "request-123"
91+
92+
mock_request_method(
93+
"get", {"foo": "bar"}, 400, headers={"X-Request-ID": request_id},
94+
)
95+
96+
try:
97+
request_helper.request("bad_place")
98+
except BadRequestException as ex:
99+
assert str(ex) == "(message=No message, request_id=request-123)"
81100
except Exception as ex:
82-
# This'll fail for sure here but... just using the nice error that'd come up
83101
assert ex.__class__ == BadRequestException
84102

85103
def test_request_bad_body_raises_expected_exception_with_request_data(

workos/exceptions.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@ class BaseRequestException(Exception):
77
def __init__(self, response, message=None, error=None, error_description=None):
88
super(BaseRequestException, self).__init__(message)
99

10+
self.message = message
1011
self.error = error
12+
self.error_description = error_description
1113
self.extract_and_set_response_related_data(response)
1214

13-
if message is not None:
14-
self.message = message
15-
1615
def extract_and_set_response_related_data(self, response):
1716
self.response = response
1817

0 commit comments

Comments
 (0)