import tempfile import unittest from pathlib import Path from localpilot.config import AppConfig, ModelConfig, RuntimeConfig from localpilot.manager import ModelManager, parse_keep_alive class ManagerTests(unittest.TestCase): def test_parse_keep_alive(self) -> None: self.assertEqual(parse_keep_alive("5m", 30), 300) self.assertEqual(parse_keep_alive("30s", 30), 30) self.assertEqual(parse_keep_alive(0, 30), 0) self.assertEqual(parse_keep_alive(-1, 30), float("inf")) self.assertEqual(parse_keep_alive("bad", 30), 30) def test_register_and_remove_only_changes_registry(self) -> None: with tempfile.TemporaryDirectory() as folder: path = Path(folder) / "config.json" manager = ModelManager(AppConfig(runtime=RuntimeConfig()), path) manager.register_model(ModelConfig(id="demo", kind="gguf", path="E:/model/demo.gguf")) self.assertEqual(manager.config.models[0].id, "demo") self.assertTrue(path.exists()) if __name__ == "__main__": unittest.main()