1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-07-18 17:21:34 +00:00
seafile-server/tests/test_sharing.py

65 lines
1.9 KiB
Python
Raw Normal View History

import pytest
from seaserv import seafile_api as api
from seaserv import ccnet_api
from tests.config import ADMIN_USER, USER, USER2
@pytest.mark.parametrize('permission', ['r', 'rw'])
2018-01-18 03:18:51 +00:00
def test_share_repo_to_user(repo, permission):
assert api.check_permission(repo.id, USER) == 'rw'
assert api.check_permission(repo.id, USER2) is None
api.share_repo(repo.id, USER, USER2, permission)
assert api.check_permission(repo.id, USER2) == permission
repos = api.get_share_in_repo_list(USER2, 0, 1)
assert len(repos) == 1
r = repos[0]
assert r.id == repo.id
assert r.permission == permission
2018-01-16 11:01:54 +00:00
api.remove_share(repo.id, USER, USER2)
assert api.check_permission(repo.id, USER2) is None
2018-01-18 03:18:51 +00:00
@pytest.mark.parametrize('permission', ['r', 'rw'])
def test_share_repo_to_group(repo, group, permission):
assert api.check_permission(repo.id, USER) == 'rw'
assert api.check_permission(repo.id, USER2) is None
repos = api.get_repos_by_group(group.id)
assert len(repos) == 0
group_list = ccnet_api.get_groups(USER)
assert len(group_list) == 1
group_list = ccnet_api.get_groups(USER2)
assert len(group_list) == 0
api.group_share_repo(repo.id, group.id, USER, permission)
repos = api.get_repos_by_group(group.id)
assert len(repos) == 1
r = repos[0]
assert r.id == repo.id
assert r.permission == permission
ccnet_api.group_add_member(group.id, USER, USER2)
group_list = ccnet_api.get_groups(USER2)
assert len(group_list) == 1
g = group_list[0]
assert g.id == group.id
repos2 = api.get_repos_by_group(g.id)
assert len(repos2) == 1
r2 = repos2[0]
assert r2.id == repo.id
assert r2.permission == permission
assert api.check_permission(repo.id, USER2) == permission
api.group_unshare_repo(repo.id, group.id, USER);
repos = api.get_repos_by_group(group.id)
assert len(repos) == 0
assert api.check_permission(repo.id, USER2) is None