Skip to content

Commit c9bd7a0

Browse files
committed
SDK-348
- Add unit test for handling `completed_with_warnings` in file move operations - Simplify `_parents_generator` logic, removing strict permission argument from directory creation commands - Add unit test for strict permission directory creation at root paths
1 parent 57faabe commit c9bd7a0

3 files changed

Lines changed: 25 additions & 18 deletions

File tree

cterasdk/cio/core/commands.py

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -685,17 +685,7 @@ def _before_command(self):
685685
def _parents_generator(self):
686686
if self.parents:
687687
parts = self.path.parts
688-
start_index = 1
689-
known_roots = ('My Files', 'Shared With Me', 'Shared', 'Team Portal')
690-
if parts:
691-
if parts[0] in known_roots:
692-
start_index = 2
693-
elif parts[0] in ('Users', 'Groups') and len(parts) > 1:
694-
if len(parts) > 2 and parts[2] in known_roots:
695-
start_index = 4
696-
else:
697-
start_index = 3
698-
for i in range(start_index, len(parts)):
688+
for i in range(1, len(parts)):
699689
yield automatic_resolution('/'.join(parts[:i]), self._receiver.context)
700690
else:
701691
yield self.path
@@ -707,8 +697,7 @@ def _execute(self):
707697
CreateDirectory(
708698
self._function,
709699
self._receiver,
710-
path,
711-
strict_permission=self._strict_permission
700+
path
712701
).execute()
713702
except exceptions.io.core.CreateDirectoryError as e:
714703
CreateDirectory._suppress_file_conflict_error(e)
@@ -722,8 +711,7 @@ async def _a_execute(self):
722711
await CreateDirectory(
723712
self._function,
724713
self._receiver,
725-
path,
726-
strict_permission=self._strict_permission
714+
path
727715
).a_execute()
728716
except exceptions.io.core.CreateDirectoryError as e:
729717
CreateDirectory._suppress_file_conflict_error(e)
@@ -1043,9 +1031,6 @@ def _handle_response(self, r):
10431031
if r.completed:
10441032
return self._task_complete(r)
10451033

1046-
if r.completed_with_warnings:
1047-
return r
1048-
10491034
if r.failed or r.completed_with_warnings:
10501035
return self._task_error(r)
10511036

tests/ut/core/user/test_mkdir.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,10 @@ def test_mkdir_strict_permission_denied(self):
3535
self._init_services(execute_response=execute_response)
3636
with self.assertRaises(exceptions.io.core.PrivilegeError):
3737
self._services.files.mkdir(self._directory, strict_permission=True)
38+
39+
def test_makedirs_strict_permission_root_path(self):
40+
rooted_directories = 'Team Portal/Engineering/Documents'
41+
self._init_services(execute_response=None)
42+
ret = self._services.files.makedirs(rooted_directories, strict_permission=True)
43+
self.assertEqual(self._services.api.execute.call_count, len(rooted_directories.split('/')))
44+
self.assertEqual(ret, rooted_directories)

tests/ut/core/user/test_move.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,21 @@ def test_move_strict_permission_denied(self):
3232
self._services.files.move(self._source, destination=self._dest, strict_permission=True)
3333
self._services.tasks.wait.assert_called_once_with(self._task_reference)
3434

35+
def test_move_completed_with_warnings_raises_move_error(self):
36+
task = mock.MagicMock()
37+
task.completed = False
38+
task.completed_with_warnings = True
39+
task.failed = False
40+
task.cursor = None
41+
task.error_type = None
42+
task.unknown_object.return_value = True
43+
task.progress_str = None
44+
self._services.tasks.wait = mock.MagicMock(return_value=task)
45+
self._init_services(execute_response=self._task_reference)
46+
with self.assertRaises(exceptions.io.core.MoveError):
47+
self._services.files.move(self._source, destination=self._dest, strict_permission=True)
48+
self._services.tasks.wait.assert_called_once_with(self._task_reference)
49+
3550
def _create_move_resource_param(self):
3651
destinations = [base_user.BaseCoreServicesTest.encode_path(self._dest + '/' + self._filename)]
3752
return self._create_action_resource_param([base_user.BaseCoreServicesTest.encode_path(self._source)], destinations)

0 commit comments

Comments
 (0)