Private
Public Access
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()
|
self._save_active_project()
|
||||||
|
|
||||||
def load_context_preset(self, name: str) -> models.ContextPreset:
|
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:
|
if name not in presets:
|
||||||
raise KeyError(f"Context preset '{name}' not found.")
|
raise KeyError(f"Context preset '{name}' not found.")
|
||||||
preset = presets[name]
|
preset = presets[name]
|
||||||
|
|||||||
@@ -21,7 +21,9 @@ def project_dict():
|
|||||||
|
|
||||||
def test_manager_load_all(project_dict):
|
def test_manager_load_all(project_dict):
|
||||||
manager = ContextPresetManager()
|
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 "test_preset" in presets
|
||||||
assert len(presets["test_preset"].files) == 2
|
assert len(presets["test_preset"].files) == 2
|
||||||
assert presets["test_preset"].files[0].path == "file1.py"
|
assert presets["test_preset"].files[0].path == "file1.py"
|
||||||
|
|||||||
Reference in New Issue
Block a user