Merge pull request #2934 from alphagov/live-services-csv

Add Live services and Performance platform csv reports
This commit is contained in:
Pea (Malgorzata Tyczynska)
2019-05-01 16:20:53 +01:00
committed by GitHub
7 changed files with 195 additions and 1 deletions

View File

@@ -927,3 +927,84 @@ def test_clear_cache_requires_option(client_request, platform_admin_user, mocker
assert normalize_spaces(page.find('span', class_='error-message').text) == 'Not a valid choice'
assert not redis.delete_cache_keys_by_pattern.called
def test_reports_page(
client,
platform_admin_user,
mocker
):
mock_get_user(mocker, user=platform_admin_user)
client.login(platform_admin_user)
response = client.get(url_for('main.platform_admin_reports'))
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.find(
'a', text="Download live services csv report"
).attrs['href'] == '/platform-admin/reports/live-services.csv'
assert page.find(
'a', text="Download performance platform csv report"
).attrs['href'] == '/platform-admin/reports/performance-platform.csv'
def test_get_live_services_report(client, platform_admin_user, mocker):
mock_get_user(mocker, user=platform_admin_user)
client.login(platform_admin_user)
mocker.patch(
'app.service_api_client.get_live_services_data',
return_value={'data': [
{'service_id': 1, 'service_name': 'jessie the oak tree', 'organisation_name': 'Forest',
'consent_to_research': True, 'contact_name': 'Forest fairy',
'contact_email': 'forest.fairy@digital.cabinet-office.gov.uk', 'contact_mobile': '+447700900986',
'live_date': 'Sat, 29 Mar 2014 00:00:00 GMT', 'sms_volume_intent': 100, 'email_volume_intent': 50,
'letter_volume_intent': 20, 'sms_totals': 300, 'email_totals': 1200, 'letter_totals': 0},
{'service_id': 2, 'service_name': 'james the pine tree', 'organisation_name': 'Forest',
'consent_to_research': None, 'contact_name': None,
'contact_email': None, 'contact_mobile': None,
'live_date': 'Tue, 15 Mar 2016 00:00:00 GMT', 'sms_volume_intent': None, 'email_volume_intent': 60,
'letter_volume_intent': 0, 'sms_totals': 0, 'email_totals': 0, 'letter_totals': 0},
]}
)
response = client.get(url_for('main.live_services_csv'))
assert response.status_code == 200
report = response.get_data(as_text=True)
assert report.strip() == (
'Service ID,Organisation,Service name,Consent to research,Main contact,Contact email,Contact mobile,'
+ 'Live date,SMS volume intent,Email volume intent,Letter volume intent,SMS sent this year,'
+ 'Emails sent this year,Letters sent this year\r\n1,Forest,jessie the oak tree,True,Forest fairy,'
+ 'forest.fairy@digital.cabinet-office.gov.uk,+447700900986,29-03-2014,100,50,20,300,1200,0\r\n2,Forest,'
+ 'james the pine tree,,,,,15-03-2016,,60,0,0,0,0'
)
def test_get_performance_platform_report(client, platform_admin_user, mocker):
mock_get_user(mocker, user=platform_admin_user)
client.login(platform_admin_user)
mocker.patch(
'app.service_api_client.get_live_services_data',
return_value={'data': [
{'service_id': 1, 'service_name': 'jessie the oak tree', 'organisation_name': 'Forest',
'consent_to_research': True, 'contact_name': 'Forest fairy',
'contact_email': 'forest.fairy@digital.cabinet-office.gov.uk', 'contact_mobile': '+447700900986',
'live_date': 'Sat, 29 Mar 2014 00:00:00 GMT', 'sms_volume_intent': 100, 'email_volume_intent': 50,
'letter_volume_intent': 20, 'sms_totals': 300, 'email_totals': 1200, 'letter_totals': 0},
{'service_id': 2, 'service_name': 'james the pine tree', 'organisation_name': 'Forest',
'consent_to_research': None, 'contact_name': None,
'contact_email': None, 'contact_mobile': None,
'live_date': 'Tue, 15 Mar 2016 00:00:00 GMT', 'sms_volume_intent': None, 'email_volume_intent': 60,
'letter_volume_intent': 0, 'sms_totals': 0, 'email_totals': 0, 'letter_totals': 0},
]}
)
response = client.get(url_for('main.performance_platform_csv'))
assert response.status_code == 200
report = response.get_data(as_text=True)
assert report.strip() == (
'service_id,agency,service_name,_timestamp,service,count'
+ '\r\n1,Forest,jessie the oak tree,2014-03-29T00:00:00Z,govuk-notify,1'
+ '\r\n2,Forest,james the pine tree,2016-03-15T00:00:00Z,govuk-notify,1'
)