feat: add AI model config template
This commit is contained in:
@@ -54,6 +54,15 @@ class TestOutfitConfigHelpers(unittest.TestCase):
|
||||
"".encode("utf-8") + json.dumps([{"name": "z"}]).encode("utf-8"))
|
||||
self.assertEqual(cs.load_ai_models()[0]["name"], "z")
|
||||
|
||||
def test_default_ai_models_template_is_loadable_and_has_no_keys(self):
|
||||
template = Path(__file__).parent.parent / "packaging" / "default_config" / "ai_models.json"
|
||||
shutil.copy2(str(template), str(self.config_dir / "ai_models.json"))
|
||||
|
||||
models = cs.load_ai_models()
|
||||
|
||||
self.assertEqual([m["name"] for m in models], ["GPT Image 2", "Nano Banana 2"])
|
||||
self.assertTrue(all(m.get("api_key") == "" for m in models))
|
||||
|
||||
# -- outfit_prompt.txt ----------------------------------------------
|
||||
|
||||
def test_prompt_default_when_missing(self):
|
||||
|
||||
@@ -25,6 +25,8 @@ class _Base(unittest.TestCase):
|
||||
(self.app / "config" / "app_config.json").write_text(
|
||||
json.dumps({"update_source": "http://x"}), encoding="utf-8")
|
||||
(self.app / "config" / "templates.json").write_text("{}", encoding="utf-8")
|
||||
(self.app / "config" / "ai_models.json").write_text(
|
||||
json.dumps({"models": [{"name": "factory"}]}), encoding="utf-8")
|
||||
self.data = self.tmp / "data"
|
||||
self._prev = os.environ.get("CMBOT_DATA_DIR")
|
||||
os.environ["CMBOT_DATA_DIR"] = str(self.data)
|
||||
@@ -48,13 +50,18 @@ class TestSeed(_Base):
|
||||
launcher.seed_defaults(self.app, self.data)
|
||||
self.assertTrue((self.data / "config" / "app_config.json").exists())
|
||||
self.assertTrue((self.data / "config" / "templates.json").exists())
|
||||
self.assertTrue((self.data / "config" / "ai_models.json").exists())
|
||||
|
||||
def test_seed_does_not_overwrite(self):
|
||||
(self.data / "config").mkdir(parents=True)
|
||||
(self.data / "config" / "app_config.json").write_text('{"update_source":"USER"}', encoding="utf-8")
|
||||
(self.data / "config" / "ai_models.json").write_text(
|
||||
json.dumps({"models": [{"name": "user"}]}), encoding="utf-8")
|
||||
launcher.seed_defaults(self.app, self.data)
|
||||
kept = json.loads((self.data / "config" / "app_config.json").read_text(encoding="utf-8"))
|
||||
self.assertEqual(kept["update_source"], "USER")
|
||||
kept_models = json.loads((self.data / "config" / "ai_models.json").read_text(encoding="utf-8"))
|
||||
self.assertEqual(kept_models["models"][0]["name"], "user")
|
||||
|
||||
|
||||
class TestRun(_Base):
|
||||
|
||||
Reference in New Issue
Block a user