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(