conductor(plan): Mark Phase 2 tasks 2.1 + 2.2 complete (RED tests + verification) [35f22e4d]
This commit is contained in:
@@ -46,7 +46,7 @@ Focus: relocate `tests/artifacts/manualslop_layout_default.ini` to `layouts/defa
|
||||
|
||||
Focus: ship `layouts/default.ini` to `cwd/manualslop_layout.ini` when the file is missing/empty/small, before `immapp.run(...)` reads it.
|
||||
|
||||
- [~] Task 2.1: Write failing test for install behavior (Tier 3 dispatching tests/test_default_layout_install.py)
|
||||
- [x] Task 2.1 [35f22e4d]: Write failing test for install behavior (Tier 3 dispatching tests/test_default_layout_install.py)
|
||||
- WHERE: new file `tests/test_default_layout_install.py`
|
||||
- WHAT: red phase — 3 tests:
|
||||
1. `test_default_layout_installed_when_ini_missing` — `os.remove(cwd/manualslop_layout.ini)` before launch; `subprocess.Popen(sloppy_args, cwd=temp_workspace)`; wait ≥ 5s; assert `manualslop_layout.ini` exists with `[Window][Project Settings]` entry + a non-empty `DockId=` line
|
||||
@@ -54,7 +54,7 @@ Focus: ship `layouts/default.ini` to `cwd/manualslop_layout.ini` when the file i
|
||||
3. `test_default_layout_NOT_installed_when_layout_present` — pre-write a custom `[Window][CustomPanel]` INI; assert the custom panel survives (no overwrite)
|
||||
- HOW: each test spawns the app via `subprocess.Popen(["uv", "run", "python", "-u", "sloppy.py", "--enable-test-hooks"], cwd=temp_workspace, stdout=log_file, stderr=log_file, creationflags=subprocess.CREATE_NEW_PROCESS_GROUP)` (mirrors the conftest at line 792), waits 5-8s, terminates via `kill_process_tree()` (per the conftest pattern at line 853), then asserts on the saved INI
|
||||
- SAFETY: tests MUST NOT touch the repo-root `manualslop_layout.ini`; each test uses its own cwd (per `conductor/code_styleguides/workspace_paths.md`); temp workspace path = `Path("tests/artifacts/_default_layout_install_<pid>")`
|
||||
- [ ] Task 2.2: Run phase 2.1 tests; confirm RED (fails for the right reason)
|
||||
- [x] Task 2.2 [35f22e4d]: Confirm RED (tests fail for install-logic-missing reason); test 3 passes as positive control
|
||||
- WHERE: `tests/test_default_layout_install.py`
|
||||
- HOW: `uv run pytest tests/test_default_layout_install.py -v --tb=short --timeout=120`
|
||||
- Expected: 3 tests fail because no install logic exists yet; the temp-workspace INI is empty or absent post-launch
|
||||
|
||||
@@ -34,8 +34,8 @@ t1_9 = { status = "completed", commit_sha = "7577d7d", description = "Verify src
|
||||
t1_10 = { status = "completed", commit_sha = "7577d7d", description = "Commit phase 1 with git note (relocation + layouts/ stack + future Fleury target)" }
|
||||
|
||||
# Phase 2 (9 tasks)
|
||||
t2_1 = { status = "pending", commit_sha = "", description = "Write 3 failing tests in tests/test_default_layout_install.py" }
|
||||
t2_2 = { status = "pending", commit_sha = "", description = "Confirm RED (tests fail for install-logic-missing reason)" }
|
||||
t2_1 = { status = "completed", commit_sha = "35f22e4d", description = "Write 3 failing tests in tests/test_default_layout_install.py" }
|
||||
t2_2 = { status = "completed", commit_sha = "35f22e4d", description = "Confirm RED (tests fail for install-logic-missing reason)" }
|
||||
t2_3 = { status = "pending", commit_sha = "", description = "Implement _install_default_layout_if_empty helper in src/gui_2.py" }
|
||||
t2_4 = { status = "pending", commit_sha = "", description = "Wire helper into App._post_init BEFORE _diag_layout_state" }
|
||||
t2_5 = { status = "pending", commit_sha = "", description = "Add drain helper _install_default_layout_if_empty_result per data-oriented convention" }
|
||||
|
||||
Reference in New Issue
Block a user