mirror of
https://github.com/haiwen/seahub.git
synced 2025-07-16 16:21:48 +00:00
67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
|
import json
|
||
|
|
||
|
from django.core.urlresolvers import reverse
|
||
|
from seaserv import ccnet_api
|
||
|
|
||
|
from seahub.test_utils import BaseTestCase
|
||
|
from tests.common.utils import randstring
|
||
|
|
||
|
class GroupsTest(BaseTestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
self.user_name = self.user.username
|
||
|
self.admin_name = self.admin.username
|
||
|
|
||
|
group_name = 'top group xxx'
|
||
|
self.top_group_id = ccnet_api.create_group(group_name, self.admin_name,
|
||
|
parent_group_id=-1)
|
||
|
self.login_as(self.admin)
|
||
|
self.url = reverse('api-v2.1-admin-address-book-group',
|
||
|
args=[self.top_group_id])
|
||
|
|
||
|
def tearDown(self):
|
||
|
self.remove_group(self.top_group_id)
|
||
|
|
||
|
def test_can_list_child_groups(self):
|
||
|
child_group_id = ccnet_api.create_group('child group xxx',
|
||
|
self.user.username,
|
||
|
parent_group_id=self.top_group_id)
|
||
|
|
||
|
resp = self.client.get(self.url)
|
||
|
self.assertEqual(200, resp.status_code)
|
||
|
json_resp = json.loads(resp.content)
|
||
|
assert len(json_resp['groups']) >= 1
|
||
|
assert len(json_resp['members']) >= 1
|
||
|
assert len(json_resp['ancestor_groups']) == 0
|
||
|
assert json_resp['id'] == self.top_group_id
|
||
|
self.remove_group(child_group_id)
|
||
|
|
||
|
def test_can_ancestor_groups(self):
|
||
|
child_group_id = ccnet_api.create_group('child group xxx',
|
||
|
self.user.username,
|
||
|
parent_group_id=self.top_group_id)
|
||
|
|
||
|
url = reverse('api-v2.1-admin-address-book-group',
|
||
|
args=[child_group_id]) + '?return_ancestors=true'
|
||
|
resp = self.client.get(url)
|
||
|
self.assertEqual(200, resp.status_code)
|
||
|
json_resp = json.loads(resp.content)
|
||
|
assert len(json_resp['groups']) == 0
|
||
|
assert len(json_resp['ancestor_groups']) >= 1
|
||
|
assert json_resp['ancestor_groups'][-1]['id'] == self.top_group_id
|
||
|
self.remove_group(child_group_id)
|
||
|
|
||
|
def test_can_delete_group(self):
|
||
|
resp = self.client.delete(self.url)
|
||
|
self.assertEqual(200, resp.status_code)
|
||
|
|
||
|
def test_cannot_delete_group_with_child(self):
|
||
|
child_group_id = ccnet_api.create_group('child group xxx',
|
||
|
self.user.username,
|
||
|
parent_group_id=self.top_group_id)
|
||
|
|
||
|
resp = self.client.delete(self.url)
|
||
|
self.assertEqual(400, resp.status_code)
|
||
|
|
||
|
self.remove_group(child_group_id)
|