mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -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'
|
detailed = request.args.get('detailed') == 'True'
|
||||||
user_id = request.args.get('user_id', None)
|
user_id = request.args.get('user_id', None)
|
||||||
include_from_test_key = request.args.get('include_from_test_key', 'True') != 'False'
|
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.
|
# If start and end date are not set, we are expecting today's stats.
|
||||||
start_date = request.args.get('start_date', datetime.utcnow().date())
|
today = str(datetime.utcnow().date())
|
||||||
end_date = request.args.get('end_date', 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:
|
if user_id:
|
||||||
services = dao_fetch_all_services_by_user(user_id, only_active)
|
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 json
|
||||||
import uuid
|
import uuid
|
||||||
|
from unittest.mock import ANY
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import url_for
|
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):
|
def test_get_detailed_services_groups_by_service(notify_db, notify_db_session):
|
||||||
from app.service.rest import get_detailed_services
|
from app.service.rest import get_detailed_services
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user