完善会话草稿恢复与附件保留,统一人工服务时区
This commit is contained in:
@@ -123,6 +123,20 @@ class StorageTests(unittest.TestCase):
|
||||
self.assertNotIn('..', name)
|
||||
self.assertFalse(result['is_image'])
|
||||
|
||||
def test_old_attachments_referenced_by_ai_or_human_history_survive_cleanup(self):
|
||||
uploads=self.root/'uploads'; uploads.mkdir()
|
||||
for name in ('ai.png','human.pdf','unused.txt'):
|
||||
file=uploads/name;file.write_bytes(b'fixture')
|
||||
os.utime(file,(time.time()-20*86400,time.time()-20*86400))
|
||||
connection=db.connect()
|
||||
connection.execute("INSERT INTO messages(conv_id,role,content,ctime) VALUES(1,'user','[图片]/uploads/ai.png','now')")
|
||||
connection.execute("INSERT INTO human_messages(session_id,side,content,ctime) VALUES(1,'customer','[文件]/uploads/human.pdf','now')")
|
||||
connection.commit();connection.close()
|
||||
file_service.cleanup_uploads()
|
||||
self.assertTrue((uploads/'ai.png').exists())
|
||||
self.assertTrue((uploads/'human.pdf').exists())
|
||||
self.assertFalse((uploads/'unused.txt').exists())
|
||||
|
||||
def test_invalid_and_oversized_uploads_are_rejected(self):
|
||||
self.assertEqual(file_service.upload_file({})[1], 400)
|
||||
denied = FileStorage(stream=io.BytesIO(b'bad'), filename='test.exe')
|
||||
|
||||
Reference in New Issue
Block a user