Skip to content

test(skills): add pptx extraction integration coverage (#1057)#1128

Merged
katriendg merged 6 commits intomicrosoft:mainfrom
AhmedMustafa249:PPTX-extraction-integration-tests-with-real-.pptx-fixture
Mar 24, 2026
Merged

test(skills): add pptx extraction integration coverage (#1057)#1128
katriendg merged 6 commits intomicrosoft:mainfrom
AhmedMustafa249:PPTX-extraction-integration-tests-with-real-.pptx-fixture

Conversation

@AhmedMustafa249
Copy link
Copy Markdown
Contributor

Pull Request

Description

Add real-fixture integration coverage for the experimental PowerPoint extraction pipeline.
This change adds a committed .pptx fixture plus pytest integration tests that invoke extract_content.main() through its normal CLI path and verify the actual extracted artifacts:

  • global/style.yaml
  • per-slide content.yaml
  • extracted image output
  • metadata, speaker notes, and resolved theme colors

It also adds a shared pytest fixture-path helper so the committed PPTX fixture is referenced consistently across tests.

Related Issue(s)

Fixes #1057

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update

Infrastructure & Configuration:

  • GitHub Actions workflow
  • Linting configuration (markdown, PowerShell, etc.)
  • Security configuration
  • DevContainer configuration
  • Dependency update

Other:

  • Script/automation (.ps1, .sh, .py)
  • Other (please describe): PowerPoint extraction integration test coverage with a real .pptx fixture

Testing

Ran targeted pytest coverage for the new integration tests:

"/workspaces/hve-core/.github/skills/experimental/powerpoint/.venv/bin/python" -m pytest tests/test_extract_content_integration.py
Result:
============================= test session starts ==============================
platform linux -- Python 3.11.15, pytest-9.0.2, pluggy-1.6.0
rootdir: /workspaces/hve-core/.github/skills/experimental/powerpoint
configfile: pyproject.toml
plugins: cov-7.0.0
collected 2 items
tests/test_extract_content_integration.py ..                             [100%]
============================== 2 passed in 0.58s ===============================

Manual extraction QA also passed by running scripts/extract_content.py against the committed fixture and confirming:

  • global/style.yaml was written
  • slide-001/content.yaml and slide-002/content.yaml were written
  • slide-002/images/image-01.png was extracted
  • expected metadata and resolved theme colors were present

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)
  • Tests added for new functionality (if applicable)

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Skill structure validation: npm run validate:skills
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps
  • Plugin freshness: npm run plugin:generate

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege

Additional Notes

The tests intentionally do not mock Presentation or file I/O. They only patch sys.argv so main() runs through its normal CLI argument parsing path while still exercising the real extraction pipeline against the committed fixture.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@AhmedMustafa249 AhmedMustafa249 requested a review from a team as a code owner March 19, 2026 19:05
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.10%. Comparing base (7d63c6d) to head (5715a8e).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1128      +/-   ##
==========================================
+ Coverage   86.90%   87.10%   +0.20%     
==========================================
  Files          59       59              
  Lines        8774     8774              
==========================================
+ Hits         7625     7643      +18     
+ Misses       1149     1131      -18     
Flag Coverage Δ
pester 85.32% <ø> (-0.02%) ⬇️
pytest 91.53% <ø> (+0.75%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

@katriendg katriendg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking this one, running CI and we should be able to merge.

@katriendg
Copy link
Copy Markdown
Contributor

@AhmedMustafa249 - There is a minor Python linting issue, can you fix by running ruff check --fix . in the right folder and re-run npm run lint:py to make sure it passes? Thanks

@katriendg katriendg merged commit 772628b into microsoft:main Mar 24, 2026
33 checks passed
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.

test(skills): add PPTX extraction integration tests with real .pptx fixture

4 participants