feat: 添加任务历史记录、持久化会话、WebSocket支持和数据持久化功能

This commit is contained in:
2026-03-10 18:58:03 +08:00
parent f56ba5559d
commit 7fdd31b07b
22 changed files with 2006 additions and 4 deletions

47
tests/test_storage.py Normal file
View File

@@ -0,0 +1,47 @@
import pytest
from app.services.storage import JSONStorage
from pathlib import Path
class TestJSONStorage:
def test_save_and_load(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
data = {"name": "test", "value": 123}
storage.save("test", data)
loaded = storage.load("test")
assert loaded == data
def test_load_nonexistent(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
result = storage.load("nonexistent", default={"default": True})
assert result == {"default": True}
def test_save_list(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
data = [1, 2, 3, "test"]
storage.save("list", data)
loaded = storage.load("list")
assert loaded == data
def test_save_nested_data(self, temp_dir):
storage = JSONStorage()
storage.data_dir = temp_dir
data = {
"tasks": [
{"id": "1", "status": "completed"},
{"id": "2", "status": "running"}
]
}
storage.save("nested", data)
loaded = storage.load("nested")
assert loaded == data