mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-11-03 03:12:07 +00:00
Guard the v3 TUI test's textual import, as every other TUI test does
`textual` is not a declared dependency — not in dependencies, not an extra,
not in the dev group — so it is absent from any environment built from the
lockfile. Every other TUI test opens with pytest.importorskip("textual") and
skips. This file did not, so instead of skipping it failed COLLECTION, and a
collection error takes the whole run down: the entire Python suite went red
on Linux and macOS over a module no test here can rely on.
The guard is the immediate fix. The larger finding is recorded in TODO.md:
the whole TUI test surface has been passing by not running, and the step
meant to catch that — `seedpass tui2 --check` — uses find_spec and reports
"unavailable" with a zero exit, so it passes whether or not the TUI can
start. A fresh install from the lockfile ships a TUI that does not work and
nothing in CI says so. Which way to resolve that is a product call, so it is
written down rather than decided here.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01Vtx94nXDmNgXEeThUZP4QN
This commit is contained in:
1 parent
4204a23cab
commit
dec2b0f677
2 files changed
+30
No files matched your search
@@ -235,6 +235,28 @@ everything still open, in the order it should be tackled.
|
||||
It found one real defect — the config API accepting any key and
|
||||
any value, fixed in the same session — and one property worth
|
||||
recording rather than unilaterally changing, below.
|
||||
- [ ] **`textual` is an undeclared dependency, so the entire TUI test
|
||||
surface has never run in CI.** It appears in neither
|
||||
`[tool.poetry.dependencies]`, `[tool.poetry.extras]`, nor the dev
|
||||
group, so no environment built from the lockfile has it. Every
|
||||
TUI test therefore begins `pytest.importorskip("textual")` and
|
||||
SKIPS — v2 action matrix, parity scenarios, keyboard stress,
|
||||
textual interactions, and now v3 parity. They have been passing
|
||||
by not running.
|
||||
|
||||
The check meant to notice this cannot: `seedpass tui2 --check`
|
||||
uses `importlib.util.find_spec` and reports
|
||||
`status: "unavailable"` with a zero exit, so the CI smoke step
|
||||
passes whether or not the TUI can start. A fresh install from the
|
||||
lockfile ships a TUI that does not work, and nothing in CI says
|
||||
so.
|
||||
|
||||
Decide which the TUI is: a supported feature, in which case
|
||||
declare `textual` and let those tests actually run; or an
|
||||
optional extra, in which case declare it as one, and make the
|
||||
smoke step assert something that can fail. Do not leave it as a
|
||||
dependency nobody declared and tests nobody runs.
|
||||
(Found 2026-08-20 while fixing the first CI run of this branch.)
|
||||
- [ ] **A nested export path answers 500 instead of a refusal.**
|
||||
`POST /api/v1/entry/:id/document/export` with
|
||||
`{"path": "exports/nested/secret.txt"}` fails with an opaque
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
from __future__ import annotations
|
||||
import pytest
|
||||
|
||||
# textual is not a declared dependency, so it is absent from any environment
|
||||
# built from the lockfile. Every other TUI test guards its import this way;
|
||||
# this file did not, so instead of skipping it failed COLLECTION, which takes
|
||||
# the whole run down with it -- the entire Python suite went red on Linux and
|
||||
# macOS over a module no test here can rely on.
|
||||
pytest.importorskip("textual")
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
from rich.text import Text
|
||||
from textual.widgets import DataTable
|
||||
|
||||
Reference in new issue
Block a user