Merge pull request #2075 from alphagov/statistics-endpoint

use service statistics endpoint instead of detailed service
This commit is contained in:
Leo Hemsted
2018-05-09 14:46:56 +01:00
committed by GitHub
11 changed files with 93 additions and 136 deletions

View File

@@ -371,7 +371,7 @@ def test_new_invited_user_verifies_and_added_to_service(
mock_get_jobs,
mock_has_permissions,
mock_get_users_by_service,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_create_event,
mocker,

View File

@@ -63,7 +63,7 @@ def test_can_show_notifications(
logged_in_client,
service_one,
mock_get_notifications,
mock_get_detailed_service,
mock_get_service_statistics,
message_type,
page_title,
status_argument,
@@ -140,7 +140,7 @@ def test_letters_with_status_virus_scan_failed_shows_a_failure_description(
active_user_with_permissions,
logged_in_client,
service_one,
mock_get_detailed_service,
mock_get_service_statistics,
):
mock_get_notifications(
mocker,
@@ -169,7 +169,7 @@ def test_should_not_show_preview_link_for_precompiled_letters_in_virus_states(
active_user_with_permissions,
logged_in_client,
service_one,
mock_get_detailed_service,
mock_get_service_statistics,
letter_status,
):
mock_get_notifications(
@@ -191,7 +191,7 @@ def test_should_not_show_preview_link_for_precompiled_letters_in_virus_states(
def test_shows_message_when_no_notifications(
client_request,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_notifications_with_no_notifications,
):
@@ -242,7 +242,7 @@ def test_shows_message_when_no_notifications(
def test_search_recipient_form(
logged_in_client,
mock_get_notifications,
mock_get_detailed_service,
mock_get_service_statistics,
initial_query_arguments,
form_post_data,
expected_search_box_contents,
@@ -280,7 +280,7 @@ def test_should_show_notifications_for_a_service_with_next_previous(
service_one,
active_user_with_permissions,
mock_get_notifications_with_previous_next,
mock_get_detailed_service,
mock_get_service_statistics,
mocker,
):
response = logged_in_client.get(url_for(
@@ -360,7 +360,7 @@ def test_html_contains_notification_id(
service_one,
active_user_with_permissions,
mock_get_notifications,
mock_get_detailed_service,
mock_get_service_statistics,
mocker,
):
response = logged_in_client.get(url_for(
@@ -380,7 +380,7 @@ def test_redacts_templates_that_should_be_redacted(
client_request,
mocker,
active_user_with_permissions,
mock_get_detailed_service,
mock_get_service_statistics,
):
mock_get_notifications(
mocker,
@@ -412,7 +412,7 @@ def test_big_numbers_and_search_dont_show_for_letters(
service_one,
mock_get_notifications,
active_user_with_permissions,
mock_get_detailed_service,
mock_get_service_statistics,
message_type,
tablist_visible,
search_bar_visible
@@ -441,7 +441,7 @@ def test_sending_status_hint_does_not_include_status_for_letters(
client_request,
service_one,
active_user_with_permissions,
mock_get_detailed_service,
mock_get_service_statistics,
message_type,
hint_status_visible,
mocker
@@ -468,7 +468,7 @@ def test_should_expected_hint_for_letters(
logged_in_client,
service_one,
active_user_with_permissions,
mock_get_detailed_service,
mock_get_service_statistics,
mocker,
fake_uuid,
is_precompiled_letter,

View File

@@ -75,7 +75,7 @@ def test_get_started(
mocker,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary
):
@@ -96,7 +96,7 @@ def test_get_started_is_hidden_once_templates_exist(
mocker,
mock_get_service_templates,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary
):
@@ -116,7 +116,7 @@ def test_inbound_messages_not_visible_to_service_without_permissions(
service_one,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_template_statistics,
mock_get_usage,
mock_get_inbound_sms_summary
@@ -142,7 +142,7 @@ def test_inbound_messages_shows_count_of_messages(
service_one,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_template_statistics,
mock_get_usage,
inbound_summary_mock,
@@ -177,7 +177,7 @@ def test_inbox_showing_inbound_messages(
service_one,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_template_statistics,
mock_get_usage,
mock_get_most_recent_inbound_sms,
@@ -205,7 +205,7 @@ def test_get_inbound_sms_shows_page_links(
service_one,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_template_statistics,
mock_get_usage,
mock_get_most_recent_inbound_sms,
@@ -226,7 +226,7 @@ def test_empty_inbox(
service_one,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_template_statistics,
mock_get_usage,
mock_get_most_recent_inbound_sms_with_no_messages,
@@ -378,7 +378,7 @@ def test_should_show_recent_templates_on_dashboard(
mocker,
mock_get_service_templates,
mock_get_jobs,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary
):
@@ -539,7 +539,7 @@ def test_should_show_upcoming_jobs_on_dashboard(
logged_in_client,
mock_get_service_templates,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_jobs,
mock_get_usage,
mock_get_inbound_sms_summary
@@ -574,7 +574,7 @@ def test_correct_columns_display_on_dashboard(
client_request,
mock_get_service_templates,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_jobs,
service_one,
permissions,
@@ -637,7 +637,7 @@ def test_correct_font_size_for_big_numbers(
mocker,
mock_get_service_templates,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_jobs,
service_one,
permissions,
@@ -668,7 +668,7 @@ def test_should_show_recent_jobs_on_dashboard(
logged_in_client,
mock_get_service_templates,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_jobs,
mock_get_usage,
mock_get_inbound_sms_summary
@@ -837,7 +837,7 @@ def test_menu_send_messages(
mock_get_service_templates,
mock_get_jobs,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary,
mock_get_free_sms_fragment_limit,
@@ -869,7 +869,7 @@ def test_menu_manage_service(
mock_get_service_templates,
mock_get_jobs,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary,
mock_get_free_sms_fragment_limit,
@@ -900,7 +900,7 @@ def test_menu_manage_api_keys(
mock_get_service_templates,
mock_get_jobs,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary,
mock_get_free_sms_fragment_limit,
@@ -929,7 +929,7 @@ def test_menu_all_services_for_platform_admin_user(
mock_get_service_templates,
mock_get_jobs,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary,
mock_get_free_sms_fragment_limit,
@@ -960,7 +960,7 @@ def test_route_for_service_permissions(
mock_get_service_templates,
mock_get_jobs,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary
):
@@ -1004,7 +1004,7 @@ def test_service_dashboard_updates_gets_dashboard_totals(
logged_in_client,
mock_get_service_templates,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_jobs,
mock_get_usage,
mock_get_inbound_sms_summary
@@ -1229,7 +1229,7 @@ def test_get_tuples_of_financial_years_defaults_to_2015():
def test_should_show_all_jobs_with_valid_statuses(
logged_in_client,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_service_templates_when_no_templates_exist,
mock_get_jobs,
mock_get_usage,

View File

@@ -361,7 +361,7 @@ def test_upload_csvfile_with_errors_shows_check_page_with_errors(
mock_get_service_template_with_placeholders,
mock_s3_upload,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
fake_uuid,
):
@@ -486,7 +486,7 @@ def test_upload_csvfile_with_missing_columns_shows_error(
mock_get_service_template_with_placeholders,
mock_s3_upload,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
service_one,
fake_uuid,
@@ -567,7 +567,7 @@ def test_upload_valid_csv_shows_preview_and_table(
mock_get_live_service,
mock_get_service_template_with_placeholders,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
fake_uuid,
@@ -672,7 +672,7 @@ def test_file_name_truncated_to_fit_in_s3_metadata(
mock_get_live_service,
mock_get_service_template_with_placeholders,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
fake_uuid,
@@ -713,7 +713,7 @@ def test_show_all_columns_if_there_are_duplicate_recipient_columns(
mock_get_live_service,
mock_get_service_template_with_placeholders,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
fake_uuid,
):
@@ -758,7 +758,7 @@ def test_404_for_previewing_a_row_out_of_range(
mock_get_live_service,
mock_get_service_template_with_placeholders,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
fake_uuid,
@@ -794,7 +794,7 @@ def test_send_test_doesnt_show_file_contents(
mock_get_service_template,
mock_s3_upload,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
service_one,
fake_uuid,
):
@@ -828,7 +828,7 @@ def test_send_test_doesnt_show_file_contents(
def test_send_test_step_redirects_if_session_not_setup(
mocker,
logged_in_client,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_users_by_service,
fake_uuid,
endpoint,
@@ -1060,7 +1060,7 @@ def test_send_test_redirects_to_start_if_you_skip_steps(
mock_get_service_letter_template,
mock_s3_upload,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mocker,
endpoint,
expected_redirect,
@@ -1096,7 +1096,7 @@ def test_send_test_redirects_to_start_if_index_out_of_bounds_and_some_placeholde
mock_get_service_email_template,
mock_s3_download,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
endpoint,
expected_redirect,
):
@@ -1156,7 +1156,7 @@ def test_send_test_email_message_without_placeholders_redirects_to_check_page(
mock_get_service_email_template_without_placeholders,
mock_s3_upload,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
fake_uuid,
):
with logged_in_client.session_transaction() as session:
@@ -1236,7 +1236,7 @@ def test_send_test_letter_redirects_to_right_url(
mock_get_service_letter_template,
mock_s3_upload,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mocker,
):
@@ -1399,7 +1399,7 @@ def test_send_test_sms_message_puts_submitted_data_in_session(
service_one,
mock_get_service_template_with_placeholders,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
fake_uuid,
):
with logged_in_client.session_transaction() as session:
@@ -1434,7 +1434,7 @@ def test_send_test_works_as_letter_preview(
logged_in_platform_admin_client,
mock_get_service_letter_template,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
service_one,
fake_uuid,
mocker,
@@ -1521,7 +1521,7 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers(
logged_in_client,
mock_get_service_template,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_live_service,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
@@ -1563,7 +1563,7 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers(
assert '07700 900750' not in content
assert 'Only showing the first 50 rows' in content
mock_get_detailed_service_for_today.assert_called_once_with(service_one['id'])
mock_get_service_statistics.assert_called_once_with(service_one['id'], today_only=True)
@pytest.mark.parametrize('service_mock, should_allow_international', [
@@ -1578,7 +1578,7 @@ def test_upload_csvfile_with_international_validates(
mock_s3_upload,
mock_has_permissions,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
fake_uuid,
service_mock,
@@ -1610,7 +1610,7 @@ def test_test_message_can_only_be_sent_now(
mock_get_service_template,
mock_s3_download,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
fake_uuid
@@ -1632,7 +1632,7 @@ def test_letter_can_only_be_sent_now(
service_one,
mock_get_service_letter_template,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_s3_set_metadata,
mock_get_job_doesnt_exist,
fake_uuid,
@@ -1744,7 +1744,7 @@ def test_should_show_preview_letter_message(
logged_in_platform_admin_client,
mock_get_service_letter_template,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
service_one,
fake_uuid,
@@ -1961,7 +1961,7 @@ def test_check_messages_back_link(
mock_get_users_by_service,
mock_get_service,
mock_has_permissions,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_download,
mock_s3_set_metadata,
@@ -2058,13 +2058,9 @@ def test_check_messages_shows_too_many_messages_errors(
mocker.patch('app.main.views.send.s3download', return_value=',\n'.join(
['phone number'] + ([mock_get_users_by_service(None)[0].mobile_number] * 100)
))
mocker.patch('app.service_api_client.get_detailed_service_for_today', return_value={
'data': {
'statistics': {
'sms': {'requested': num_requested, 'delivered': 0, 'failed': 0},
'email': {'requested': 0, 'delivered': 0, 'failed': 0}
}
}
mocker.patch('app.service_api_client.get_service_statistics', return_value={
'sms': {'requested': num_requested, 'delivered': 0, 'failed': 0},
'email': {'requested': 0, 'delivered': 0, 'failed': 0}
})
with logged_in_client.session_transaction() as session:
@@ -2100,7 +2096,7 @@ def test_check_messages_shows_trial_mode_error(
mock_get_service,
mock_get_service_template,
mock_has_permissions,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
fake_uuid,
mocker
@@ -2147,7 +2143,7 @@ def test_check_messages_shows_trial_mode_error_for_letters(
mock_get_service_letter_template,
mock_has_permissions,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
fake_uuid,
@@ -2197,7 +2193,7 @@ def test_check_messages_shows_data_errors_before_trial_mode_errors_for_letters(
mock_get_service_letter_template,
mock_has_permissions,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
fake_uuid,
):
@@ -2238,7 +2234,7 @@ def test_check_messages_column_error_doesnt_show_optional_columns(
mock_has_permissions,
fake_uuid,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
):
@@ -2278,7 +2274,7 @@ def test_generate_test_letter_doesnt_block_in_trial_mode(
mock_has_permissions,
fake_uuid,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_set_metadata,
):
@@ -2317,7 +2313,7 @@ def test_check_messages_shows_over_max_row_error(
mock_get_service,
mock_get_service_template_with_placeholders,
mock_has_permissions,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
mock_s3_download,
fake_uuid,
@@ -2361,7 +2357,7 @@ def test_non_ascii_characters_in_letter_recipients_file_shows_error(
mock_get_live_service,
mock_has_permissions,
mock_get_service_letter_template,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
fake_uuid,
mocker
@@ -2732,7 +2728,7 @@ def test_reply_to_is_previewed_if_chosen(
mock_s3_download,
mock_s3_set_metadata,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
get_default_reply_to_email_address,
fake_uuid,
@@ -2782,7 +2778,7 @@ def test_sms_sender_is_previewed(
mock_s3_download,
mock_s3_set_metadata,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
mock_get_service_statistics,
mock_get_job_doesnt_exist,
get_default_sms_sender,
fake_uuid,

View File

@@ -22,7 +22,7 @@ def test_sign_out_user(
mock_get_jobs,
mock_has_permissions,
mock_get_template_statistics,
mock_get_detailed_service,
mock_get_service_statistics,
mock_get_usage,
mock_get_inbound_sms_summary,
):

View File

@@ -27,20 +27,23 @@ def test_client_posts_archived_true_when_deleting_template(mocker):
mock_post.assert_called_once_with(expected_url, data=expected_data)
@pytest.mark.parametrize(
'function,params', [
(ServiceAPIClient.get_service, {}),
(ServiceAPIClient.get_detailed_service, {'detailed': True}),
(ServiceAPIClient.get_detailed_service_for_today, {'detailed': True, 'today_only': True})
],
ids=lambda x: x.__name__
)
def test_client_gets_service(mocker, function, params):
def test_client_gets_service(mocker):
client = ServiceAPIClient()
mock_get = mocker.patch.object(client, 'get', return_value={})
function(client, 'foo')
mock_get.assert_called_once_with('/service/foo', params=params)
client.get_service('foo')
mock_get.assert_called_once_with('/service/foo')
@pytest.mark.parametrize('today_only', [True, False])
def test_client_gets_service_statistics(mocker, today_only):
client = ServiceAPIClient()
mock_get = mocker.patch.object(client, 'get', return_value={'data': {'a': 'b'}})
ret = client.get_service_statistics('foo', today_only)
assert ret == {'a': 'b'}
mock_get.assert_called_once_with('/service/foo/statistics', params={'today_only': today_only})
def test_client_only_updates_allowed_attributes(mocker):
@@ -169,7 +172,7 @@ def test_client_returns_count_of_service_templates(
],
None,
[
call('/service/{}'.format(SERVICE_ONE_ID), params={})
call('/service/{}'.format(SERVICE_ONE_ID))
],
[
call(