1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-05-03 05:36:42 +00:00
seafile-server/tests/test_group/test_groups.py
2021-09-06 18:20:28 +08:00

74 lines
2.4 KiB
Python

import pytest
from seaserv import seafile_api as api
from seaserv import ccnet_api
from tests.config import USER, USER2
from tests.utils import randstring
def test_multi_tier_groups(repo):
id1 = ccnet_api.create_group('group1', USER, parent_group_id=-1)
id2 = ccnet_api.create_group('group2', USER2, parent_group_id = id1)
id3 = ccnet_api.create_group('group3', USER, parent_group_id = id1)
id4 = ccnet_api.create_group('group4', USER2, parent_group_id = id3)
id5 = ccnet_api.create_group('group5', USER2, parent_group_id = 0)
assert id1 != -1 and id2 != -1 and id3 != -1 and id4 != -1
group1 = ccnet_api.get_group(id1)
group2 = ccnet_api.get_group(id2)
group3 = ccnet_api.get_group(id3)
group4 = ccnet_api.get_group(id4)
assert group1.parent_group_id == -1
assert group2.parent_group_id == id1
assert group3.parent_group_id == id1
assert group4.parent_group_id == id3
members = ccnet_api.search_group_members (id1, 'randgroup{}'.format(randstring(6)))
assert len(members) == 0
members = ccnet_api.search_group_members (id1, USER)
assert len(members) == 1
assert members[0].user_name == USER
ances_order = [id5, id4, id3, id2, id1]
user2_groups_with_ancestors = ccnet_api.get_groups (USER2, return_ancestors = True)
assert len(user2_groups_with_ancestors) == 5
i = 0
for g in user2_groups_with_ancestors:
assert g.id == ances_order[i]
i = i + 1
order = [id5, id4, id2]
i = 0
user2_groups = ccnet_api.get_groups (USER2)
assert len(user2_groups) == 3
for g in user2_groups:
assert g.id == order[i]
i = i + 1
top_groups = ccnet_api.get_top_groups(True)
assert len(top_groups) == 1
for g in top_groups:
assert g.parent_group_id == -1
child_order = [id2, id3]
i = 0
id1_children = ccnet_api.get_child_groups(id1)
assert len(id1_children) == 2
for g in id1_children:
assert g.id == child_order[i]
i = i + 1
group4_order = [id1, id3, id4]
i = 0
group4_ancestors = ccnet_api.get_ancestor_groups(id4)
assert len(group4_ancestors) == 3
for g in group4_ancestors:
assert g.id == group4_order[i]
i = i + 1
rm5 = ccnet_api.remove_group(id5)
rm4 = ccnet_api.remove_group(id4)
rm3 = ccnet_api.remove_group(id3)
rm2 = ccnet_api.remove_group(id2)
rm1 = ccnet_api.remove_group(id1)
assert rm5 == 0 and rm4 == 0 and rm3 == 0 and rm2 == 0 and rm1 == 0