mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-03 21:21:14 -04:00
Merge pull request #3460 from alphagov/handle-session-expiring-name-change
Handle session expiring during service name change
This commit is contained in:
@@ -537,7 +537,8 @@ def validate_route_permission(mocker,
|
||||
route,
|
||||
permissions,
|
||||
usr,
|
||||
service):
|
||||
service,
|
||||
session=None):
|
||||
usr['permissions'][str(service['id'])] = permissions
|
||||
usr['services'] = [service['id']]
|
||||
mocker.patch(
|
||||
@@ -556,6 +557,10 @@ def validate_route_permission(mocker,
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(usr)
|
||||
if session:
|
||||
with client.session_transaction() as session_:
|
||||
for k, v in session.items():
|
||||
session_[k] = v
|
||||
resp = None
|
||||
if method == 'GET':
|
||||
resp = client.get(route)
|
||||
|
||||
@@ -644,6 +644,9 @@ def test_should_not_allow_duplicate_names(
|
||||
def test_should_show_service_name_confirmation(
|
||||
client_request,
|
||||
):
|
||||
service_new_name = 'New Name'
|
||||
with client_request.session_transaction() as session:
|
||||
session['service_name_change'] = service_new_name
|
||||
page = client_request.get(
|
||||
'main.service_name_change_confirm',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
@@ -703,6 +706,20 @@ def test_should_raise_duplicate_name_handled(
|
||||
assert mock_verify_password.called
|
||||
|
||||
|
||||
def test_service_name_change_confirm_handles_expired_session(
|
||||
client_request, mock_verify_password, mock_update_service
|
||||
):
|
||||
page = client_request.post(
|
||||
'main.service_name_change_confirm',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_follow_redirects=True
|
||||
)
|
||||
mock_verify_password.assert_not_called()
|
||||
mock_update_service.assert_not_called()
|
||||
|
||||
assert page.find('div', 'banner-dangerous').text.strip() == "The change you made was not saved. Please try again."
|
||||
|
||||
|
||||
@pytest.mark.parametrize('volumes, consent_to_research, expected_estimated_volumes_item', [
|
||||
((0, 0, 0), None, 'Tell us how many messages you expect to send Not completed'),
|
||||
((1, 0, 0), None, 'Tell us how many messages you expect to send Not completed'),
|
||||
@@ -1881,7 +1898,9 @@ def test_route_permissions(
|
||||
url_for(route, service_id=service_one['id']),
|
||||
['manage_service'],
|
||||
api_user_active,
|
||||
service_one)
|
||||
service_one,
|
||||
session={'service_name_change': "New Service Name"}
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('route', [
|
||||
@@ -1936,14 +1955,17 @@ def test_route_for_platform_admin(
|
||||
mock_get_service_templates,
|
||||
mock_get_invites_for_service,
|
||||
):
|
||||
validate_route_permission(mocker,
|
||||
app_,
|
||||
"GET",
|
||||
200,
|
||||
url_for(route, service_id=service_one['id']),
|
||||
[],
|
||||
platform_admin_user,
|
||||
service_one)
|
||||
validate_route_permission(
|
||||
mocker,
|
||||
app_,
|
||||
"GET",
|
||||
200,
|
||||
url_for(route, service_id=service_one['id']),
|
||||
[],
|
||||
platform_admin_user,
|
||||
service_one,
|
||||
session={'service_name_change': "New Service Name"}
|
||||
)
|
||||
|
||||
|
||||
def test_and_more_hint_appears_on_settings_with_more_than_just_a_single_sender(
|
||||
|
||||
Reference in New Issue
Block a user