Skip to content

feat(data-analytics-demo): T-11 e2e pipeline test + visible stage banners#91

Merged
leagames0221-sys merged 1 commit into
mainfrom
feat/data-analytics-demo-t11-e2e
May 17, 2026
Merged

feat(data-analytics-demo): T-11 e2e pipeline test + visible stage banners#91
leagames0221-sys merged 1 commit into
mainfrom
feat/data-analytics-demo-t11-e2e

Conversation

@leagames0221-sys

Copy link
Copy Markdown
Owner

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

  • Makefile demo target — 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:
    • Happy path (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.
    • 3 halt-on-failure paths: missing warehouse halts ML, missing SHAP 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 CI without depending on the shell.

AC coverage

AC Behaviour Verified by
α.1 make demo runs data → dbt → ml → narrative → dashboard in order, exit 0 if all pass test_full_pipeline_produces_every_artifact
α.2 Any stage failure halts subsequent stages, non-zero exit 3 missing-artifact negative tests
α.3 Banner per stage Makefile printf "========== [demo N/6] X ==========\n" per stage
δ.1 Clean clone → make demo end-to-end without manual intervention Same as α.1

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

Test plan

  • Required CI checks green (existing 11 + python-test + python-audit)
  • No HIVE-token leaks (D-HIVE-OPACITY)

…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
@vercel

vercel Bot commented May 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
craftstack-collab Ready Ready Preview, Comment May 17, 2026 4:01pm
craftstack-knowledge Ready Ready Preview, Comment May 17, 2026 4:01pm

@leagames0221-sys leagames0221-sys merged commit 7d18cec into main May 17, 2026
12 checks passed
@leagames0221-sys leagames0221-sys deleted the feat/data-analytics-demo-t11-e2e branch May 17, 2026 16:15
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant