from __future__ import annotations from pathlib import Path from adam.config import ConfigManager from adam.tool_folders import ToolFolderManager def test_folder_scanner_detects_expected_entry_points(tmp_path: Path) -> None: program = tmp_path / "DDPM" program.mkdir() (program / "train.py").write_text("# worker", encoding="utf-8") (program / "appStableDiffusion.py").write_text("# gui", encoding="utf-8") config_root = tmp_path / "adam" manager = ToolFolderManager(ConfigManager(config_root)) status = manager.set("ddpm_trainer", str(program)) assert status.valid is True assert status.entry_points == ("train.py", "appStableDiffusion.py") assert manager.get("ddpm_trainer") == str(program) def test_chat_assignment_parser_accepts_multiple_windows_paths(tmp_path: Path) -> None: manager = ToolFolderManager(ConfigManager(tmp_path)) assignments = manager.parse_assignments( "DDPM Trainer: D:\\Programs\\DDPM\n" "Flow Matching Trainer: D:\\Programs\\FlowMatch" ) assert assignments == { "ddpm_trainer": "D:\\Programs\\DDPM", "flow_trainer": "D:\\Programs\\FlowMatch", }