import os import json from pathlib import Path from unittest.mock import patch def test_track_proposal_editing(app_instance): app_instance.proposed_tracks = [ {"title": "Old Title", "goal": "Old Goal"}, {"title": "Another Track", "goal": "Another Goal"} ] app_instance.proposed_tracks[0]['title'] = "New Title" app_instance.proposed_tracks[0]['goal'] = "New Goal" assert app_instance.proposed_tracks[0]['title'] == "New Title" assert app_instance.proposed_tracks[0]['goal'] == "New Goal" app_instance.proposed_tracks.pop(1) assert len(app_instance.proposed_tracks) == 1 assert app_instance.proposed_tracks[0]['title'] == "New Title" def test_conductor_setup_scan(app_instance, tmp_path): old_cwd = os.getcwd() os.chdir(tmp_path) try: cond_dir = Path("conductor") cond_dir.mkdir(exist_ok=True) (cond_dir / "index.md").write_text("Index content\nLine 2") (cond_dir / "tracks").mkdir(exist_ok=True) (cond_dir / "tracks" / "track1").mkdir(exist_ok=True) app_instance._cb_run_conductor_setup() assert "Total Files: 1" in app_instance.ui_conductor_setup_summary assert "Total Line Count: 2" in app_instance.ui_conductor_setup_summary assert "Total Tracks Found: 1" in app_instance.ui_conductor_setup_summary finally: os.chdir(old_cwd) def test_create_track(app_instance, tmp_path): old_cwd = os.getcwd() os.chdir(tmp_path) try: (Path("conductor") / "tracks").mkdir(parents=True, exist_ok=True) with patch('src.gui_2.project_manager.get_all_tracks', return_value=[]): app_instance._cb_create_track("Test Track", "Test Description", "feature") tracks_root = Path("conductor/tracks") matching_dirs = [d for d in tracks_root.iterdir() if d.is_dir() and d.name.startswith("test_track")] assert len(matching_dirs) == 1 track_dir = matching_dirs[0] assert track_dir.exists() assert (track_dir / "spec.md").exists() assert (track_dir / "plan.md").exists() assert (track_dir / "metadata.json").exists() with open(track_dir / "metadata.json", "r") as f: data = json.load(f) assert data['title'] == "Test Track" assert data['type'] == "feature" assert data['id'] == track_dir.name finally: os.chdir(old_cwd)