92 lines
2.4 KiB
Python
92 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# pylint: disable=protected-access
|
|
"""Regression tests for agent workspace initialization."""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
from types import SimpleNamespace
|
|
|
|
from pineagents.app.routers import agents as agents_router
|
|
|
|
|
|
def _stub_global_config(language: str = "en") -> SimpleNamespace:
|
|
return SimpleNamespace(
|
|
agents=SimpleNamespace(language=language),
|
|
)
|
|
|
|
|
|
def test_initialize_agent_workspace_creates_runtime_compatible_files(
|
|
monkeypatch,
|
|
tmp_path,
|
|
):
|
|
"""New workspaces should match the runtime file contract."""
|
|
import pineagents.config as config_module
|
|
|
|
monkeypatch.setattr(
|
|
config_module,
|
|
"load_config",
|
|
lambda: _stub_global_config("en"),
|
|
)
|
|
monkeypatch.setattr(
|
|
agents_router,
|
|
"_install_initial_skills",
|
|
lambda workspace_dir, skill_names: None,
|
|
)
|
|
|
|
agents_router._initialize_agent_workspace(tmp_path)
|
|
|
|
assert (tmp_path / "sessions").is_dir()
|
|
assert (tmp_path / "memory").is_dir()
|
|
assert (tmp_path / "skills").is_dir()
|
|
assert not (tmp_path / "active_skills").exists()
|
|
assert not (tmp_path / "customized_skills").exists()
|
|
assert json.loads(
|
|
(tmp_path / "jobs.json").read_text(encoding="utf-8"),
|
|
) == {
|
|
"version": 1,
|
|
"jobs": [],
|
|
}
|
|
assert json.loads(
|
|
(tmp_path / "chats.json").read_text(encoding="utf-8"),
|
|
) == {
|
|
"version": 1,
|
|
"chats": [],
|
|
}
|
|
|
|
|
|
def test_initialize_agent_workspace_applies_md_template_with_language(
|
|
monkeypatch,
|
|
tmp_path,
|
|
):
|
|
"""Workspace initialization should pass language and md_template_id."""
|
|
import pineagents.config as config_module
|
|
|
|
recorded_calls: list[tuple[str, Path, str | None]] = []
|
|
|
|
monkeypatch.setattr(
|
|
config_module,
|
|
"load_config",
|
|
lambda: _stub_global_config("ru"),
|
|
)
|
|
monkeypatch.setattr(
|
|
agents_router,
|
|
"copy_workspace_md_files",
|
|
lambda language, workspace_dir, md_template_id=None: (
|
|
recorded_calls.append(
|
|
(language, workspace_dir, md_template_id),
|
|
)
|
|
),
|
|
)
|
|
monkeypatch.setattr(
|
|
agents_router,
|
|
"_install_initial_skills",
|
|
lambda workspace_dir, skill_names: None,
|
|
)
|
|
|
|
agents_router._initialize_agent_workspace(
|
|
tmp_path,
|
|
md_template_id="qa",
|
|
)
|
|
|
|
assert recorded_calls == [("ru", tmp_path, "qa")]
|