feat(data-analytics-demo): T-11 e2e pipeline test + visible stage banners#91
Merged
Merged
Conversation
…ners Phase 7 of the data-analytics-demo bolt-on. Makefile: `make demo` now prints a banner per stage (1/6 .. 6/6 + done) so the stage boundaries are visible in long logs. Sub-makes run sequentially inside a single recipe, so any non-zero exit halts the chain (AC-α.2). tests/test_e2e_demo.py — 4 cases covering AC-α.1〜3 + AC-δ.1: - Happy-path full pipeline: data → dbt → ml → narrative → dashboard → semantic-validate. Ollama is mocked at the client boundary so the test runs offline in CI. Asserts every expected artifact exists. - Three negative-path cases enforce AC-α.2 at the Python-API surface: missing warehouse halts ml, missing shap_summary halts narrative, missing warehouse halts dashboard. Each raises a `FileNotFoundError` with a remediation hint. The e2e test goes through the package's Python entry points rather than shelling out to `make`, so the same coverage works on Windows + Linux without depending on the shell. Local verify: - `make demo` end-to-end OK with banners visible at each stage - `ruff` + `mypy --strict` clean (21 source files) - `pytest` 36 passed (was 32; +4 e2e); coverage **87.20%** - `check-doc-drift.mjs` 0 fail / `check-adr-claims.mjs` 77/77
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
2 tasks
leagames0221-sys
added a commit
that referenced
this pull request
May 21, 2026
…ners (#91) Phase 7 of the data-analytics-demo bolt-on. Makefile: `make demo` now prints a banner per stage (1/6 .. 6/6 + done) so the stage boundaries are visible in long logs. Sub-makes run sequentially inside a single recipe, so any non-zero exit halts the chain (AC-α.2). tests/test_e2e_demo.py — 4 cases covering AC-α.1〜3 + AC-δ.1: - Happy-path full pipeline: data → dbt → ml → narrative → dashboard → semantic-validate. Ollama is mocked at the client boundary so the test runs offline in CI. Asserts every expected artifact exists. - Three negative-path cases enforce AC-α.2 at the Python-API surface: missing warehouse halts ml, missing shap_summary halts narrative, missing warehouse halts dashboard. Each raises a `FileNotFoundError` with a remediation hint. The e2e test goes through the package's Python entry points rather than shelling out to `make`, so the same coverage works on Windows + Linux without depending on the shell. Local verify: - `make demo` end-to-end OK with banners visible at each stage - `ruff` + `mypy --strict` clean (21 source files) - `pytest` 36 passed (was 32; +4 e2e); coverage **87.20%** - `check-doc-drift.mjs` 0 fail / `check-adr-claims.mjs` 77/77 Co-authored-by: leagames0221-sys <leagames0221@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 7 of the data-analytics-demo bolt-on. Wires the full pipeline together with a single user-facing entry point (
make demo) and adds the end-to-end test that anchors AC-α.1〜3 + AC-δ.1.What lands
demotarget — emits a banner per stage (1/6 .. 6/6 + done) so stage boundaries are visible in long logs; sub-makes run sequentially inside a single recipe, so any non-zero exit halts the chain (AC-α.2).tests/test_e2e_demo.py— 4 cases:test_full_pipeline_produces_every_artifact): data → dbt → ml → narrative → dashboard → semantic-validate, all in one test. Asserts every artifact exists and meets its AC threshold. Ollama is mocked at the client boundary so the test is offline-safe.FileNotFoundErrorwith a remediation hint.The e2e test goes through the package's Python entry points rather than shelling out to
make, so the same coverage works on Windows + Linux CI without depending on the shell.AC coverage
make demoruns data → dbt → ml → narrative → dashboard in order, exit 0 if all passtest_full_pipeline_produces_every_artifactprintf "========== [demo N/6] X ==========\n"per stagemake demoend-to-end without manual interventionLocal verify
make demoend-to-end OK with banners visible at each stageruff+mypy --strictclean (21 source files)pytest36 passed (was 32; +4 e2e); coverage 87.20%check-doc-drift.mjs0 fail /check-adr-claims.mjs77/77Test plan