From 77529f419122f7a89ddab378d0320191d1b1b731 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Tue, 20 Nov 2018 10:44:09 +0000 Subject: [PATCH] Redirect to parent after deleting a folder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit You lose your place if, after deleting something that’s deeply nested, you return to the root level. --- app/main/views/templates.py | 2 +- tests/app/main/views/test_template_folders.py | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 2f8827b57..2ae0ba6ae 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -427,7 +427,7 @@ def delete_template_folder(service_id, template_folder_id): template_folder_api_client.delete_template_folder(current_service.id, template_folder_id) return redirect( - url_for('.choose_template', service_id=service_id) + url_for('.choose_template', service_id=service_id, template_folder_id=template_folder['parent_id']) ) except HTTPError as e: msg = "Folder is not empty" diff --git a/tests/app/main/views/test_template_folders.py b/tests/app/main/views/test_template_folders.py index da3a97b60..e0cd223c4 100644 --- a/tests/app/main/views/test_template_folders.py +++ b/tests/app/main/views/test_template_folders.py @@ -487,11 +487,15 @@ def test_delete_template_folder_should_detect_non_empty_folder_on_get( ) -def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker): +@pytest.mark.parametrize('parent_folder_id', ( + None, + PARENT_FOLDER_ID, +)) +def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker, parent_folder_id): mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder') folder_id = str(uuid.uuid4()) mock_get_template_folders.side_effect = [[ - {'id': folder_id, 'name': 'sacrifice', 'parent_id': None}, + {'id': folder_id, 'name': 'sacrifice', 'parent_id': parent_folder_id}, ], []] mocker.patch( 'app.models.service.Service.get_templates', @@ -503,9 +507,12 @@ def test_delete_folder(client_request, service_one, mock_get_template_folders, m 'main.delete_template_folder', service_id=service_one['id'], template_folder_id=folder_id, - _expected_redirect=url_for("main.choose_template", - service_id=service_one['id'], - _external=True) + _expected_redirect=url_for( + "main.choose_template", + service_id=service_one['id'], + template_folder_id=parent_folder_id, + _external=True, + ) ) mock_delete.assert_called_once_with(service_one['id'], folder_id)