chore: initial commit (sources + docs, ignore build artifacts and secrets)
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import hashlib
|
||||
|
||||
from mulit_agent_app.application.agent_service import AgentService
|
||||
from mulit_agent_app.config import AgentConfig
|
||||
from mulit_agent_app.infrastructure.database import AgentDatabase
|
||||
|
||||
|
||||
class _Session:
|
||||
def __init__(self) -> None:
|
||||
self.acks: list[tuple[str, str, str]] = []
|
||||
|
||||
def send_skill_ack(self, skill_id: str, status: str, error: str = "") -> None:
|
||||
self.acks.append((skill_id, status, error))
|
||||
|
||||
|
||||
class _Executor:
|
||||
def __init__(self) -> None:
|
||||
self.prefix = ""
|
||||
|
||||
def set_instruction_prefix(self, value: str) -> None:
|
||||
self.prefix = value
|
||||
|
||||
|
||||
def test_chinese_skill_name_installs_and_empty_snapshot_removes_it(tmp_path):
|
||||
config = AgentConfig(tmp_path, tmp_path / "settings.json", tmp_path / "agent.sqlite3", tmp_path / "agent.log")
|
||||
service = AgentService.__new__(AgentService)
|
||||
service._config = config
|
||||
service._database = AgentDatabase(config.database_path)
|
||||
service._database.initialize()
|
||||
service.session = _Session()
|
||||
service.task_executor = _Executor()
|
||||
content = "# 图生图工具\n\n仅用于测试。"
|
||||
skill_id = "a" * 32
|
||||
|
||||
service.apply_skill_snapshot(
|
||||
{
|
||||
"skills": [
|
||||
{
|
||||
"id": skill_id,
|
||||
"name": "图生图工具",
|
||||
"version": "0.3.2",
|
||||
"content": content,
|
||||
"checksum": hashlib.sha256(content.encode("utf-8")).hexdigest(),
|
||||
}
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
assert (config.data_dir / "skills" / skill_id / "SKILL.md").read_text(encoding="utf-8") == content
|
||||
assert service._database.get_meta(f"skill.{skill_id}.name") == "图生图工具"
|
||||
assert service.session.acks == [(skill_id, "applied", "")]
|
||||
|
||||
service.apply_skill_snapshot({"skills": []})
|
||||
|
||||
assert not (config.data_dir / "skills" / skill_id).exists()
|
||||
assert service._database.get_meta(f"skill.{skill_id}.name") == ""
|
||||
Reference in New Issue
Block a user