Merge pull request #2737 from alphagov/returned-letter-statistics

Add an endpoint to return returned letter stats
This commit is contained in:
Chris Hill-Scott
2020-03-05 16:11:09 +00:00
committed by GitHub
4 changed files with 176 additions and 3 deletions

View File

@@ -3382,6 +3382,64 @@ 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_statistics(admin_request, sample_service):
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=3))
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=2))
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=1))
response = admin_request.get('service.returned_letter_statistics', service_id=sample_service.id)
assert response == {
'returned_letter_count': 3,
'most_recent_report': '2019-12-10 00:00:00.000000'
}
@freeze_time('2019-12-11 13:30')
def test_get_returned_letter_statistics_with_old_returned_letters(
mocker,
admin_request,
sample_service,
):
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=8))
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=800))
count_mock = mocker.patch(
'app.service.rest.fetch_recent_returned_letter_count',
)
assert admin_request.get(
'service.returned_letter_statistics',
service_id=sample_service.id,
) == {
'returned_letter_count': 0,
'most_recent_report': '2019-12-03 00:00:00.000000',
}
assert count_mock.called is False
def test_get_returned_letter_statistics_with_no_returned_letters(
mocker,
admin_request,
sample_service,
):
count_mock = mocker.patch(
'app.service.rest.fetch_recent_returned_letter_count',
)
assert admin_request.get(
'service.returned_letter_statistics',
service_id=sample_service.id,
) == {
'returned_letter_count': 0,
'most_recent_report': None,
}
assert count_mock.called is False
@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() - timedelta(days=3))