Skip to content

Commit a4b5f2d

Browse files
Coesmetic changes to avoid nesting exceptions
1 parent b948dd6 commit a4b5f2d

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

nocodb/infra/requests_client.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@ def __init__(self, auth_token: AuthToken, base_uri: str):
2121
self.__session.headers.update({"Content-Type": "application/json"})
2222
self.__api_info = NocoDBAPI(base_uri)
2323

24-
def _request(self, method, url, *args, **kwargs):
24+
def _request(self, method: str, url: str, *args, **kwargs):
2525
response = self.__session.request(method, url, *args, **kwargs)
26+
response_json = None
2627
try:
2728
response.raise_for_status()
29+
response_json = response.json()
30+
except requests.exceptions.JSONDecodeError:
31+
...
2832
except requests.exceptions.HTTPError as http_error:
29-
response_json = None
30-
try:
31-
response_json = response.json()
32-
except requests.exceptions.JSONDecodeError:
33-
...
3433
raise NocoDBAPIError(
3534
message=str(http_error),
3635
status_code=http_error.response.status_code,
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from unittest import mock
2+
3+
import pytest
4+
import requests
5+
6+
from .requests_client import NocoDBRequestsClient, requests as requests_lib
7+
from ..exceptions import NocoDBAPIError
8+
9+
10+
@mock.patch.object(requests_lib, "Session")
11+
def test_NocoDBAPIError_raised_on_bad_response(mock_requests_session):
12+
mock_session = mock.Mock()
13+
mock_resp = requests.models.Response()
14+
mock_resp.status_code = 401
15+
mock_requests_session.return_value = mock_session
16+
mock_session.request.return_value = mock_resp
17+
18+
client = NocoDBRequestsClient(mock.Mock(), "")
19+
with pytest.raises(NocoDBAPIError) as exc_info:
20+
client._request("GET", "/")
21+
22+
assert exc_info.value.status_code == 401

0 commit comments

Comments
 (0)