Skip to content

Commit dede2b0

Browse files
committed
VED-79: code review - timeouts, error class
1 parent 15b3fd2 commit dede2b0

File tree

5 files changed

+10
-10
lines changed

5 files changed

+10
-10
lines changed

mns_subscription/models/errors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def to_operation_outcome() -> dict:
7878

7979

8080
@dataclass
81-
class ResourceFoundError(RuntimeError):
81+
class ResourceNotFoundError(RuntimeError):
8282
"""Return this error when the requested resource does not exist or not complete"""
8383

8484
response: None

mns_subscription/src/mns_service.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from authentication import AppRestrictedAuth
77
from models.errors import (
88
UnhandledResponseError,
9-
ResourceFoundError,
9+
ResourceNotFoundError,
1010
UnauthorizedError,
1111
ServerError,
1212
BadRequestError,
@@ -46,14 +46,14 @@ def __init__(self, authenticator: AppRestrictedAuth):
4646

4747
def subscribe_notification(self) -> dict | None:
4848

49-
response = requests.post(MNS_URL, headers=self.request_headers, data=json.dumps(self.subscription_payload))
49+
response = requests.post(MNS_URL, headers=self.request_headers, data=json.dumps(self.subscription_payload),timeout=15)
5050
if response.status_code in (200, 201):
5151
return response.json()
5252
else:
5353
MnsService.handle_response(response)
5454

5555
def get_subscription(self) -> dict | None:
56-
response = requests.get(MNS_URL, headers=self.request_headers)
56+
response = requests.get(MNS_URL, headers=self.request_headers, timeout=10)
5757
logging.info(f"GET {MNS_URL}")
5858
logging.debug(f"Headers: {self.request_headers}")
5959

@@ -91,7 +91,7 @@ def check_subscription(self) -> dict:
9191
def delete_subscription(self, subscription_id: str) -> bool:
9292
"""Delete the subscription by ID."""
9393
url = f"{MNS_URL}/{subscription_id}"
94-
response = requests.delete(url, headers=self.request_headers)
94+
response = requests.delete(url, headers=self.request_headers, timeout=10)
9595
if response.status_code in (200, 204):
9696
logging.info(f"Deleted subscription {subscription_id}")
9797
return True
@@ -120,7 +120,7 @@ def handle_response(response):
120120
400: (BadRequestError, "Bad request: Resource type or parameters incorrect"),
121121
403: (UnauthorizedError, "You don't have the right permissions for this request"),
122122
500: (ServerError, "Internal Server Error"),
123-
404: (ResourceFoundError, "Subscription or Resource not found"),
123+
404: (ResourceNotFoundError, "Subscription or Resource not found"),
124124
409: (ConflictError, "SQS Queue Already Subscribed, can't re-subscribe")
125125
}
126126
exception_class, error_message = error_mapping.get(

mns_subscription/tests/test_mns_service.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
TokenValidationError,
1010
BadRequestError,
1111
UnauthorizedError,
12-
ResourceFoundError)
12+
ResourceNotFoundError)
1313

1414

1515
SQS_ARN = "arn:aws:sqs:eu-west-2:123456789012:my-queue"
@@ -60,7 +60,7 @@ def test_not_found_subscription(self, mock_post):
6060

6161
service = MnsService(self.authenticator)
6262

63-
with self.assertRaises(ResourceFoundError) as context:
63+
with self.assertRaises(ResourceNotFoundError) as context:
6464
service.subscribe_notification()
6565
self.assertIn("Subscription or Resource not found", str(context.exception))
6666

@@ -191,7 +191,7 @@ def test_delete_subscription_404(self, mock_delete):
191191
mock_delete.return_value = mock_response
192192

193193
service = MnsService(self.authenticator)
194-
with self.assertRaises(ResourceFoundError):
194+
with self.assertRaises(ResourceNotFoundError):
195195
service.delete_subscription("sub-id-123")
196196

197197
@patch("mns_service.requests.delete")
@@ -263,7 +263,7 @@ def mock_response(self, status_code, json_data=None):
263263

264264
def test_404_resource_found_error(self):
265265
resp = self.mock_response(404, {"resource": "Not found"})
266-
with self.assertRaises(ResourceFoundError) as context:
266+
with self.assertRaises(ResourceNotFoundError) as context:
267267
MnsService.handle_response(resp)
268268
self.assertIn("Subscription or Resource not found", str(context.exception))
269269
self.assertEqual(context.exception.message, "Subscription or Resource not found")
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)