Skip to content

Conversation

@tmustier
Copy link
Owner

Summary

Follow-up after chart-engine typing cleanup:

  1. add direct module-boundary smoke coverage for chart-engine builder + overlays
  2. trim residual compatibility glue in chart_generator.py now that chart-engine modules are strictly typed

Changes

1) Builder/overlay smoke tests

Added tests/test_chart_engine_smoke.py with two end-to-end smoke cases that exercise clean_slides.chart_engine.builder.build_chart(...) directly:

  • bar chart with overlays
  • waterfall chart with overlays

Each test validates:

  • output PPTX is produced
  • expected chart type is present
  • expected overlay text labels are rendered in shapes

This gives lightweight regression coverage at the chart-engine boundary (without going through CLI wiring).

2) Chart-generator glue simplification

Refactored clean_slides/chart_generator.py to remove now-unnecessary dynamic attribute wrapper plumbing (_require_attr, protocol/callable casts) and use direct imports from typed chart-engine modules.

Behavior remains unchanged; this is a readability/maintainability cleanup.

Validation

  • .venv/bin/pyright
  • .venv/bin/pytest -q
  • .venv/bin/pre-commit run --all-files

@tmustier tmustier merged commit d304068 into main Feb 12, 2026
7 checks passed
@tmustier tmustier deleted the test/chart-engine-smoke-boundary branch February 12, 2026 02:23
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