mirror of
https://github.com/haiwen/seahub.git
synced 2025-04-27 19:05:16 +00:00
73 lines
2.8 KiB
Python
73 lines
2.8 KiB
Python
import json
|
|
from django.urls import reverse
|
|
from django.test import override_settings
|
|
|
|
from seahub.test_utils import BaseTestCase
|
|
|
|
|
|
class AdminWebSettingsTest(BaseTestCase):
|
|
|
|
def setUp(self):
|
|
self.url = reverse('api-v2.1-web-settings')
|
|
self.login_as(self.admin)
|
|
|
|
def test_get_admin_permission_denied(self):
|
|
self.logout()
|
|
self.login_as(self.admin_cannot_config_system)
|
|
resp = self.client.get(self.url)
|
|
self.assertEqual(403, resp.status_code)
|
|
|
|
def test_put_admin_permission_denied(self):
|
|
self.logout()
|
|
self.login_as(self.admin_cannot_config_system)
|
|
resp = self.client.put(self.url)
|
|
self.assertEqual(403, resp.status_code)
|
|
|
|
def test_get_web_settings_info(self):
|
|
resp = self.client.get(self.url)
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
json_resp = json.loads(resp.content)
|
|
assert len(json_resp) == 25
|
|
|
|
@override_settings(ENABLE_SETTINGS_VIA_WEB=False)
|
|
def test_get_with_enable_settings(self):
|
|
resp = self.client.get(self.url)
|
|
self.assertEqual(404, resp.status_code)
|
|
|
|
def test_update_web_settings_info(self):
|
|
data = {
|
|
"DISABLE_SYNC_WITH_ANY_FOLDER": False,
|
|
"SHARE_LINK_TOKEN_LENGTH": 20,
|
|
"REPO_PASSWORD_MIN_LENGTH": 10,
|
|
"REGISTRATION_SEND_MAIL": False,
|
|
"SHARE_LINK_PASSWORD_MIN_LENGTH": 8,
|
|
"ENABLE_BRANDING_CSS": False,
|
|
"ENABLE_REPO_HISTORY_SETTING": 0,
|
|
"ACTIVATE_AFTER_REGISTRATION": True,
|
|
"ENABLE_ENCRYPTED_LIBRARY": True,
|
|
"CUSTOM_CSS": "test_style",
|
|
"SITE_NAME": "Seafile",
|
|
"LOGIN_REMEMBER_DAYS": 7,
|
|
"ENABLE_TERMS_AND_CONDITIONS": False,
|
|
"SITE_TITLE": "Private Seafile",
|
|
"USER_STRONG_PASSWORD_REQUIRED": 0,
|
|
"FORCE_PASSWORD_CHANGE": True,
|
|
"ENABLE_SHARE_TO_ALL_GROUPS": False,
|
|
"ENABLE_USER_CLEAN_TRASH": True,
|
|
"FREEZE_USER_ON_LOGIN_FAILED": False,
|
|
"ENABLE_TWO_FACTOR_AUTH": False,
|
|
"TEXT_PREVIEW_EXT": "ac, am, bat, c, cc, cmake, cpp, cs, css, diff, el, h, html, htm, java, js, json, less, make, org, php, pl, properties, py, rb, scala, script, sh, sql, txt, text, tex, vi, vim, xhtml, xml, log, csv, groovy, rst, patch, go, yml",
|
|
"ENABLE_SIGNUP": False,
|
|
"LOGIN_ATTEMPT_LIMIT": 5
|
|
}
|
|
for key, value in data.items():
|
|
if value in (True, False):
|
|
value = '1' if value else '0'
|
|
data_pair = key + '=' + str(value)
|
|
|
|
resp = self.client.put(self.url, data_pair, 'application/x-www-form-urlencoded')
|
|
json_resp = json.loads(resp.content)
|
|
self.assertEqual(200, resp.status_code)
|
|
assert str(json_resp[key]) == str(value)
|