diff --git a/app/service/rest.py b/app/service/rest.py index 4416a5a39..0643d3108 100644 --- a/app/service/rest.py +++ b/app/service/rest.py @@ -12,6 +12,7 @@ from notifications_utils.timezones import convert_utc_to_bst from sqlalchemy.exc import IntegrityError from sqlalchemy.orm.exc import NoResultFound +from app import DATE_FORMAT from app.config import QueueNames from app.dao import fact_notification_status_dao, notifications_dao from app.dao.dao_utils import dao_rollback @@ -946,6 +947,8 @@ def check_if_reply_to_address_already_in_use(service_id, email_address): def returned_letter_summary(service_id): results = get_returned_letter_summary(service_id) - json_results = [{'returned_letter_count': x.returned_letter_count, 'reported_at': x.reported_at} for x in results] + json_results = [{'returned_letter_count': x.returned_letter_count, + 'reported_at': x.reported_at.strftime(DATE_FORMAT) + } for x in results] return jsonify(json_results) diff --git a/tests/app/dao/test_returned_letters_dao.py b/tests/app/dao/test_returned_letters_dao.py index bb0836be0..9c33988a4 100644 --- a/tests/app/dao/test_returned_letters_dao.py +++ b/tests/app/dao/test_returned_letters_dao.py @@ -50,7 +50,7 @@ def test_insert_or_update_returned_letters_updates(sample_letter_template): assert x.notification_id in [notification.id, history.id] -def test_insert_or_update_returned_letters_when_no_notification(sample_letter_template): +def test_insert_or_update_returned_letters_when_no_notification(notify_db_session): insert_or_update_returned_letters(['ref1']) assert ReturnedLetter.query.count() == 0 @@ -104,6 +104,7 @@ def test_get_returned_letter_summary_orders_by_reported_at(sample_service): create_returned_letter(sample_service, reported_at=now) create_returned_letter(sample_service, reported_at=last_month) create_returned_letter(sample_service, reported_at=last_month) + create_returned_letter() # returned letter for a different service results = get_returned_letter_summary(sample_service.id) diff --git a/tests/app/db.py b/tests/app/db.py index ac23654c2..e95f79b77 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -944,7 +944,7 @@ def set_up_usage_data(start_date): return org, org_3, service, service_3, service_4, service_sms_only -def create_returned_letter(service, reported_at=None): +def create_returned_letter(service=None, reported_at=None): if not service: service = create_service(service_name='a - with sms and letter') template = create_template(service=service, template_type=LETTER_TYPE) diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 316819da0..ec736abd1 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -3374,10 +3374,14 @@ def test_get_monthly_notification_data_by_service(mocker, admin_request): assert response == [] +@freeze_time('2019-12-11 13:30') def test_get_returned_letter_summary(admin_request, sample_service): - create_returned_letter(sample_service, reported_at=datetime.utcnow()) create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=3)) + create_returned_letter(sample_service, reported_at=datetime.utcnow()) + create_returned_letter(sample_service, reported_at=datetime.utcnow()) response = admin_request.get('service.returned_letter_summary', service_id=sample_service.id) assert len(response) == 2 + assert response[0] == {'returned_letter_count': 2, 'reported_at': '2019-12-11'} + assert response[1] == {'returned_letter_count': 1, 'reported_at': '2019-12-08'}