test: fix broken tests across suite and resolve port conflicts

This commit is contained in:
2026-03-11 23:49:23 -04:00
parent 036c2f360a
commit 1a14cee3ce
6 changed files with 113 additions and 39 deletions

View File

@@ -33,9 +33,16 @@ def _make_app(**kwargs):
app.ui_new_ticket_desc = ""
app.ui_new_ticket_target = ""
app.ui_new_ticket_deps = ""
app.ui_new_ticket_deps = ""
app.ui_selected_ticket_id = ""
app.is_viewing_prior_session = False
app.ui_separate_task_dag = False
app.ui_separate_tier1 = False
app.ui_separate_tier2 = False
app.ui_separate_tier3 = False
app.ui_separate_tier4 = False
app.show_windows = {}
app.proposed_tracks = []
app._avg_ticket_time = 300
mock_engine = MagicMock()
mock_engine._pause_event = MagicMock()
mock_engine._pause_event.is_set.return_value = False

View File

@@ -14,7 +14,6 @@ def test_load_all_merged(tmp_path, monkeypatch):
global_file.write_text("""
[presets.global_only]
system_prompt = "global prompt"
temperature = 0.5
[presets.override_me]
system_prompt = "original prompt"
@@ -24,7 +23,6 @@ system_prompt = "original prompt"
project_file.write_text("""
[presets.project_only]
system_prompt = "project prompt"
max_output_tokens = 100
[presets.override_me]
system_prompt = "overridden prompt"
@@ -38,9 +36,7 @@ system_prompt = "overridden prompt"
assert len(presets) == 3
assert presets["global_only"].system_prompt == "global prompt"
assert presets["global_only"].temperature == 0.5
assert presets["project_only"].system_prompt == "project prompt"
assert presets["project_only"].max_output_tokens == 100
assert presets["override_me"].system_prompt == "overridden prompt"
def test_save_preset_global(tmp_path, monkeypatch):
@@ -49,14 +45,13 @@ def test_save_preset_global(tmp_path, monkeypatch):
monkeypatch.setattr("src.presets.get_global_presets_path", lambda: global_file)
pm = PresetManager()
preset = Preset(name="new_global", system_prompt="new global prompt", temperature=0.7)
preset = Preset(name="new_global", system_prompt="new global prompt")
pm.save_preset(preset, scope="global")
assert global_file.exists()
loaded_presets = pm.load_all()
assert "new_global" in loaded_presets
assert loaded_presets["new_global"].system_prompt == "new global prompt"
assert loaded_presets["new_global"].temperature == 0.7
def test_save_preset_project(tmp_path, monkeypatch):
"""Tests saving a preset to the project scope."""
@@ -69,7 +64,7 @@ def test_save_preset_project(tmp_path, monkeypatch):
monkeypatch.setattr("src.presets.get_project_presets_path", lambda p: project_file)
pm = PresetManager(project_root=project_root)
preset = Preset(name="new_project", system_prompt="new project prompt", max_output_tokens=500)
preset = Preset(name="new_project", system_prompt="new project prompt")
pm.save_preset(preset, scope="project")
assert project_file.exists()
@@ -79,7 +74,6 @@ def test_save_preset_project(tmp_path, monkeypatch):
loaded_presets = pm.load_all()
assert "new_project" in loaded_presets
assert loaded_presets["new_project"].system_prompt == "new project prompt"
assert loaded_presets["new_project"].max_output_tokens == 500
def test_save_preset_project_no_root():
"""Tests that saving to project scope fails if no project root is provided."""

View File

@@ -54,8 +54,7 @@ def test_preset_switching(live_gui):
global_presets_path.write_text(tomli_w.dumps({
"presets": {
"TestGlobal": {
"system_prompt": "Global Prompt",
"temperature": 0.7
"system_prompt": "Global Prompt"
}
}
}))
@@ -64,12 +63,10 @@ def test_preset_switching(live_gui):
project_presets_path.write_text(tomli_w.dumps({
"presets": {
"TestProject": {
"system_prompt": "Project Prompt",
"temperature": 0.3
"system_prompt": "Project Prompt"
},
"TestGlobal": { # Override
"system_prompt": "Overridden Prompt",
"temperature": 0.5
"system_prompt": "Overridden Prompt"
}
}
}))
@@ -93,37 +90,35 @@ def test_preset_switching(live_gui):
"callback": "_apply_preset",
"args": ["TestGlobal", "global"]
})
time.sleep(1)
time.sleep(2)
# Verify state
state = client.get_gui_state()
assert state["global_preset_name"] == "TestGlobal"
assert state["global_system_prompt"] == "Overridden Prompt"
assert state["temperature"] == 0.5
assert state.get("global_preset_name") == "TestGlobal", f"Expected TestGlobal, got {state.get('global_preset_name')}. Full state: {state}"
assert state.get("global_system_prompt") == "Overridden Prompt", f"Expected Overridden Prompt, got {state.get('global_system_prompt')}"
# Apply Project Preset
client.push_event("custom_callback", {
"callback": "_apply_preset",
"args": ["TestProject", "project"]
})
time.sleep(1)
time.sleep(2)
state = client.get_gui_state()
assert state["project_preset_name"] == "TestProject"
assert state["project_system_prompt"] == "Project Prompt"
assert state["temperature"] == 0.3
assert state.get("project_preset_name") == "TestProject", f"Expected TestProject, got {state.get('project_preset_name')}. Full state: {state}"
assert state.get("project_system_prompt") == "Project Prompt", f"Expected Project Prompt, got {state.get('project_system_prompt')}"
# Select "None"
client.push_event("custom_callback", {
"callback": "_apply_preset",
"args": ["None", "global"]
})
time.sleep(1)
time.sleep(2)
state = client.get_gui_state()
assert not state.get("global_preset_name") # Should be None or ""
assert not state.get("global_preset_name"), f"Expected global_preset_name to be empty, got {state.get('global_preset_name')}" # Should be None or ""
# Prompt remains from previous application
assert state["global_system_prompt"] == "Overridden Prompt"
assert state.get("global_system_prompt") == "Overridden Prompt"
finally:
# Cleanup
@@ -138,22 +133,26 @@ def test_preset_manager_modal(live_gui):
# Open Modal
client.set_value("show_preset_manager_modal", True)
time.sleep(1)
time.sleep(2)
# Create New Preset via Modal Logic (triggering the callback directly for reliability in headless)
client.push_event("custom_callback", {
"callback": "_cb_save_preset",
"args": ["ModalPreset", "Modal Content", 0.9, 1.0, 4096, "global"]
"args": ["ModalPreset", "Modal Content", "global"]
})
time.sleep(2)
time.sleep(3)
# Verify file exists
assert global_presets_path.exists()
if not global_presets_path.exists():
state = client.get_gui_state()
assert global_presets_path.exists(), f"Global presets file not found at {global_presets_path}. Full state: {state}"
with open(global_presets_path, "rb") as f:
import tomllib
data = tomllib.load(f)
assert "ModalPreset" in data["presets"]
assert data["presets"]["ModalPreset"]["temperature"] == 0.9
assert data["presets"]["ModalPreset"]["system_prompt"] == "Modal Content"
# Delete Preset via Modal Logic
client.push_event("custom_callback", {

View File

@@ -20,15 +20,17 @@ class TestThemeNervFx(unittest.TestCase):
# Assert
mock_imgui.get_foreground_draw_list.assert_called_once()
# height is 600, range(0, 600, 2) is 300 calls
self.assertEqual(mock_draw_list.add_line.call_count, 300)
# Vignette: v_steps = 15. height=600 is plenty for all insets.
self.assertEqual(mock_draw_list.add_rect.call_count, 15)
# Noise: 30 calls to add_rect_filled
self.assertEqual(mock_draw_list.add_rect_filled.call_count, 30)
# width is 800, range(0, 800, 3) is 267 calls
# total = 300 + 267 = 567 calls
self.assertEqual(mock_draw_list.add_line.call_count, 567)
# Vignette: v_steps = 20. height=600 is plenty for all insets.
self.assertEqual(mock_draw_list.add_rect.call_count, 20)
# Noise: 40 calls to add_rect_filled
self.assertEqual(mock_draw_list.add_rect_filled.call_count, 40)
# Verify some calls
mock_draw_list.add_line.assert_any_call((0.0, 0.0), (800.0, 0.0), 0x12345678, 1.0)
mock_draw_list.add_line.assert_any_call((0.0, 598.0), (800.0, 598.0), 0x12345678, 1.0)
mock_draw_list.add_line.assert_any_call((0.0, 0.0), (800.0, 0.0), 0x12345678, 1.2)
mock_draw_list.add_line.assert_any_call((0.0, 598.0), (800.0, 598.0), 0x12345678, 0.8)
@patch("src.theme_nerv_fx.imgui")
def test_crt_filter_disabled(self, mock_imgui):