mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-09 11:09:48 -04:00
Fix flake8-bugbear B042 violations in exception classes
This commit is contained in:
@@ -29,6 +29,7 @@ GENERAL_TOKEN_ERROR_MESSAGE = TOKEN_MESSAGE_ONE + TOKEN_MESSAGE_TWO
|
|||||||
|
|
||||||
class AuthError(Exception):
|
class AuthError(Exception):
|
||||||
def __init__(self, message, code, service_id=None, api_key_id=None):
|
def __init__(self, message, code, service_id=None, api_key_id=None):
|
||||||
|
super().__init__(message, code, service_id, api_key_id)
|
||||||
self.message = {"token": [message]}
|
self.message = {"token": [message]}
|
||||||
self.short_message = message
|
self.short_message = message
|
||||||
self.code = code
|
self.code = code
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from flask import current_app
|
|||||||
|
|
||||||
class DocumentDownloadError(Exception):
|
class DocumentDownloadError(Exception):
|
||||||
def __init__(self, message, status_code):
|
def __init__(self, message, status_code):
|
||||||
|
super().__init__(message, status_code)
|
||||||
self.message = message
|
self.message = message
|
||||||
self.status_code = status_code
|
self.status_code = status_code
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class SmsClientResponseException(ClientException):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, message):
|
def __init__(self, message):
|
||||||
|
super().__init__(message)
|
||||||
self.message = message
|
self.message = message
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|||||||
@@ -699,7 +699,9 @@ def query_organization_sms_usage_for_year(organization_id, year):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def fetch_usage_year_for_organization(organization_id, year, include_all_services=False):
|
def fetch_usage_year_for_organization(
|
||||||
|
organization_id, year, include_all_services=False
|
||||||
|
):
|
||||||
year_start, year_end = get_calendar_year_dates(year)
|
year_start, year_end = get_calendar_year_dates(year)
|
||||||
today = utc_now().date()
|
today = utc_now().date()
|
||||||
|
|
||||||
|
|||||||
@@ -351,10 +351,7 @@ def dao_get_notification_counts_for_organization(service_ids, current_year):
|
|||||||
end_date = datetime(current_year + 1, 6, 16)
|
end_date = datetime(current_year + 1, 6, 16)
|
||||||
|
|
||||||
stmt1 = (
|
stmt1 = (
|
||||||
select(
|
select(Notification.service_id, func.count().label("count"))
|
||||||
Notification.service_id,
|
|
||||||
func.count().label("count")
|
|
||||||
)
|
|
||||||
.where(
|
.where(
|
||||||
Notification.service_id.in_(service_ids),
|
Notification.service_id.in_(service_ids),
|
||||||
Notification.status
|
Notification.status
|
||||||
@@ -370,10 +367,7 @@ def dao_get_notification_counts_for_organization(service_ids, current_year):
|
|||||||
)
|
)
|
||||||
|
|
||||||
stmt2 = (
|
stmt2 = (
|
||||||
select(
|
select(NotificationHistory.service_id, func.count().label("count"))
|
||||||
NotificationHistory.service_id,
|
|
||||||
func.count().label("count")
|
|
||||||
)
|
|
||||||
.where(
|
.where(
|
||||||
NotificationHistory.service_id.in_(service_ids),
|
NotificationHistory.service_id.in_(service_ids),
|
||||||
NotificationHistory.status
|
NotificationHistory.status
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class InvalidRequest(Exception):
|
|||||||
fields = []
|
fields = []
|
||||||
|
|
||||||
def __init__(self, message, status_code):
|
def __init__(self, message, status_code):
|
||||||
super().__init__()
|
super().__init__(message, status_code)
|
||||||
self.message = message
|
self.message = message
|
||||||
self.status_code = status_code
|
self.status_code = status_code
|
||||||
|
|
||||||
@@ -115,16 +115,20 @@ class TooManyRequestsError(InvalidRequest):
|
|||||||
status_code = 429
|
status_code = 429
|
||||||
message_template = "Exceeded send limits ({}) for today"
|
message_template = "Exceeded send limits ({}) for today"
|
||||||
|
|
||||||
def __init__(self, sending_limit):
|
def __init__(self, sending_limit): # noqa: B042
|
||||||
self.message = self.message_template.format(sending_limit)
|
self.message = self.message_template.format(sending_limit)
|
||||||
|
self.sending_limit = sending_limit
|
||||||
|
super().__init__(self.message, self.status_code)
|
||||||
|
|
||||||
|
|
||||||
class TotalRequestsError(InvalidRequest):
|
class TotalRequestsError(InvalidRequest):
|
||||||
status_code = 429
|
status_code = 429
|
||||||
message_template = "Exceeded total application limits ({}) for today"
|
message_template = "Exceeded total application limits ({}) for today"
|
||||||
|
|
||||||
def __init__(self, sending_limit):
|
def __init__(self, sending_limit): # noqa: B042
|
||||||
self.message = self.message_template.format(sending_limit)
|
self.message = self.message_template.format(sending_limit)
|
||||||
|
self.sending_limit = sending_limit
|
||||||
|
super().__init__(self.message, self.status_code)
|
||||||
|
|
||||||
|
|
||||||
class RateLimitError(InvalidRequest):
|
class RateLimitError(InvalidRequest):
|
||||||
@@ -133,7 +137,7 @@ class RateLimitError(InvalidRequest):
|
|||||||
"Exceeded rate limit for key type {} of {} requests per {} seconds"
|
"Exceeded rate limit for key type {} of {} requests per {} seconds"
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, sending_limit, interval, key_type):
|
def __init__(self, sending_limit, interval, key_type): # noqa: B042
|
||||||
# normal keys are spoken of as "live" in the documentation
|
# normal keys are spoken of as "live" in the documentation
|
||||||
# so using this in the error messaging
|
# so using this in the error messaging
|
||||||
if key_type == KeyType.NORMAL:
|
if key_type == KeyType.NORMAL:
|
||||||
@@ -142,12 +146,17 @@ class RateLimitError(InvalidRequest):
|
|||||||
self.message = self.message_template.format(
|
self.message = self.message_template.format(
|
||||||
key_type.upper(), sending_limit, interval
|
key_type.upper(), sending_limit, interval
|
||||||
)
|
)
|
||||||
|
self.sending_limit = sending_limit
|
||||||
|
self.interval = interval
|
||||||
|
self.key_type = key_type
|
||||||
|
super().__init__(self.message, self.status_code)
|
||||||
|
|
||||||
|
|
||||||
class BadRequestError(InvalidRequest):
|
class BadRequestError(InvalidRequest):
|
||||||
message = "An error occurred"
|
message = "An error occurred"
|
||||||
|
|
||||||
def __init__(self, fields=None, message=None, status_code=400):
|
def __init__(self, fields=None, message=None, status_code=400): # noqa: B042
|
||||||
self.status_code = status_code
|
|
||||||
self.fields = fields or []
|
self.fields = fields or []
|
||||||
self.message = message if message else self.message
|
self.message = message if message else self.message
|
||||||
|
self.status_code = status_code
|
||||||
|
super().__init__(self.message, self.status_code)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
class DVLAException(Exception):
|
class DVLAException(Exception):
|
||||||
def __init__(self, message):
|
def __init__(self, message):
|
||||||
|
super().__init__(message)
|
||||||
self.message = message
|
self.message = message
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -153,7 +153,9 @@ def get_organization_services_usage(organization_id):
|
|||||||
return jsonify(result="error", message="No valid year provided"), 400
|
return jsonify(result="error", message="No valid year provided"), 400
|
||||||
include_all = request.args.get("include_all_services", "false").lower() == "true"
|
include_all = request.args.get("include_all_services", "false").lower() == "true"
|
||||||
|
|
||||||
services = fetch_usage_year_for_organization(organization_id, year, include_all_services=include_all)
|
services = fetch_usage_year_for_organization(
|
||||||
|
organization_id, year, include_all_services=include_all
|
||||||
|
)
|
||||||
list_services = services.values()
|
list_services = services.values()
|
||||||
sorted_services = sorted(
|
sorted_services = sorted(
|
||||||
list_services, key=lambda s: (-s["active"], s["service_name"].lower())
|
list_services, key=lambda s: (-s["active"], s["service_name"].lower())
|
||||||
@@ -266,7 +268,9 @@ def send_notifications_on_mou_signed(organization_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@organization_blueprint.route("/<uuid:organization_id>/message-allowance", methods=["GET"])
|
@organization_blueprint.route(
|
||||||
|
"/<uuid:organization_id>/message-allowance", methods=["GET"]
|
||||||
|
)
|
||||||
def get_organization_message_allowance(organization_id):
|
def get_organization_message_allowance(organization_id):
|
||||||
|
|
||||||
check_suspicious_id(organization_id)
|
check_suspicious_id(organization_id)
|
||||||
@@ -276,11 +280,16 @@ def get_organization_message_allowance(organization_id):
|
|||||||
services = dao_get_organization_services(organization_id)
|
services = dao_get_organization_services(organization_id)
|
||||||
|
|
||||||
if not services:
|
if not services:
|
||||||
return jsonify({
|
return (
|
||||||
"messages_sent": 0,
|
jsonify(
|
||||||
"messages_remaining": 0,
|
{
|
||||||
"total_message_limit": 0,
|
"messages_sent": 0,
|
||||||
}), 200
|
"messages_remaining": 0,
|
||||||
|
"total_message_limit": 0,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
200,
|
||||||
|
)
|
||||||
|
|
||||||
current_year = datetime.now(tz=ZoneInfo("UTC")).year
|
current_year = datetime.now(tz=ZoneInfo("UTC")).year
|
||||||
service_ids = [service.id for service in services]
|
service_ids = [service.id for service in services]
|
||||||
@@ -293,8 +302,13 @@ def get_organization_message_allowance(organization_id):
|
|||||||
total_message_limit = sum(s.total_message_limit for s in services)
|
total_message_limit = sum(s.total_message_limit for s in services)
|
||||||
total_messages_remaining = total_message_limit - total_messages_sent
|
total_messages_remaining = total_message_limit - total_messages_sent
|
||||||
|
|
||||||
return jsonify({
|
return (
|
||||||
"messages_sent": total_messages_sent,
|
jsonify(
|
||||||
"messages_remaining": total_messages_remaining,
|
{
|
||||||
"total_message_limit": total_message_limit,
|
"messages_sent": total_messages_sent,
|
||||||
}), 200
|
"messages_remaining": total_messages_remaining,
|
||||||
|
"total_message_limit": total_message_limit,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
200,
|
||||||
|
)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class TokenError(Exception):
|
|||||||
else TOKEN_ERROR_DEFAULT_ERROR_MESSAGE
|
else TOKEN_ERROR_DEFAULT_ERROR_MESSAGE
|
||||||
)
|
)
|
||||||
self.token = token
|
self.token = token
|
||||||
|
super().__init__(self.message, token)
|
||||||
|
|
||||||
|
|
||||||
class TokenExpiredError(TokenError):
|
class TokenExpiredError(TokenError):
|
||||||
@@ -48,6 +49,7 @@ class APIError(Exception):
|
|||||||
def __init__(self, response: Response = None, message: str = None):
|
def __init__(self, response: Response = None, message: str = None):
|
||||||
self.response = response
|
self.response = response
|
||||||
self._message = message
|
self._message = message
|
||||||
|
super().__init__(response, message)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.status_code} - {self.message}"
|
return f"{self.status_code} - {self.message}"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from flask import current_app
|
|||||||
|
|
||||||
class AntivirusError(Exception):
|
class AntivirusError(Exception):
|
||||||
def __init__(self, message=None, status_code=None):
|
def __init__(self, message=None, status_code=None):
|
||||||
|
super().__init__(message, status_code)
|
||||||
self.message = message
|
self.message = message
|
||||||
self.status_code = status_code
|
self.status_code = status_code
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from flask import current_app
|
|||||||
|
|
||||||
class ZendeskError(Exception):
|
class ZendeskError(Exception):
|
||||||
def __init__(self, response):
|
def __init__(self, response):
|
||||||
|
super().__init__(str(response))
|
||||||
self.response = response
|
self.response = response
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -963,7 +963,9 @@ def test_get_organization_message_allowance(admin_request, sample_organization,
|
|||||||
mock_get_counts.assert_called_once_with([service_1.id, service_2.id], 2025)
|
mock_get_counts.assert_called_once_with([service_1.id, service_2.id], 2025)
|
||||||
|
|
||||||
|
|
||||||
def test_get_organization_message_allowance_no_services(admin_request, sample_organization):
|
def test_get_organization_message_allowance_no_services(
|
||||||
|
admin_request, sample_organization
|
||||||
|
):
|
||||||
response = admin_request.get(
|
response = admin_request.get(
|
||||||
"organization.get_organization_message_allowance",
|
"organization.get_organization_message_allowance",
|
||||||
organization_id=sample_organization.id,
|
organization_id=sample_organization.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user