Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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,

‎nocodb/infra/requests_client_test.py

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)

AltStyle によって変換されたページ (->オリジナル) /