Skip to content

Commit be1f859

Browse files
authored
Merge pull request #106 from dknowles2/auth-error
Only raise NotAuthorizedError from boto-level errors
2 parents fdeb262 + 9608be4 commit be1f859

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

pyschlage/auth.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,6 @@ def wrapper(*args, **kwargs):
6464
message = resp.json().get("message", resp.reason)
6565
except requests.JSONDecodeError:
6666
message = resp.reason
67-
68-
if resp.status_code == 401:
69-
raise NotAuthorizedError(message) from ex
7067
raise UnknownError(message) from ex
7168

7269
return wrapper

tests/test_auth.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from unittest import mock
22

3+
from botocore.exceptions import ClientError
34
import pytest
45
import requests
56

@@ -46,16 +47,19 @@ def test_request(mock_cognito, mock_srp_auth, mock_request):
4647
def test_request_not_authorized(mock_cognito, mock_srp_auth, mock_request):
4748
url = "https://api.allegion.yonomi.cloud/v1/foo/bar"
4849
auth = _auth.Auth("__username__", "__password__")
49-
mock_resp = mock.create_autospec(requests.Response)
50-
mock_resp.raise_for_status.side_effect = requests.HTTPError(
51-
f"401 Client Error: Unauthorized for url: {url}"
50+
mock_request.side_effect = ClientError(
51+
{
52+
"Error": {
53+
"Code": "NotAuthorizedException",
54+
"Message": f"Unauthorized for url: {url}",
55+
}
56+
},
57+
"foo-op",
5258
)
53-
mock_resp.status_code = 401
54-
mock_resp.reason = "Unauthorized"
55-
mock_resp.json.side_effect = lambda: {"message": "Unauthorized"}
56-
mock_request.return_value = mock_resp
5759

58-
with pytest.raises(pyschlage.exceptions.NotAuthorizedError):
60+
with pytest.raises(
61+
pyschlage.exceptions.NotAuthorizedError, match=f"Unauthorized for url: {url}"
62+
):
5963
auth.request("get", "/foo/bar", baz="bam")
6064

6165
mock_request.assert_called_once_with(

0 commit comments

Comments
 (0)