fix(src): update load_context_preset to handle Result from load_all
After migrating ContextPresetManager.load_all to return Result[Dict], the caller in app_controller.load_context_preset needs to extract .data from the Result before checking 'name not in presets'. Updates: - src/app_controller.py:load_context_preset - check result.ok and extract result.data before iterating; raise RuntimeError if result.ok is False (consistent with the convention). - tests/test_context_presets_manager.py:test_manager_load_all - extract result.data before assertions. Tests verified: - tests/test_context_presets_manager.py (4 tests) PASS - tests/test_project_switch_persona_preset.py:: test_load_context_preset_missing_raises_keyerror PASS (KeyError raised correctly when preset not found) - tests/test_phase6_engine.py (3 tests) PASS
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
with open('src/app_controller.py', 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
old = " def load_context_preset(self, name: str) -> models.ContextPreset:\n presets = self.context_preset_manager.load_all(self.project)\n if name not in presets:\n raise KeyError(f\"Context preset '{name}' not found.\")\n preset = presets[name]"
|
||||
new = " def load_context_preset(self, name: str) -> models.ContextPreset:\n presets_result = self.context_preset_manager.load_all(self.project)\n if not presets_result.ok:\n raise RuntimeError(f\"Failed to load context presets: {presets_result.errors}\")\n presets = presets_result.data\n if name not in presets:\n raise KeyError(f\"Context preset '{name}' not found.\")\n preset = presets[name]"
|
||||
assert old in content, 'old not found'
|
||||
content = content.replace(old, new)
|
||||
with open('src/app_controller.py', 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
print('Done')
|
||||
@@ -2977,7 +2977,10 @@ class AppController:
|
||||
self._save_active_project()
|
||||
|
||||
def load_context_preset(self, name: str) -> models.ContextPreset:
|
||||
presets = self.context_preset_manager.load_all(self.project)
|
||||
presets_result = self.context_preset_manager.load_all(self.project)
|
||||
if not presets_result.ok:
|
||||
raise RuntimeError(f"Failed to load context presets: {presets_result.errors}")
|
||||
presets = presets_result.data
|
||||
if name not in presets:
|
||||
raise KeyError(f"Context preset '{name}' not found.")
|
||||
preset = presets[name]
|
||||
|
||||
@@ -21,7 +21,9 @@ def project_dict():
|
||||
|
||||
def test_manager_load_all(project_dict):
|
||||
manager = ContextPresetManager()
|
||||
presets = manager.load_all(project_dict)
|
||||
result = manager.load_all(project_dict)
|
||||
assert result.ok, f"load_all failed: {result.errors}"
|
||||
presets = result.data
|
||||
assert "test_preset" in presets
|
||||
assert len(presets["test_preset"].files) == 2
|
||||
assert presets["test_preset"].files[0].path == "file1.py"
|
||||
|
||||
Reference in New Issue
Block a user