1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-02 07:54:27 +00:00

share repo to group (#123)

This commit is contained in:
yixiang-zhang
2018-01-18 11:18:51 +08:00
committed by Shuai Lin
parent 4fb355865a
commit 65df973661
3 changed files with 63 additions and 2 deletions

View File

@@ -9,7 +9,7 @@ from tests.config import (
ADMIN_PASSWORD, ADMIN_USER, INACTIVE_PASSWORD, INACTIVE_USER, PASSWORD,
PASSWORD2, USER, USER2
)
from tests.utils import create_and_get_repo, randstring
from tests.utils import create_and_get_repo, randstring, create_and_get_group
from seaserv import ccnet_api, seafile_api
@@ -49,3 +49,17 @@ def repo():
if seafile_api.get_repo(repo.id):
# The repo may be deleted in the test case
seafile_api.remove_repo(repo.id)
@pytest.yield_fixture(scope='function')
def group():
group = create_and_get_group(
'test_group测试-{}'.format(randstring(10)), USER, gtype=None
)
try:
yield group
finally:
if ccnet_api.get_group(group.id):
ccnet_api.remove_group(group.id)

View File

@@ -6,7 +6,8 @@ from tests.config import ADMIN_USER, USER, USER2
@pytest.mark.parametrize('permission', ['r', 'rw'])
def test_share_repo(repo, permission):
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)
@@ -20,3 +21,44 @@ def test_share_repo(repo, permission):
api.remove_share(repo.id, USER, USER2)
assert api.check_permission(repo.id, USER2) is None
@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

View File

@@ -13,3 +13,8 @@ def create_and_get_repo(*a, **kw):
def randstring(length=12):
return ''.join(random.choice(string.lowercase) for i in range(length))
def create_and_get_group(*a, **kw):
group_id = ccnet_api.create_group(*a, **kw)
group = ccnet_api.get_group(group_id)
return group