1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-12 22:49:15 +00:00
seahub/tests/api/endpoints/admin/test_institutions.py
Leo 7df1192cbf admin api role check (#4353)
* admin api role check

* add check to new tabs and tests

* fix work-weixin virus scan check
2019-12-16 18:31:29 +08:00

120 lines
3.4 KiB
Python

import json
import logging
from django.core.urlresolvers import reverse
from seahub.test_utils import BaseTestCase
from tests.common.utils import randstring
from seahub.institutions.models import Institution
logger = logging.getLogger(__name__)
class InstitutionsTest(BaseTestCase):
def setUp(self):
pass
def _add_institution(self, name=''):
return Institution.objects.create(name=name)
def _delete_institution(self, name=''):
try:
institution = Institution.objects.get(name=name)
institution.delete()
except Exception as e:
logger.error(e)
def test_can_get(self):
self.login_as(self.admin)
inst = self._add_institution('int1')
url = reverse('api-v2.1-admin-institutions')
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert json_resp['institution_list'][0]['name'] == 'int1'
assert json_resp['total_count'] == 1
inst.delete()
def test_no_permission(self):
self.logout()
self.login_as(self.admin_no_other_permission)
inst = self._add_institution('int1')
url = reverse('api-v2.1-admin-institutions')
resp = self.client.get(url)
self.assertEqual(403, resp.status_code)
inst.delete()
def test_can_create(self):
self.login_as(self.admin)
url = reverse('api-v2.1-admin-institutions')
institution_name = randstring(10)
data = {
'name': institution_name,
}
resp = self.client.post(url, data)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert json_resp['name'] == institution_name
self._delete_institution(institution_name)
class InstitutionTest(BaseTestCase):
def setUp(self):
pass
def _add_institution(self, name=''):
return Institution.objects.create(name=name)
def _delete_institution(self, name=''):
try:
institution = Institution.objects.get(name=name)
institution.delete()
except Exception as e:
logger.error(e)
def test_can_get(self):
self.login_as(self.admin)
institution_name = randstring(10)
inst = self._add_institution(institution_name)
url = reverse('api-v2.1-admin-institution', args=[inst.id])
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert json_resp['id'] == inst.id
assert json_resp['name'] == institution_name
inst.delete()
def test_can_update(self):
self.login_as(self.admin)
institution_name = randstring(10)
inst = self._add_institution(institution_name)
url = reverse('api-v2.1-admin-institution', args=[inst.id])
data = 'quota=1024'
resp = self.client.put(url, data, 'application/x-www-form-urlencoded')
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert json_resp['quota_total'] == 1024 * 1000 * 1000
inst.delete()
def test_can_delete(self):
self.login_as(self.admin)
institution_name = randstring(10)
inst = self._add_institution(institution_name)
url = reverse('api-v2.1-admin-institution', args=[inst.id])
resp = self.client.delete(url)
self.assertEqual(200, resp.status_code)