test(vst): make the VST-pack download test runnable + add a test CI#57
test(vst): make the VST-pack download test runnable + add a test CI#57mhglover wants to merge 1 commit into
Conversation
The VST download path shipped with zero runnable coverage: its end-to-end test imported `from tools import content_packs` — a core-repo module absent here (`tools/` isn't a package in this repo) — so pytest couldn't even collect the file, and there was no test workflow at all (only VST3-build jobs). - Rebuild the pack inline (same nested sliced layout content_packs.build_vst_pack emits) so the download worker + loader are exercised without the core import. - Add .github/workflows/tests.yml: pytest + node --test on every PR/push. - Quarantine 3 pre-existing, unrelated failures (watcher/manifest) via xfail so CI protects the rest of the suite; drop each marker in the PR that fixes it. Signed-off-by: Matthew Harris Glover <matthew@harrisglover.com>
|
Warning Review limit reached
Next review available in: 21 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
Follow-up to the opt-in VST-pack work (#55): the VST download path shipped with zero runnable test coverage, and this repo had no test CI — only the four VST3-build workflows.
tests/test_vst_pack_download.pywas un-collectable. It didfrom tools import content_packs— a module that lives in the core feedBack repo, not here (tools/isn't even a package in this repo). pytest failed at collection, so the end-to-end download test (stream → sha256-verify → nested-extract → loader-finds-it) never ran, and neither did the sha-mismatch rejection or the per-platform slice selection.Changes
content_packs.build_vst_packemits (amps/Foo.vst3/Contents/<platform-dir>/…, foreign platform dirs dropped) instead of importing the core tool. Same contract exercised — the real_download_vst_packworker and_bundled_vst_plugins()loader — with no cross-repo import. All 3 tests now pass..github/workflows/tests.yml— runspytest+node --test tests/*.test.json every PR/push. First test CI in the repo.xfail(strict=False)with a "drop the marker in the PR that fixes it" note — so introducing CI protects the rest of the suite instead of blocking on reds that predate it.Verification
Run exactly as the workflow does:
pytest tests/→ 30 passed, 4 skipped, 3 xfailed (0 failures)node --test tests/*.test.js→ 4 passThe 3 new/fixed VST tests exercise: successful download+extract+load, sha256-mismatch rejection (nothing installed), and current-platform slice selection.
Commit is DCO signed off.