From 2a1328a17e88049c85c693331b9dcefb27227660 Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Wed, 14 Nov 2018 15:57:23 +0000 Subject: [PATCH] Check if folder is empty before calling the api --- app/main/views/templates.py | 8 ++++++++ tests/app/main/views/test_template_folders.py | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 5bd013158..e27942342 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -408,6 +408,14 @@ def delete_template_folder(service_id, template_folder_id): form = TemplateFolderForm() template_folder_path = current_service.get_template_folder_path(template_folder_id) template_folder_name = template_folder_path[-1]["name"] + if len(current_service.get_template_folders_and_templates( + template_type="all", template_folder_id=template_folder_id + )) > 0: + flash("'{}' folder is not empty".format(template_folder_name), 'info') + return redirect(url_for( + '.manage_template_folder', service_id, template_folder_id + )) + if request.method == 'POST': try: template_folder_api_client.delete_template_folder(current_service.id, template_folder_id) diff --git a/tests/app/main/views/test_template_folders.py b/tests/app/main/views/test_template_folders.py index f0f4ffdd4..9aa01d1f3 100644 --- a/tests/app/main/views/test_template_folders.py +++ b/tests/app/main/views/test_template_folders.py @@ -381,9 +381,13 @@ def test_rename_folder(client_request, service_one, mock_get_template_folders, m def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker): mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder') folder_id = str(uuid.uuid4()) - mock_get_template_folders.return_value = [ + mock_get_template_folders.side_effect = [[ {'id': folder_id, 'name': 'sacrifice', 'parent_id': None}, - ] + ], []] + mocker.patch( + 'app.models.service.Service.get_templates', + return_value=[], + ) service_one['permissions'] += ['edit_folders'] client_request.post(