mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-20 23:41:17 -05:00
make sure we convert strings to dates before we use them
fixes 500 on platform admin page
This commit is contained in:
@@ -66,9 +66,12 @@ def get_services():
|
||||
detailed = request.args.get('detailed') == 'True'
|
||||
user_id = request.args.get('user_id', None)
|
||||
include_from_test_key = request.args.get('include_from_test_key', 'True') != 'False'
|
||||
|
||||
# If start and end date are not set, we are expecting today's stats.
|
||||
start_date = request.args.get('start_date', datetime.utcnow().date())
|
||||
end_date = request.args.get('end_date', datetime.utcnow().date())
|
||||
today = str(datetime.utcnow().date())
|
||||
|
||||
start_date = datetime.strptime(request.args.get('start_date', today), '%Y-%m-%d').date()
|
||||
end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date()
|
||||
|
||||
if user_id:
|
||||
services = dao_fetch_all_services_by_user(user_id, only_active)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, date
|
||||
import json
|
||||
import uuid
|
||||
from unittest.mock import ANY
|
||||
|
||||
import pytest
|
||||
from flask import url_for
|
||||
@@ -1269,6 +1270,39 @@ def test_get_services_with_detailed_flag_excluding_from_test_key(notify_api, not
|
||||
}
|
||||
|
||||
|
||||
def test_get_services_with_detailed_flag_accepts_date_range(client, mocker):
|
||||
mock_get_detailed_services = mocker.patch('app.service.rest.get_detailed_services', return_value={})
|
||||
resp = client.get(
|
||||
url_for('service.get_services', detailed=True, start_date='2001-01-01', end_date='2002-02-02'),
|
||||
headers=[create_authorization_header()]
|
||||
)
|
||||
|
||||
mock_get_detailed_services.assert_called_once_with(
|
||||
start_date=date(2001, 1, 1),
|
||||
end_date=date(2002, 2, 2),
|
||||
only_active=ANY,
|
||||
include_from_test_key=ANY
|
||||
)
|
||||
assert resp.status_code == 200
|
||||
|
||||
|
||||
@freeze_time('2002-02-02')
|
||||
def test_get_services_with_detailed_flag_defaults_to_today(client, mocker):
|
||||
mock_get_detailed_services = mocker.patch('app.service.rest.get_detailed_services', return_value={})
|
||||
resp = client.get(
|
||||
url_for('service.get_services', detailed=True),
|
||||
headers=[create_authorization_header()]
|
||||
)
|
||||
|
||||
mock_get_detailed_services.assert_called_once_with(
|
||||
start_date=date(2002, 2, 2),
|
||||
end_date=date(2002, 2, 2),
|
||||
only_active=ANY,
|
||||
include_from_test_key=ANY
|
||||
)
|
||||
assert resp.status_code == 200
|
||||
|
||||
|
||||
def test_get_detailed_services_groups_by_service(notify_db, notify_db_session):
|
||||
from app.service.rest import get_detailed_services
|
||||
|
||||
|
||||
Reference in New Issue
Block a user