From a3231effb191cfb30e3f4d1325304cf520a5b47a Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Wed, 6 Apr 2022 11:56:05 +0100 Subject: [PATCH] Remove version history from provider ratio page This doesn't work with 3 providers. You can still see the version history for each provider on their dedicated page. --- app/main/views/providers.py | 32 +----- .../providers/edit-sms-provider-ratio.html | 43 -------- tests/app/main/views/test_providers.py | 99 ------------------- 3 files changed, 1 insertion(+), 173 deletions(-) diff --git a/app/main/views/providers.py b/app/main/views/providers.py index d08128f7b..a73735a94 100644 --- a/app/main/views/providers.py +++ b/app/main/views/providers.py @@ -1,11 +1,10 @@ -from collections import defaultdict from datetime import datetime from operator import itemgetter from flask import abort, render_template, url_for from werkzeug.utils import redirect -from app import format_date_numeric, provider_client +from app import provider_client from app.main import main from app.main.forms import AdminProviderForm, AdminProviderRatioForm from app.utils.user import user_is_platform_admin @@ -82,41 +81,12 @@ def edit_sms_provider_ratio(): return render_template( 'views/providers/edit-sms-provider-ratio.html', - versions=_chunk_versions_by_day(_get_versions_since_switchover(first_provider['id'])), form=form, first_provider=providers[0]['display_name'], second_provider=providers[1]['display_name'], ) -def _get_versions_since_switchover(provider_id): - - for version in sorted( # noqa: B020 - provider_client.get_provider_versions(provider_id)['data'], - key=lambda version: version['updated_at'] or '' - ): - - if not version['updated_at']: - continue - - if version['updated_at'] < PROVIDER_PRIORITY_MEANING_SWITCHOVER: - continue - - yield version - - -def _chunk_versions_by_day(versions): - - days = defaultdict(list) - - for version in sorted(versions, key=lambda version: version['updated_at'] or '', reverse=True): # noqa: B020 - days[ - format_date_numeric(version['updated_at']) - ].append(version) - - return sorted(days.items(), reverse=True) - - @main.route("/provider/") @user_is_platform_admin def view_provider(provider_id): diff --git a/app/templates/views/providers/edit-sms-provider-ratio.html b/app/templates/views/providers/edit-sms-provider-ratio.html index e522d132b..bbe3b0d04 100644 --- a/app/templates/views/providers/edit-sms-provider-ratio.html +++ b/app/templates/views/providers/edit-sms-provider-ratio.html @@ -44,47 +44,4 @@ - - - {% for day, versions in versions %} -

- {% if day %} - {{ versions[0]['updated_at']|format_date_human|title }} - {% else %} - Start - {% endif %} -

- - {% endfor %} - {% endblock %} diff --git a/tests/app/main/views/test_providers.py b/tests/app/main/views/test_providers.py index 63f490cc5..8dbac9b5d 100644 --- a/tests/app/main/views/test_providers.py +++ b/tests/app/main/views/test_providers.py @@ -3,7 +3,6 @@ from unittest.mock import call import pytest from flask import url_for -from freezegun import freeze_time import app from app.main.views.providers import add_monthly_traffic @@ -432,100 +431,6 @@ def test_should_show_provider_version_history( assert second_row[4].text.strip() == "True" -@freeze_time('2022-2-22 15:00') -def test_should_show_version_history_for_first_two_sms_providers( - client_request, - platform_admin_user, - mocker, - stub_providers, -): - mocker.patch( - 'app.provider_client.get_all_providers', - return_value=stub_providers - ) - - # Getting the history for one provider implicitly gives us the - # history of the other one (in a world with only two providers). - # The code picks the first provider in alphabetical order of its - # id i.e. sms_provider_1. - mocker.patch( - 'app.provider_client.get_provider_versions', - return_value={'data': [ - { - 'id': id, - 'priority': priority, - 'display_name': sms_provider_1['display_name'], - 'identifier': sms_provider_1['identifier'], - 'updated_at': updated_at, - 'created_by': { - 'email_address': 'test@foo.bar', - 'name': 'Test User', - 'id': '7cc1dddb-bcbc-4739-8fc1-61bedde3332a' - }, - 'supports_international': False, - } - for updated_at, priority in [ - (datetime(2022, 2, 22, 14).isoformat(), 100), - (datetime(2020, 1, 1, 5).isoformat(), 80), - (datetime(2020, 1, 1, 3).isoformat(), 10), - # Anything older than 11am on 29 November 2019 - # should be ignored because the priority numbers - # didn’t mean the same thing before then - (datetime(2019, 11, 29, 10, 59).isoformat(), 123), - (datetime(2000, 1, 1, 0).isoformat(), 1999), - (None, 30), - ] - ]} - ) - - client_request.login(platform_admin_user) - page = client_request.get('main.edit_sms_provider_ratio') - - assert [ - radio['value'] - for radio in page.select('input[name=ratio]') - ] == [ - '100', '90', '80', '70', '60', '50', '40', '30', '20', '10', '0', - ] - - assert [ - radio['value'] - for radio in page.select('input[checked]') - ] == [ - str(sms_provider_1['priority']) - ] - - assert [ - normalize_spaces(heading.text) - for heading in page.select('main h2') - ] == [ - 'Now', - 'Today', - '1 January 2020', - ] - - assert [ - normalize_spaces(version.text) - for version in page.select('li.history-list-item') - ] == [ - ( - 'Test User 2:00pm ' - 'First Domestic SMS Provider 100% ' - 'Second Domestic SMS Provider 0%' - ), - ( - 'Test User 5:00am ' - 'First Domestic SMS Provider 80% ' - 'Second Domestic SMS Provider 20%' - ), - ( - 'Test User 3:00am ' - 'First Domestic SMS Provider 10% ' - 'Second Domestic SMS Provider 90%' - ), - ] - - @pytest.mark.parametrize('posted_number, expected_calls', [ ( '10', @@ -554,10 +459,6 @@ def test_should_update_priority_of_first_two_sms_providers( 'app.provider_client.get_all_providers', return_value=stub_providers ) - mocker.patch( - 'app.provider_client.get_provider_versions', - return_value={'data': []} - ) mock_update_provider = mocker.patch( 'app.provider_client.update_provider' )