mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-09 02:42:47 +00:00
sysadmin reconstruct add invitations api (#4179)
* sysadmin reconstruct add invitations api
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import time
|
||||
import json
|
||||
from mock import patch
|
||||
|
||||
from django.utils import timezone
|
||||
@@ -13,8 +14,7 @@ from seahub.invitations import models
|
||||
|
||||
class InvitationsTest(BaseTestCase):
|
||||
def setUp(self):
|
||||
self.login_as(self.admin)
|
||||
self.delete_url = reverse('api-v2.1-admin-invitations')
|
||||
self.url = reverse('api-v2.1-admin-invitations')
|
||||
|
||||
@patch.object(CanInviteGuest, 'has_permission')
|
||||
@patch.object(UserPermissions, 'can_invite_guest')
|
||||
@@ -31,7 +31,7 @@ class InvitationsTest(BaseTestCase):
|
||||
self.assertEqual(2, new_invitations_number-invitations_number)
|
||||
|
||||
time.sleep(2)
|
||||
resp = self.client.delete(self.delete_url+"?type=expired")
|
||||
resp = self.client.delete(self.url+"?type=expired")
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertEqual(invitations_number, len(Invitation.objects.all()))
|
||||
|
||||
@@ -42,8 +42,57 @@ class InvitationsTest(BaseTestCase):
|
||||
invite_type=models.GUEST,
|
||||
expire_time=timezone.now())
|
||||
entry.save()
|
||||
|
||||
def test_get_invitations(self):
|
||||
self.login_as(self.admin)
|
||||
|
||||
resp = self.client.get(self.url)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
json_resp = json.loads(resp.content)
|
||||
|
||||
assert type(json_resp['invitation_list']) is list
|
||||
|
||||
def test_get_invitations_permision_denied(self):
|
||||
self.login_as(self.user)
|
||||
resp = self.client.get(self.url)
|
||||
self.assertEqual(403, resp.status_code)
|
||||
|
||||
def test_invalid_args(self):
|
||||
resp = self.client.delete(self.delete_url+"?type=expired122")
|
||||
self.login_as(self.admin)
|
||||
resp = self.client.delete(self.url+"?type=expired122")
|
||||
self.assertEqual(400, resp.status_code)
|
||||
|
||||
|
||||
class InvitationTest(BaseTestCase):
|
||||
def setUp(self):
|
||||
pass
|
||||
|
||||
def _add_invitations(self, email):
|
||||
token = models.gen_token(max_length=32)
|
||||
entry = models.Invitation(token=token,
|
||||
inviter=self.admin,
|
||||
accepter=email,
|
||||
invite_type=models.GUEST,
|
||||
expire_time=timezone.now())
|
||||
entry.save()
|
||||
return token
|
||||
|
||||
def _remove_invitation(self, token):
|
||||
invitation = Invitation.objects.get(token=token)
|
||||
invitation.delete()
|
||||
|
||||
def test_can_delete(self):
|
||||
self.login_as(self.admin)
|
||||
token = self._add_invitations('test@noway.com')
|
||||
url = reverse('api-v2.1-admin-invitation', args=[token])
|
||||
resp = self.client.delete(url)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
def test_delete_share_link_with_invalid_permission(self):
|
||||
self.login_as(self.user)
|
||||
token = self._add_invitations('test@noway.com')
|
||||
url = reverse('api-v2.1-admin-invitation', args=[token])
|
||||
resp = self.client.delete(url)
|
||||
self.assertEqual(403, resp.status_code)
|
||||
|
||||
self._remove_invitation(token)
|
||||
|
Reference in New Issue
Block a user