diff --git a/app/services/file_manager/file_move/file_move_client.py b/app/services/file_manager/file_move/file_move_client.py index 41833891..17478598 100644 --- a/app/services/file_manager/file_move/file_move_client.py +++ b/app/services/file_manager/file_move/file_move_client.py @@ -60,6 +60,12 @@ def create_object_path_if_not_exist(self, folder_path: str) -> dict: """ path_list = folder_path.split('/') + # first get the root folder to check if it is name folder + # or project folder + root_item = search_item(self.project_code, self.zone, path_list[0]).get('result') + if root_item.get('type') == 'project_folder': + path_list[0] = '/'.join([root_item.get('parent_path'), path_list[0]]) + # first check every folder in path exist or not # the loop start with index 1 since we assume cli will not # create any name folder or project folder diff --git a/pyproject.toml b/pyproject.toml index 128e8386..e91b9d00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "app" -version = "2.9.10" +version = "2.9.11" description = "This service is designed to support pilot platform" authors = ["Indoc Systems"] diff --git a/tests/app/services/file_manager/file_move/test_file_move_client.py b/tests/app/services/file_manager/file_move/test_file_move_client.py index e22776e6..59d8cab5 100644 --- a/tests/app/services/file_manager/file_move/test_file_move_client.py +++ b/tests/app/services/file_manager/file_move/test_file_move_client.py @@ -18,6 +18,11 @@ def test_file_move_success(mocker, httpx_mock): return_value=decoded_token(), ) + mocker.patch( + 'app.services.file_manager.file_move.file_move_client.FileMoveClient.create_object_path_if_not_exist', + return_value=[], + ) + httpx_mock.add_response( url=AppConfig.Connections.url_bff + f'/v1/{project_code}/files', method='PATCH', @@ -37,6 +42,11 @@ def test_file_move_error_with_permission_denied_403(mocker, httpx_mock, capfd): return_value=decoded_token(), ) + mocker.patch( + 'app.services.file_manager.file_move.file_move_client.FileMoveClient.create_object_path_if_not_exist', + return_value=[], + ) + httpx_mock.add_response( url=AppConfig.Connections.url_bff + f'/v1/{project_code}/files', method='PATCH', @@ -60,6 +70,11 @@ def test_file_move_error_with_wrong_input_422(mocker, httpx_mock, capfd): return_value=decoded_token(), ) + mocker.patch( + 'app.services.file_manager.file_move.file_move_client.FileMoveClient.create_object_path_if_not_exist', + return_value=[], + ) + httpx_mock.add_response( url=AppConfig.Connections.url_bff + f'/v1/{project_code}/files', method='PATCH',