test(pipeline): complete automated test suite for the pipeline feature
Adds ~115 tests pinning the Automated Workflows feature end to end: - tests/test_pipeline.py (+43): per-adapter summary correctness on known inputs, multi-step data flow, error stop/continue contract, empty / single-column / all-disabled edges, dict+file serialization round-trips, recommended_pipeline(include=…), and a synthesized demo integration run. - tests/test_cli_pipeline.py (new, 21): --recommend, dry-run-by-default, --apply output CSV + audit JSON, --steps, --strict abort, arg validation, --continue-on-error vs halt, and a save→load round-trip. Invokes the Typer app directly to bypass the license guard (house pattern). - tests/gui/test_pipeline_builder.py (+9): reorder ▲/▼, disabled edge buttons, disabled-step persistence across reorder, restore-recommended, Advanced JSON export/import, and per-tool Configure panels emitting the correct option dicts (AppTest). - tests/gui/test_pipeline_phrasing.py (new, 30): step_phrase/step_status and the adapter-key→friendly-name bridge as pure functions, incl. pluralization, column prose, and warn/error status derivation. Full suite: 2565 passed, 91 skipped. No product bugs surfaced. Documents the coverage in docs/DEVELOPER.md (test tree + a pipeline-coverage note). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -352,6 +352,8 @@ tests/
|
||||
├── test_analyze.py · test_normalize.py · test_text_clean.py
|
||||
├── test_format_standardize.py
|
||||
├── test_format_standardize_corpus.py # 199-row buyer corpus
|
||||
├── test_pipeline.py # pipeline engine: adapters, run, validate, serialize
|
||||
├── test_cli_pipeline.py # pipeline CLI: recommend/apply/strict/audit
|
||||
├── test_audit_fixes.py · test_errors.py · test_fixes_unit.py
|
||||
├── test_corpus.py · test_encodings_corpus.py · test_fixtures_sweep.py
|
||||
├── test_cli.py · test_cli_*.py · test_e2e.py · test_install.py
|
||||
@@ -365,10 +367,27 @@ tests/
|
||||
├── test_workflows.py # happy path per Ready tool
|
||||
├── test_dedup_review.py # match-group card interactions
|
||||
├── test_advanced_panels.py # config_panel widgets
|
||||
├── test_pipeline_builder.py # module-card builder: cards, reorder, JSON, run
|
||||
├── test_pipeline_phrasing.py # step_phrase/step_status + name bridge (pure fns)
|
||||
├── test_errors.py # malformed-upload error paths
|
||||
└── test_findings_panel.py # analyzer findings rendering
|
||||
```
|
||||
|
||||
### Pipeline (Automated Workflows) coverage
|
||||
|
||||
The pipeline feature is pinned end to end across four files (~115 tests):
|
||||
`test_pipeline.py` (core engine — every adapter's summary numbers, step
|
||||
data-flow, error stop/continue, empty/single-column/all-disabled edges,
|
||||
dict + file serialization round-trips, `recommended_pipeline(include=…)`,
|
||||
soft-dependency validation), `test_cli_pipeline.py` (CLI — `--recommend`,
|
||||
dry-run-by-default, `--apply` output + audit JSON, `--steps`, `--strict`,
|
||||
`--continue-on-error`, arg validation, save→load round-trip),
|
||||
`test_pipeline_builder.py` (the visual builder via AppTest — card seeding,
|
||||
toggle, reorder ▲/▼, add/remove, restore-recommended, Advanced JSON
|
||||
import/export, per-tool Configure panels emitting the right option dicts),
|
||||
and `test_pipeline_phrasing.py` (the plain-English `step_phrase`/`step_status`
|
||||
helpers and the adapter-key→friendly-name bridge as pure functions).
|
||||
|
||||
### GUI test layer
|
||||
|
||||
GUI tests drive pages with `streamlit.testing.v1.AppTest` —
|
||||
|
||||
Reference in New Issue
Block a user