Skip to content

Commit 711b78d

Browse files
committed
PIM-6080
Add unit tests for strict permission handling in `move` and `mkdir` operations
1 parent fc60395 commit 711b78d

3 files changed

Lines changed: 26 additions & 0 deletions

File tree

cterasdk/cio/core/commands.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def _raise_strict_permission_denied(result, path):
8080
if (rc, msg) in _STRICT_PERMISSION_ERROR_SET:
8181
raise exceptions.io.core.PrivilegeError(path)
8282

83+
8384
def _extract_task_error_tuple(result):
8485
rc = _normalize_rc(getattr(result, 'rc', None))
8586
msg = _normalize_msg(getattr(result, 'msg', None))

tests/ut/core/user/test_mkdir.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
from unittest import mock
22
import munch
33

4+
from cterasdk.common import Object
5+
from cterasdk import exceptions
6+
47
from tests.ut.core.user import base_user
58

69

@@ -21,3 +24,14 @@ def test_mkdir(self):
2124
})
2225
actual_param = self._services.api.execute.call_args[0][2]
2326
self._assert_equal_objects(actual_param, expected_param)
27+
28+
def test_mkdir_strict_permission_success(self):
29+
self._init_services(execute_response=None)
30+
ret = self._services.files.mkdir(self._directory, strict_permission=True)
31+
self.assertEqual(ret, self._directory)
32+
33+
def test_mkdir_strict_permission_denied(self):
34+
execute_response = Object(rc=0)
35+
self._init_services(execute_response=execute_response)
36+
with self.assertRaises(exceptions.io.core.PrivilegeError):
37+
self._services.files.mkdir(self._directory, strict_permission=True)

tests/ut/core/user/test_move.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from unittest import mock
22

3+
from cterasdk.common import Object
4+
from cterasdk import exceptions
5+
36
from tests.ut.core.user import base_user
47

58

@@ -21,6 +24,14 @@ def test_move_no_wait(self):
2124
self._assert_equal_objects(actual_param, expected_param)
2225
self.assertEqual(ret.ref, execute_response)
2326

27+
def test_move_strict_permission_denied(self):
28+
task = Object(msg='permission denied')
29+
self._services.tasks.wait = mock.MagicMock(return_value=task)
30+
self._init_services(execute_response=self._task_reference)
31+
with self.assertRaises(exceptions.io.core.PrivilegeError):
32+
self._services.files.move(self._source, destination=self._dest, strict_permission=True)
33+
self._services.tasks.wait.assert_called_once_with(self._task_reference)
34+
2435
def _create_move_resource_param(self):
2536
destinations = [base_user.BaseCoreServicesTest.encode_path(self._dest + '/' + self._filename)]
2637
return self._create_action_resource_param([base_user.BaseCoreServicesTest.encode_path(self._source)], destinations)

0 commit comments

Comments
 (0)