From 81d9c7354342a29c3df43088f7e7ac88618ccbd5 Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Tue, 22 Feb 2022 10:47:04 +0000 Subject: [PATCH] Bump -utils to 55.0.0 This renames "delete_cache_keys_by_pattern" to match the new method name, which will also catch exceptions if Redis is down [1]. Note that this also includes a change to RecipientCSV [2], which has no effect because the new default is the same as the old behaviour. [1]: https://github.com/alphagov/notifications-utils/pull/949 [2]: https://github.com/alphagov/notifications-utils/pull/947/files#diff-a8a994bf655634f89dc7439880708b4ff0d780ac1bd8033827d8aaa2692a8e0fR373 --- app/main/views/platform_admin.py | 6 +++--- app/notify_client/service_api_client.py | 2 +- requirements.in | 2 +- requirements.txt | 2 +- tests/app/main/views/test_platform_admin.py | 10 +++++----- tests/app/main/views/test_service_settings.py | 2 +- tests/app/notify_client/test_service_api_client.py | 10 +++++----- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/main/views/platform_admin.py b/app/main/views/platform_admin.py index 10e43fb4b..23018ee94 100644 --- a/app/main/views/platform_admin.py +++ b/app/main/views/platform_admin.py @@ -352,10 +352,10 @@ def platform_admin_returned_letters(): try: letter_jobs_client.submit_returned_letters(references) - redis_client.delete_cache_keys_by_pattern( + redis_client.delete_by_pattern( 'service-????????-????-????-????-????????????-returned-letters-statistics' ) - redis_client.delete_cache_keys_by_pattern( + redis_client.delete_by_pattern( 'service-????????-????-????-????-????????????-returned-letters-summary' ) except HTTPError as error: @@ -431,7 +431,7 @@ def clear_cache(): patterns = list(itertools.chain(*groups)) num_deleted = sum( - redis_client.delete_cache_keys_by_pattern(pattern) + redis_client.delete_by_pattern(pattern) for pattern in patterns ) diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index 9dde58ffd..e5439e335 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -9,7 +9,7 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user, cache class ServiceAPIClient(NotifyAdminAPIClient): def _delete_template_cache_for_service(self, service_id): - redis_client.delete_cache_keys_by_pattern(f"service-{service_id}-template-*") + redis_client.delete_by_pattern(f"service-{service_id}-template-*") @cache.delete('user-{user_id}') def create_service( diff --git a/requirements.in b/requirements.in index c87f63345..a1215c6f0 100644 --- a/requirements.in +++ b/requirements.in @@ -30,7 +30,7 @@ pyproj==3.2.1 # PaaS awscli-cwlogs>=1.4,<1.5 itsdangerous==1.1.0 # pyup: <2 -notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@53.0.0 +notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@55.0.0 govuk-frontend-jinja @ git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.8-alpha # gds-metrics requires prometheseus 0.2.0, override that requirement as later versions bring significant performance gains diff --git a/requirements.txt b/requirements.txt index eea16349d..ffa568e48 100644 --- a/requirements.txt +++ b/requirements.txt @@ -121,7 +121,7 @@ mistune==0.8.4 # via notifications-utils notifications-python-client==6.3.0 # via -r requirements.in -notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@53.0.0 +notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@55.0.0 # via -r requirements.in openpyxl==3.0.7 # via pyexcel-xlsx diff --git a/tests/app/main/views/test_platform_admin.py b/tests/app/main/views/test_platform_admin.py index fb4cba007..d0fb1160b 100644 --- a/tests/app/main/views/test_platform_admin.py +++ b/tests/app/main/views/test_platform_admin.py @@ -698,7 +698,7 @@ def test_platform_admin_submit_returned_letters( ) mock_client.assert_called_once_with(['REF1', 'REF2']) - assert redis.delete_cache_keys_by_pattern.call_args_list == [ + assert redis.delete_by_pattern.call_args_list == [ call('service-????????-????-????-????-????????????-returned-letters-statistics'), call('service-????????-????-????-????-????????????-returned-letters-summary'), ] @@ -734,7 +734,7 @@ def test_clear_cache_shows_form( page = client_request.get('main.clear_cache') - assert not redis.delete_cache_keys_by_pattern.called + assert not redis.delete_by_pattern.called radios = {el['value'] for el in page.select('input[type=checkbox]')} assert radios == { @@ -780,7 +780,7 @@ def test_clear_cache_submits_and_tells_you_how_many_things_were_deleted( expected_confirmation, ): redis = mocker.patch('app.main.views.platform_admin.redis_client') - redis.delete_cache_keys_by_pattern.return_value = 2 + redis.delete_by_pattern.return_value = 2 client_request.login(platform_admin_user) page = client_request.post( @@ -789,7 +789,7 @@ def test_clear_cache_submits_and_tells_you_how_many_things_were_deleted( _expected_status=200 ) - assert redis.delete_cache_keys_by_pattern.call_args_list == expected_calls + assert redis.delete_by_pattern.call_args_list == expected_calls flash_banner = page.find('div', class_='banner-default') assert flash_banner.text.strip() == expected_confirmation @@ -806,7 +806,7 @@ def test_clear_cache_requires_option( page = client_request.post('main.clear_cache', _data={}, _expected_status=200) assert normalize_spaces(page.find('span', class_='govuk-error-message').text) == 'Error: Select at least one option' - assert not redis.delete_cache_keys_by_pattern.called + assert not redis.delete_by_pattern.called def test_reports_page( diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index 08a1ebc1a..274f777cc 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -4135,7 +4135,7 @@ def test_archive_service_after_confirm( mock_api = mocker.patch('app.service_api_client.post') mock_event = mocker.patch('app.main.views.service_settings.create_archive_service_event') redis_delete_mock = mocker.patch('app.notify_client.service_api_client.redis_client.delete') - mocker.patch('app.notify_client.service_api_client.redis_client.delete_cache_keys_by_pattern') + mocker.patch('app.notify_client.service_api_client.redis_client.delete_by_pattern') client_request.login(user) page = client_request.post( diff --git a/tests/app/notify_client/test_service_api_client.py b/tests/app/notify_client/test_service_api_client.py index 6a058c1eb..1568b8147 100644 --- a/tests/app/notify_client/test_service_api_client.py +++ b/tests/app/notify_client/test_service_api_client.py @@ -12,7 +12,7 @@ FAKE_TEMPLATE_ID = uuid4() def test_client_posts_archived_true_when_deleting_template(mocker): mocker.patch('app.notify_client.current_user', id='1') - mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_cache_keys_by_pattern') + mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_by_pattern') expected_data = { 'archived': True, 'created_by': '1' @@ -467,7 +467,7 @@ def test_deletes_caches_when_modifying_templates( ): mocker.patch('app.notify_client.current_user', id='1') mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete') - mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_cache_keys_by_pattern') + mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_by_pattern') mock_request = mocker.patch('notifications_python_client.base.BaseAPIClient.request') getattr(service_api_client, method)(*extra_args) @@ -482,7 +482,7 @@ def test_deletes_caches_when_modifying_templates( def test_deletes_cached_users_when_archiving_service(mocker, mock_get_service_templates): mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete') - mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_cache_keys_by_pattern') + mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_by_pattern') mocker.patch('notifications_python_client.base.BaseAPIClient.request', return_value={'data': ""}) @@ -542,7 +542,7 @@ def test_client_doesnt_delete_service_template_cache_when_none_exist( mocker.patch('app.notify_client.current_user', id='1') mocker.patch('notifications_python_client.base.BaseAPIClient.request') mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete') - mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_cache_keys_by_pattern') + mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_by_pattern') service_api_client.update_reply_to_email_address(SERVICE_ONE_ID, uuid4(), 'foo@bar.com') @@ -560,7 +560,7 @@ def test_client_deletes_service_template_cache_when_service_is_updated( mocker.patch('app.notify_client.current_user', id='1') mocker.patch('notifications_python_client.base.BaseAPIClient.request') mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete') - mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_cache_keys_by_pattern') + mock_redis_delete_by_pattern = mocker.patch('app.extensions.RedisClient.delete_by_pattern') service_api_client.update_reply_to_email_address(SERVICE_ONE_ID, uuid4(), 'foo@bar.com')