mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-15 15:28:50 -04:00
Merge pull request #2769 from alphagov/delete-redis-button
Clear redis cache page
This commit is contained in:
@@ -2,7 +2,7 @@ import datetime
|
||||
import re
|
||||
import uuid
|
||||
from functools import partial
|
||||
from unittest.mock import ANY
|
||||
from unittest.mock import ANY, call
|
||||
|
||||
import pytest
|
||||
import requests_mock
|
||||
@@ -858,3 +858,42 @@ def test_letter_validation_preview_doesnt_call_template_preview_when_file_doesnt
|
||||
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
assert page.find('div', class_='banner-dangerous').text.strip() == "Document didn't pass the virus scan"
|
||||
|
||||
|
||||
def test_clear_cache_shows_form(client_request, platform_admin_user, mocker):
|
||||
redis = mocker.patch('app.main.views.platform_admin.redis_client')
|
||||
client_request.login(platform_admin_user)
|
||||
|
||||
page = client_request.get('main.clear_cache')
|
||||
|
||||
assert page.select('input[type=radio]')[0]['value'] == 'user'
|
||||
assert page.select('input[type=radio]')[1]['value'] == 'service'
|
||||
assert page.select('input[type=radio]')[2]['value'] == 'template'
|
||||
assert not redis.delete_cache_keys_by_pattern.called
|
||||
|
||||
|
||||
def test_clear_cache_submits_and_tells_you_how_many_things_were_deleted(client_request, platform_admin_user, mocker):
|
||||
redis = mocker.patch('app.main.views.platform_admin.redis_client')
|
||||
redis.delete_cache_keys_by_pattern.side_effect = [0, 3, 1]
|
||||
client_request.login(platform_admin_user)
|
||||
|
||||
page = client_request.post('main.clear_cache', _data={'model_type': 'template'}, _expected_status=200)
|
||||
|
||||
assert redis.delete_cache_keys_by_pattern.call_args_list == [
|
||||
call('service-????????-????-????-????-????????????-templates'),
|
||||
call('template-????????-????-????-????-????????????-version-*'),
|
||||
call('template-????????-????-????-????-????????????-versions'),
|
||||
]
|
||||
|
||||
flash_banner = page.find('div', class_='banner-default')
|
||||
assert flash_banner.text.strip() == 'Removed 3 template objects from redis'
|
||||
|
||||
|
||||
def test_clear_cache_requires_option(client_request, platform_admin_user, mocker):
|
||||
redis = mocker.patch('app.main.views.platform_admin.redis_client')
|
||||
client_request.login(platform_admin_user)
|
||||
|
||||
page = client_request.post('main.clear_cache', _data={}, _expected_status=200)
|
||||
|
||||
assert normalize_spaces(page.find('span', class_='error-message').text) == 'Not a valid choice'
|
||||
assert not redis.delete_cache_keys_by_pattern.called
|
||||
|
||||
@@ -9,11 +9,11 @@ def test_get_email_branding(mocker, fake_uuid):
|
||||
return_value={'foo': 'bar'}
|
||||
)
|
||||
mock_redis_get = mocker.patch(
|
||||
'app.notify_client.RedisClient.get',
|
||||
'app.extensions.RedisClient.get',
|
||||
return_value=None,
|
||||
)
|
||||
mock_redis_set = mocker.patch(
|
||||
'app.notify_client.RedisClient.set',
|
||||
'app.extensions.RedisClient.set',
|
||||
)
|
||||
EmailBrandingClient().get_email_branding(fake_uuid)
|
||||
mock_get.assert_called_once_with(
|
||||
@@ -33,11 +33,11 @@ def test_get_all_email_branding(mocker):
|
||||
return_value={'email_branding': [1, 2, 3]}
|
||||
)
|
||||
mock_redis_get = mocker.patch(
|
||||
'app.notify_client.RedisClient.get',
|
||||
'app.extensions.RedisClient.get',
|
||||
return_value=None,
|
||||
)
|
||||
mock_redis_set = mocker.patch(
|
||||
'app.notify_client.RedisClient.set',
|
||||
'app.extensions.RedisClient.set',
|
||||
)
|
||||
EmailBrandingClient().get_all_email_branding()
|
||||
mock_get.assert_called_once_with(
|
||||
@@ -56,7 +56,7 @@ def test_create_email_branding(mocker):
|
||||
'domain': 'sample.com', 'brand_type': 'org'}
|
||||
|
||||
mock_post = mocker.patch('app.notify_client.email_branding_client.EmailBrandingClient.post')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
EmailBrandingClient().create_email_branding(
|
||||
logo=org_data['logo'], name=org_data['name'], text=org_data['text'], colour=org_data['colour'],
|
||||
domain=org_data['domain'], brand_type='org'
|
||||
@@ -75,7 +75,7 @@ def test_update_email_branding(mocker, fake_uuid):
|
||||
'domain': 'sample.com', 'brand_type': 'org'}
|
||||
|
||||
mock_post = mocker.patch('app.notify_client.email_branding_client.EmailBrandingClient.post')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
EmailBrandingClient().update_email_branding(
|
||||
branding_id=fake_uuid, logo=org_data['logo'], name=org_data['name'], text=org_data['text'],
|
||||
colour=org_data['colour'], domain=org_data['domain'], brand_type='org')
|
||||
|
||||
@@ -10,7 +10,7 @@ def test_client_creates_job_data_correctly(mocker, fake_uuid):
|
||||
job_id = fake_uuid
|
||||
service_id = fake_uuid
|
||||
mocker.patch('app.notify_client.current_user', id='1')
|
||||
mock_redis_set = mocker.patch('app.notify_client.RedisClient.set')
|
||||
mock_redis_set = mocker.patch('app.extensions.RedisClient.set')
|
||||
|
||||
expected_data = {
|
||||
"id": job_id,
|
||||
@@ -330,7 +330,7 @@ def test_has_jobs_sets_cache(
|
||||
'app.notify_client.job_api_client.JobApiClient.get',
|
||||
return_value={'data': job_data}
|
||||
)
|
||||
mock_redis_set = mocker.patch('app.notify_client.RedisClient.set')
|
||||
mock_redis_set = mocker.patch('app.extensions.RedisClient.set')
|
||||
|
||||
JobApiClient().has_jobs(fake_uuid)
|
||||
|
||||
@@ -359,7 +359,7 @@ def test_has_jobs_returns_from_cache(
|
||||
'app.notify_client.job_api_client.JobApiClient.get'
|
||||
)
|
||||
mock_redis_get = mocker.patch(
|
||||
'app.notify_client.RedisClient.get',
|
||||
'app.extensions.RedisClient.get',
|
||||
return_value=cache_value,
|
||||
)
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ def test_get_letter_branding(mocker, fake_uuid):
|
||||
'app.notify_client.letter_branding_client.LetterBrandingClient.get',
|
||||
return_value={'foo': 'bar'}
|
||||
)
|
||||
mock_redis_get = mocker.patch('app.notify_client.RedisClient.get', return_value=None)
|
||||
mock_redis_set = mocker.patch('app.notify_client.RedisClient.set')
|
||||
mock_redis_get = mocker.patch('app.extensions.RedisClient.get', return_value=None)
|
||||
mock_redis_set = mocker.patch('app.extensions.RedisClient.set')
|
||||
|
||||
LetterBrandingClient().get_letter_branding(fake_uuid)
|
||||
|
||||
@@ -24,8 +24,8 @@ def test_get_letter_branding(mocker, fake_uuid):
|
||||
|
||||
def test_get_all_letter_branding(mocker):
|
||||
mock_get = mocker.patch('app.notify_client.letter_branding_client.LetterBrandingClient.get', return_value=[1, 2, 3])
|
||||
mock_redis_get = mocker.patch('app.notify_client.RedisClient.get', return_value=None)
|
||||
mock_redis_set = mocker.patch('app.notify_client.RedisClient.set')
|
||||
mock_redis_get = mocker.patch('app.extensions.RedisClient.get', return_value=None)
|
||||
mock_redis_set = mocker.patch('app.extensions.RedisClient.set')
|
||||
|
||||
LetterBrandingClient().get_all_letter_branding()
|
||||
|
||||
@@ -42,7 +42,7 @@ def test_create_letter_branding(mocker):
|
||||
new_branding = {'filename': 'uuid-test', 'name': 'my letters', 'domain': 'example.com'}
|
||||
|
||||
mock_post = mocker.patch('app.notify_client.letter_branding_client.LetterBrandingClient.post')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
|
||||
LetterBrandingClient().create_letter_branding(
|
||||
filename=new_branding['filename'], name=new_branding['name'], domain=new_branding['domain']
|
||||
@@ -59,7 +59,7 @@ def test_update_letter_branding(mocker, fake_uuid):
|
||||
branding = {'filename': 'uuid-test', 'name': 'my letters', 'domain': 'example.com'}
|
||||
|
||||
mock_post = mocker.patch('app.notify_client.letter_branding_client.LetterBrandingClient.post')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
LetterBrandingClient().update_letter_branding(
|
||||
branding_id=fake_uuid, filename=branding['filename'], name=branding['name'], domain=branding['domain'])
|
||||
|
||||
|
||||
@@ -324,7 +324,7 @@ def test_returns_value_from_cache(
|
||||
):
|
||||
|
||||
mock_redis_get = mocker.patch(
|
||||
'app.notify_client.RedisClient.get',
|
||||
'app.extensions.RedisClient.get',
|
||||
return_value=cache_value,
|
||||
)
|
||||
mock_api_get = mocker.patch(
|
||||
@@ -332,7 +332,7 @@ def test_returns_value_from_cache(
|
||||
return_value={'data_from': 'api'},
|
||||
)
|
||||
mock_redis_set = mocker.patch(
|
||||
'app.notify_client.RedisClient.set',
|
||||
'app.extensions.RedisClient.set',
|
||||
)
|
||||
|
||||
assert client_method(*extra_args) == expected_return_value
|
||||
@@ -375,7 +375,7 @@ def test_deletes_service_cache(
|
||||
extra_kwargs,
|
||||
):
|
||||
mocker.patch('app.notify_client.current_user', id='1')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
mock_request = mocker.patch('notifications_python_client.base.BaseAPIClient.request')
|
||||
|
||||
getattr(client, method)(*extra_args, **extra_kwargs)
|
||||
@@ -423,7 +423,7 @@ def test_deletes_caches_when_modifying_templates(
|
||||
expected_cache_deletes,
|
||||
):
|
||||
mocker.patch('app.notify_client.current_user', id='1')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
mock_request = mocker.patch('notifications_python_client.base.BaseAPIClient.request')
|
||||
|
||||
getattr(service_api_client, method)(*extra_args)
|
||||
|
||||
@@ -9,7 +9,7 @@ from app.notify_client.template_folder_api_client import TemplateFolderAPIClient
|
||||
|
||||
@pytest.mark.parametrize('parent_id', [uuid.uuid4(), None])
|
||||
def test_create_template_folder_calls_correct_api_endpoint(mocker, parent_id):
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
|
||||
some_service_id = uuid.uuid4()
|
||||
expected_url = '/service/{}/template-folder'.format(some_service_id)
|
||||
@@ -26,8 +26,8 @@ def test_create_template_folder_calls_correct_api_endpoint(mocker, parent_id):
|
||||
|
||||
|
||||
def test_get_template_folders_calls_correct_api_endpoint(mocker):
|
||||
mock_redis_get = mocker.patch('app.notify_client.RedisClient.get', return_value=None)
|
||||
mock_redis_set = mocker.patch('app.notify_client.RedisClient.set')
|
||||
mock_redis_get = mocker.patch('app.extensions.RedisClient.get', return_value=None)
|
||||
mock_redis_set = mocker.patch('app.extensions.RedisClient.set')
|
||||
mock_api_get = mocker.patch(
|
||||
'app.notify_client.NotifyAdminAPIClient.get',
|
||||
return_value={'template_folders': {'a': 'b'}}
|
||||
@@ -50,7 +50,7 @@ def test_get_template_folders_calls_correct_api_endpoint(mocker):
|
||||
|
||||
def test_move_templates_and_folders(mocker):
|
||||
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
mock_api_post = mocker.patch('app.notify_client.NotifyAdminAPIClient.post')
|
||||
|
||||
some_service_id = uuid.uuid4()
|
||||
@@ -106,7 +106,7 @@ def test_move_templates_and_folders_to_root(mocker):
|
||||
|
||||
|
||||
def test_update_template_folder_calls_correct_api_endpoint(mocker):
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
|
||||
some_service_id = uuid.uuid4()
|
||||
template_folder_id = uuid.uuid4()
|
||||
@@ -124,7 +124,7 @@ def test_update_template_folder_calls_correct_api_endpoint(mocker):
|
||||
|
||||
|
||||
def test_delete_template_folder_calls_correct_api_endpoint(mocker):
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
|
||||
some_service_id = uuid.uuid4()
|
||||
template_folder_id = uuid.uuid4()
|
||||
|
||||
@@ -210,7 +210,7 @@ def test_returns_value_from_cache(
|
||||
):
|
||||
|
||||
mock_redis_get = mocker.patch(
|
||||
'app.notify_client.RedisClient.get',
|
||||
'app.extensions.RedisClient.get',
|
||||
return_value=cache_value,
|
||||
)
|
||||
mock_api_get = mocker.patch(
|
||||
@@ -218,7 +218,7 @@ def test_returns_value_from_cache(
|
||||
return_value={'data': 'from api'},
|
||||
)
|
||||
mock_redis_set = mocker.patch(
|
||||
'app.notify_client.RedisClient.set',
|
||||
'app.extensions.RedisClient.set',
|
||||
)
|
||||
mock_model = mocker.patch(
|
||||
'app.models.user.User.__init__',
|
||||
@@ -262,7 +262,7 @@ def test_deletes_user_cache(
|
||||
extra_kwargs,
|
||||
):
|
||||
mocker.patch('app.notify_client.current_user', id='1')
|
||||
mock_redis_delete = mocker.patch('app.notify_client.RedisClient.delete')
|
||||
mock_redis_delete = mocker.patch('app.extensions.RedisClient.delete')
|
||||
mock_request = mocker.patch('notifications_python_client.base.BaseAPIClient.request')
|
||||
|
||||
getattr(client, method)(*extra_args, **extra_kwargs)
|
||||
|
||||
Reference in New Issue
Block a user