Passed
Pull Request — master (#11)
by
unknown
01:22
created

TestShares.test_setting_folder_permissions()   A

Complexity

Conditions 1

Size

Total Lines 26
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 26
rs 9.65
c 0
b 0
f 0
cc 1
nop 1
1
from NextCloud import Permission, QUOTE_UNLIMITED
2
3
from .base import BaseTestCase
4
5
6
class TestShares(BaseTestCase):
7
8
    def setUp(self):
9
        super(TestShares, self).setUp()
10
11
    def test_crud_group_folder(self):
12
        # create new group folder
13
        folder_mount_point = "test_group_folders_" + self.get_random_string(length=4)
14
        res = self.nxc.create_group_folder(folder_mount_point)
15
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
16
        group_folder_id = res['ocs']['data']['id']
17
18
        # get all group folders and check if just created folder is in the list
19
        res = self.nxc.get_group_folders()
20
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
21
        group_folders = res['ocs']['data']
22
        assert str(group_folder_id) in group_folders
23
        assert group_folders[str(group_folder_id)]['mount_point'] == folder_mount_point
24
25
        # retrieve single folder
26
        res = self.nxc.get_group_folder(group_folder_id)
27
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
28
        assert res['ocs']['data']['id'] == group_folder_id
29
        assert res['ocs']['data']['mount_point'] == folder_mount_point
30
31
        # rename group folder
32
        new_folder_mount_point = folder_mount_point + '_new'
33
        res = self.nxc.rename_group_folder(group_folder_id, new_folder_mount_point)
34
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE and res['ocs']['data'] is True
35
        # check if name was changed
36
        res = self.nxc.get_group_folder(group_folder_id)
37
        assert res['ocs']['data']['mount_point'] == new_folder_mount_point
38
39
        # delete group folder
40
        res = self.nxc.delete_group_folder(group_folder_id)
41
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
42
        assert res['ocs']['data'] is True
43
        # check that deleted folder isn't retrieved
44
        res = self.nxc.get_group_folder(group_folder_id)
45
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
46
        assert res['ocs']['data'] is False
47
48
    def test_grant_revoke_access_to_group_folder(self):
49
        # create group to share with
50
        group_id = 'test_folders_' + self.get_random_string(length=4)
51
        self.nxc.add_group(group_id)
52
53
        # create new group folder
54
        folder_mount_point = "test_access_" + self.get_random_string(length=4)
55
        res = self.nxc.create_group_folder(folder_mount_point)
56
        group_folder_id = res['ocs']['data']['id']
57
58
        # assert that no groups have access to just created folder
59
        res = self.nxc.get_group_folder(group_folder_id)
60
        assert len(res['ocs']['data']['groups']) == 0
61
62
        # grant access to group
63
        res = self.nxc.grant_access_to_group_folder(group_folder_id, group_id)
64
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
65
        assert res['ocs']['data'] is True
66
67
        # check that folder has this group
68
        res = self.nxc.get_group_folder(group_folder_id)
69
        assert res['ocs']['data']['groups'] == {group_id: Permission.ALL}
70
71
        # revoke access
72
        res = self.nxc.revoke_access_to_group_folder(group_folder_id, group_id)
73
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE
74
        assert res['ocs']['data'] is True
75
76
        # check that folder has no groups again
77
        res = self.nxc.get_group_folder(group_folder_id)
78
        assert len(res['ocs']['data']['groups']) == 0
79
80
        # clear
81
        self.clear(nxc=self.nxc, group_ids=[group_id], group_folder_ids=[group_folder_id])
82
83
    def test_setting_folder_quotas(self):
84
        # create new group folder
85
        folder_mount_point = "test_folder_quotas_" + self.get_random_string(length=4)
86
        res = self.nxc.create_group_folder(folder_mount_point)
87
        group_folder_id = res['ocs']['data']['id']
88
89
        # assert quota is unlimited by default
90
        res = self.nxc.get_group_folder(group_folder_id)
91
        assert res['ocs']['data']['quota'] == QUOTE_UNLIMITED
92
93
        # set quota
94
        QUOTA_ONE_GB = 1024 * 1024 * 1024
95
        res = self.nxc.set_quota_of_group_folder(group_folder_id, QUOTA_ONE_GB)
96
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE and res['ocs']['data'] is True
97
        # check if quota changed
98
        res = self.nxc.get_group_folder(group_folder_id)
99
        assert res['ocs']['data']['quota'] == QUOTA_ONE_GB
100
101
        # clear
102
        self.clear(group_folder_ids=[group_folder_id])
103
104
    def test_setting_folder_permissions(self):
105
        # create group to share with
106
        group_id = 'test_folders_' + self.get_random_string(length=4)
107
        self.nxc.add_group(group_id)
108
109
        # create new group folder
110
        folder_mount_point = "test_folder_permissions_" + self.get_random_string(length=4)
111
        res = self.nxc.create_group_folder(folder_mount_point)
112
        group_folder_id = res['ocs']['data']['id']
113
114
        # add new group to folder
115
        self.nxc.grant_access_to_group_folder(group_folder_id, group_id)
116
        # assert permissions is ALL by default
117
        res = self.nxc.get_group_folder(group_folder_id)
118
        assert res['ocs']['data']['quota'] == QUOTE_UNLIMITED
119
120
        # set permissions
121
        new_permission = Permission.READ + Permission.CREATE
122
        res = self.nxc.set_permissions_to_group_folder(group_folder_id, group_id, new_permission)
123
        assert res['ocs']['meta']['statuscode'] == self.SUCCESS_CODE and res['ocs']['data'] is True
124
        # check if permissions changed
125
        res = self.nxc.get_group_folder(group_folder_id)
126
        assert res['ocs']['data']['groups'][group_id] == new_permission
127
128
        # clear
129
        self.clear(nxc=self.nxc, group_ids=[group_id], group_folder_ids=[group_folder_id])
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147