add tests

This commit is contained in:
Kenneth Kehl
2025-01-28 12:11:37 -08:00
parent c52cbe8456
commit efe9024442
3 changed files with 37 additions and 4 deletions

View File

@@ -305,7 +305,7 @@
"filename": "tests/app/service/test_rest.py", "filename": "tests/app/service/test_rest.py",
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8", "hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"is_verified": false, "is_verified": false,
"line_number": 1285, "line_number": 1286,
"is_secret": false "is_secret": false
} }
], ],
@@ -384,5 +384,5 @@
} }
] ]
}, },
"generated_at": "2025-01-23T21:46:22Z" "generated_at": "2025-01-28T20:11:33Z"
} }

View File

@@ -1,3 +1,6 @@
from datetime import datetime
from zoneinfo import ZoneInfo
from flask import current_app from flask import current_app
from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.orm.exc import NoResultFound
@@ -31,9 +34,17 @@ def check_service_over_total_message_limit(key_type, service):
# TODO # TODO
# For now we are using calendar year # For now we are using calendar year
# Switch to using service agreement dates when the Agreement model is ready # Switch to using service agreement dates when the Agreement model is ready
# If the service stat has never been set before, compute the remaining seconds for 2025
# and set it (all services) to expire on 12/31/2025.
if service_stats is None: if service_stats is None:
now_et = datetime.now(ZoneInfo("America/New_York"))
target_time = datetime(
2025, 12, 31, 23, 59, 59, tzinfo=ZoneInfo("America/New_York")
)
time_difference = target_time - now_et
seconds_difference = int(time_difference.total_seconds())
service_stats = 0 service_stats = 0
redis_store.set(cache_key, service_stats, ex=365 * 24 * 60 * 60) redis_store.set(cache_key, service_stats, ex=seconds_difference)
return service_stats return service_stats
# TODO CHANGE THIS BACK TO SERVICE TOTAL MESSAGE LIMIT # TODO CHANGE THIS BACK TO SERVICE TOTAL MESSAGE LIMIT
if int(service_stats) >= 5: if int(service_stats) >= 5:

View File

@@ -1,7 +1,7 @@
import json import json
import uuid import uuid
from datetime import date, datetime, timedelta from datetime import date, datetime, timedelta
from unittest.mock import ANY from unittest.mock import ANY, MagicMock
import pytest import pytest
from flask import current_app, url_for from flask import current_app, url_for
@@ -38,6 +38,7 @@ from app.models import (
ServiceSmsSender, ServiceSmsSender,
User, User,
) )
from app.service.rest import check_request_args
from app.utils import utc_now from app.utils import utc_now
from tests import create_admin_authorization_header from tests import create_admin_authorization_header
from tests.app.db import ( from tests.app.db import (
@@ -3712,3 +3713,24 @@ def test_get_service_notification_statistics_by_day(
assert mock_get_service_statistics_for_specific_days.assert_called_once assert mock_get_service_statistics_for_specific_days.assert_called_once
assert response == mock_data assert response == mock_data
def test_valid_request():
request = MagicMock()
request.args = {
"service_id": "123",
"name": "Test Name",
"email_from": "test@example.com",
}
result = check_request_args(request)
assert result == ("123", "Test Name", "test@example.com")
def test_missing_service_id():
request = MagicMock()
request.args = {"name": "Test Name", "email_from": "test@example.com"}
try:
check_request_args(request)
except Exception as e:
assert e.status_code == 400
assert {"service_id": ["Can't be empty"] in e.errors}