1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-04-27 19:05:16 +00:00
seahub/tests/api/endpoints/admin/test_web_settings.py
欢乐马 a9c38c55a5
SERVICE_URL in env (#6919)
* SERVICE_URL in env

* rm SERVICE_URL in db config

* update SERVICE_URL test
2024-10-18 18:03:02 +08:00

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)