支持免登录游客聊天并隔离历史与附件
This commit is contained in:
@@ -4,6 +4,7 @@ from dataclasses import replace
|
||||
from pathlib import Path
|
||||
import tempfile
|
||||
import unittest
|
||||
import re
|
||||
|
||||
from dotenv import dotenv_values
|
||||
|
||||
@@ -57,6 +58,26 @@ class GrayConfigTests(unittest.TestCase):
|
||||
self.assertNotIn(key, (path / name).read_text(encoding='utf-8'))
|
||||
self.assertIn('auth_basic_user_file', (path / 'site.conf').read_text(encoding='utf-8'))
|
||||
|
||||
def test_public_allowlist_keeps_staff_search_exports_and_order_endpoints_protected(self):
|
||||
config = GrayConfig.from_environment(self.settings()).nginx_config()
|
||||
self.assertTrue(config.startswith('# Managed for baiyue-logistics-chat-gray;'))
|
||||
match = re.search(r'location ~ (\S+) \{([^}]+)\}', config)
|
||||
self.assertIsNotNone(match)
|
||||
pattern, body = match.groups()
|
||||
self.assertIn('auth_basic off;', body)
|
||||
self.assertIn('auth_basic "Baiyue gray acceptance";', config)
|
||||
for path in ('/healthz','/stream_chat','/api/visitor/session','/api/get_history','/api/get_messages',
|
||||
'/api/del_history','/api/clear_all','/api/visitor/human/request','/api/visitor/human/poll',
|
||||
'/api/visitor/human/send','/api/visitor/human/close','/api/speech/transcribe'):
|
||||
with self.subTest(public_path=path):self.assertRegex(path,pattern)
|
||||
for path in ('/admin/dashboard','/api/export_chat','/api/search_chat','/api/my_orders','/api/tickets',
|
||||
'/api/human/queue','/api/human/poll','/api/human/send','/api/staff/uploads/private.txt',
|
||||
'/api/visitor/human/accept','/api/get_history/unknown','/api/unknown'):
|
||||
with self.subTest(staff_path=path):self.assertNotRegex(path,pattern)
|
||||
example=(Path(__file__).resolve().parents[1]/'deploy/nginx.conf.example').read_text(encoding='utf-8')
|
||||
self.assertEqual(re.search(r'location ~ (\S+) \{',example)[1],pattern)
|
||||
self.assertIn('location = / {\n auth_basic off;',config)
|
||||
|
||||
def test_invalid_model_credential_does_not_create_a_release_directory(self):
|
||||
config = GrayConfig.from_environment(self.settings())
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
|
||||
Reference in New Issue
Block a user