1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-13 23:14:29 +00:00
seahub/tests/api/endpoints/admin/test_sys_notifications.py

82 lines
2.4 KiB
Python

import json
from django.utils.crypto import get_random_string
from seahub.test_utils import BaseTestCase
from seahub.notifications.models import Notification
class AdminSysNotificationsTest(BaseTestCase):
def setUp(self):
self.url = '/api/v2.1/admin/sys-notifications/'
self.notification = Notification.objects.create()
def tearDown(self):
try:
self.notification.delete()
except Exception as e:
pass
def test_get_notifications(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 'id' in json_resp['notifications'][0]
assert 'msg' in json_resp['notifications'][0]
assert 'is_current' in json_resp['notifications'][0]
def test_get_with_invalid_user_permission(self):
self.login_as(self.user)
resp = self.client.get(self.url)
self.assertEqual(403, resp.status_code)
def test_create_notification(self):
self.login_as(self.admin)
data = {
'msg': get_random_string(),
}
resp = self.client.post(self.url, json.dumps(data),
'application/json')
json_resp = json.loads(resp.content)
self.assertEqual(200, resp.status_code)
assert json_resp['notification']['msg'] == data['msg']
def test_create_notification_with_invalid_user_permission(self):
self.login_as(self.user)
data = {
'msg': get_random_string(),
}
resp = self.client.post(self.url, json.dumps(data),
'application/json')
self.assertEqual(403, resp.status_code)
class AdminSysNotificationTest(BaseTestCase):
def setUp(self):
self.url = '/api/v2.1/admin/sys-notifications/'
self.notification = Notification.objects.create()
def tearDown(self):
try:
self.notification.delete()
except Exception as e:
pass
def test_set_notification_primary(self):
self.login_as(self.admin)
resp = self.client.put(self.url + str(self.notification.id) + '/')
self.assertEqual(200, resp.status_code)
def delete_notification(self):
self.login_as(self.admin)
resp = self.client.delete(self.url + str(self.notification.id) + '/')
self.assertEqual(200, resp.status_code)