From 0dbd3fa10d6b0a5923a4529d97dacb859eb5a8b8 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Fri, 2 Jun 2017 10:41:42 +0100 Subject: [PATCH] Revert "Merge pull request #1288 from alphagov/add-new-rate-logic" This reverts commit adbff63d1f3c6ded12ccd4ddb7878bf905c4d98d, reversing changes made to 80f0b4b2a2fa95e62d1798371647e8f21c9a1d5c. --- app/config.py | 2 - app/main/views/dashboard.py | 17 ++----- app/notify_client/service_api_client.py | 6 --- app/templates/views/dashboard/_usage.html | 2 +- tests/app/main/views/test_dashboard.py | 54 ----------------------- tests/app/main/views/test_sign_out.py | 1 - tests/conftest.py | 9 ---- 7 files changed, 4 insertions(+), 87 deletions(-) diff --git a/app/config.py b/app/config.py index 48bb5fa8d..f9b737929 100644 --- a/app/config.py +++ b/app/config.py @@ -59,8 +59,6 @@ class Config(object): ACTIVITY_STATS_LIMIT_DAYS = 7 TEST_MESSAGE_FILENAME = 'Report' - SMS_FREE_TIER_AMOUNT = 250000 - STATSD_ENABLED = False STATSD_HOST = "statsd.hostedgraphite.com" STATSD_PORT = 8125 diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 9091a2036..2d59d822f 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -2,7 +2,6 @@ from datetime import datetime from functools import partial from flask import ( render_template, - current_app, url_for, session, jsonify, @@ -187,7 +186,7 @@ def get_dashboard_partials(service_id): 'has_jobs': bool(immediate_jobs), 'usage': render_template( 'views/dashboard/_usage.html', - **calculate_free_tier_usage(service_api_client.get_yearly_sms_unit_count_and_cost( + **calculate_usage(service_api_client.get_service_usage( service_id, get_current_financial_year(), )) @@ -202,19 +201,9 @@ def get_dashboard_totals(statistics): return statistics -def calculate_free_tier_usage(usage): - sms_free_allowance = current_app.config['SMS_FREE_TIER_AMOUNT'] - - return({ - 'sms_chargeable': max(0, usage['billable_sms_units'] - sms_free_allowance), - 'total_sms_bill': usage['billable_sms_units'], - 'total_sms_cost': usage['total_cost'], - 'sms_allowance_remaining': sms_free_allowance - int(usage['billable_sms_units']) - }) - - def calculate_usage(usage): - sms_free_allowance = current_app.config['SMS_FREE_TIER_AMOUNT'] + # TODO: Don't hardcode these - get em from the API + sms_free_allowance = 250000 sms_rate = 0 if len(usage) == 0 else usage[0].get("rate", 0) sms_sent = get_sum_billing_units(breakdown for breakdown in usage if breakdown['notification_type'] == 'sms') diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index fd672a464..dc48d0043 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -221,12 +221,6 @@ class ServiceAPIClient(NotifyAdminAPIClient): params=dict(year=year) ) - def get_yearly_sms_unit_count_and_cost(self, service_id, year=None): - return self.get( - '/service/{0}/yearly-sms-billable-units'.format(service_id), - params=dict(year=year) - ) - def get_monthly_notification_stats(self, service_id, year): return self.get(url='/service/{}/notifications/monthly?year={}'.format(service_id, year)) diff --git a/app/templates/views/dashboard/_usage.html b/app/templates/views/dashboard/_usage.html index 7a908d53c..ff0530549 100644 --- a/app/templates/views/dashboard/_usage.html +++ b/app/templates/views/dashboard/_usage.html @@ -10,7 +10,7 @@
{% if sms_chargeable %} {{ big_number( - total_sms_cost, + (sms_chargeable * sms_rate), 'spent on text messages', currency="£", smaller=True diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index cda5b9f21..b6c8b9404 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -44,7 +44,6 @@ def test_get_started( mock_get_jobs, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): mock_template_stats = mocker.patch('app.template_statistics_client.get_template_statistics_for_service', return_value=copy.deepcopy(stub_template_stats)) @@ -63,7 +62,6 @@ def test_get_started_is_hidden_once_templates_exist( mock_get_jobs, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): mock_template_stats = mocker.patch('app.template_statistics_client.get_template_statistics_for_service', return_value=copy.deepcopy(stub_template_stats)) @@ -81,7 +79,6 @@ def test_should_show_recent_templates_on_dashboard( mock_get_jobs, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): mock_template_stats = mocker.patch('app.template_statistics_client.get_template_statistics_for_service', return_value=copy.deepcopy(stub_template_stats)) @@ -147,7 +144,6 @@ def test_should_show_upcoming_jobs_on_dashboard( mock_get_detailed_service, mock_get_jobs, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID)) @@ -178,7 +174,6 @@ def test_should_show_recent_jobs_on_dashboard( mock_get_detailed_service, mock_get_jobs, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID)) @@ -297,7 +292,6 @@ def test_menu_send_messages( mock_get_template_statistics, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): with app_.test_request_context(): resp = _test_dashboard_menu( @@ -328,7 +322,6 @@ def test_menu_manage_service( mock_get_template_statistics, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): with app_.test_request_context(): resp = _test_dashboard_menu( @@ -358,7 +351,6 @@ def test_menu_manage_api_keys( mock_get_template_statistics, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): with app_.test_request_context(): resp = _test_dashboard_menu( @@ -388,7 +380,6 @@ def test_menu_all_services_for_platform_admin_user( mock_get_template_statistics, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): with app_.test_request_context(): resp = _test_dashboard_menu( @@ -418,7 +409,6 @@ def test_route_for_service_permissions( mock_get_template_statistics, mock_get_detailed_service, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): with app_.test_request_context(): validate_route_permission( @@ -455,7 +445,6 @@ def test_service_dashboard_updates_gets_dashboard_totals( mock_get_detailed_service, mock_get_jobs, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): mocker.patch('app.main.views.dashboard.get_dashboard_totals', return_value={ 'email': {'requested': 123, 'delivered': 0, 'failed': 0}, @@ -679,7 +668,6 @@ def test_should_show_all_jobs_with_valid_statuses( mock_get_detailed_service, mock_get_jobs, mock_get_usage, - mock_get_yearly_sms_unit_count_and_cost ): get_dashboard_partials(service_id=SERVICE_ONE_ID) @@ -696,45 +684,3 @@ def test_should_show_all_jobs_with_valid_statuses( 'ready to send', 'sent to dvla' }) - - -def test_should_show_remaining_free_tier_count( - logged_in_client, - mock_get_service_templates, - mock_get_template_statistics, - mock_get_detailed_service, - mock_get_jobs, - mock_get_usage, - mocker -): - mocker.patch( - 'app.service_api_client.get_yearly_sms_unit_count_and_cost', - return_value={"billable_sms_units": 100, "total_cost": 200.0} - ) - - response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID)) - - assert response.status_code == 200 - assert '249,900' in response.get_data(as_text=True) - assert 'free text messages left' in response.get_data(as_text=True) - - -def test_should_show_cost_if_exceeded_free_tier_count( - logged_in_client, - mock_get_service_templates, - mock_get_template_statistics, - mock_get_detailed_service, - mock_get_jobs, - mock_get_usage, - mocker -): - mocker.patch( - 'app.service_api_client.get_yearly_sms_unit_count_and_cost', - return_value={"billable_sms_units": 300000, "total_cost": 1500.50} - ) - - response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID)) - - assert response.status_code == 200 - assert '£1,500.50' in response.get_data(as_text=True) - assert 'spent on text messages' in response.get_data(as_text=True) diff --git a/tests/app/main/views/test_sign_out.py b/tests/app/main/views/test_sign_out.py index 9c7a21f04..d4dc88b46 100644 --- a/tests/app/main/views/test_sign_out.py +++ b/tests/app/main/views/test_sign_out.py @@ -23,7 +23,6 @@ def test_sign_out_user( mock_has_permissions, mock_get_template_statistics, mock_get_detailed_service, - mock_get_yearly_sms_unit_count_and_cost, mock_get_usage, ): with logged_in_client.session_transaction() as session: diff --git a/tests/conftest.py b/tests/conftest.py index 776411230..e9171cb8e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1335,15 +1335,6 @@ def mock_get_usage(mocker, service_one, fake_uuid): 'app.service_api_client.get_service_usage', side_effect=_get_usage) -@pytest.fixture(scope='function') -def mock_get_yearly_sms_unit_count_and_cost(mocker, service_one, fake_uuid): - def _get_usage(service_id, year=None): - return {"billable_sms_units": 100, "total_cost": 200.0} - - return mocker.patch( - 'app.service_api_client.get_yearly_sms_unit_count_and_cost', side_effect=_get_usage) - - @pytest.fixture(scope='function') def mock_get_billable_units(mocker): def _get_usage(service_id, year):