test: verify skill install from ggwave audio end-to-end#770
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR adds two test-only dependencies (ovos-dinkum-listener, ovos-audio-transformer-plugin-ggwave) to pyproject.toml and introduces a new end-to-end test file validating that ggwave-encoded audio payloads trigger skill installation through SkillsStore, including a pip-disabled failure scenario. ChangesGGWave skill install test coverage
Estimated code review effort: 2 (Simple) | ~12 minutes Sequence Diagram(s)sequenceDiagram
participant Test as TestGGWaveSkillInstall
participant GGWavePlugin
participant Bus
participant SkillsStore
Test->>GGWavePlugin: feed encoded GHS audio stream
GGWavePlugin->>Bus: emit decoded GHS payload
Bus->>SkillsStore: ovos.skills.install request
SkillsStore->>SkillsStore: pip_install (mocked)
SkillsStore->>Bus: ovos.skills.install.complete or .failed
Bus->>Test: assert emitted messages
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
I've finished my rounds! Here's the state of the PR. 🏥I've aggregated the results of the automated checks for this PR below. 📋 Repo HealthKeeping the project in tip-top shape! 🏃 ✅ All required files present. Latest Version: ✅ 🏷️ Release PreviewI've checked the 'New Features' highlight reel. 📽️ Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
🌍 Locale BuildThe latest check report is officially filed. 📁 ✅ Locale properly configured (64 files, 17 languages) Locale directories found:
Localization coverage:
pyproject.toml: ✅
Build manifest: ✅ 31 locale files included in package 🔒 Security (pip-audit)Checking for any digital cooties in your dependencies... 👾 ✅ No known vulnerabilities found (110 packages scanned). 🔨 Build TestsThe build process has successfully terminated. 🏁 ✅ All versions pass
⚖️ License CheckEnsuring our EULA (if any) is still valid. 📑 ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 📚 DocsProcessing complete! Details follow. 📬 ✅ All required documentation files present. ✅ 🔎 Type CheckAnother piece of the puzzle! 🧩 ❌ mypy: 272 error(s) found
Errors (showing first 10/272)📊 CoverageMeasuring the safety net for your changes. 🥅 Files below 80% coverage (9 files)
Full report: download the 🔌 Plugin DetectionAuditing the plugin's registration and metadata. 📝 Plugin Info:
OPM Detection:
Entry Point Validation:
⊘ No Issues:
🔌 Skill Tests (ovoscope)I've verified the skill's 'GUI' elements are responsive. 🖼️ ✅ 4/38 passed ❌ **TestAdaptIntent** — 0/4
❌ **TestCancelIntentMidSentence** — 0/1
❌ **TestConverse** — 0/1
❌ **TestCountSkills** — 0/4
❌ **TestDeactivate** — 2/3
❌ **TestFallback** — 0/1
❌ **TestGlobalStopVocWithActiveSkill** — 0/1
❌ **TestGlobalStopVocabulary** — 0/2
❌ **TestIntentPipelineRouting** — 0/4
❌ **TestLangDisambiguation** — 0/4
❌ **TestNoSkills** — 0/2
❌ **TestPadatiousIntent** — 0/4
❌ **TestStopNoSkills** — 0/3
❌ **TestStopServiceNotASkill** — 0/1
❌ **TestStopSkillCanHandleFalse** — 0/1
🚌 Bus CoverageA forensic look at what's being emitted. 🔎 🔴 Coverage Summary
📊 Per-Skill Breakdown
🔍 Detailed Message Type Breakdown
|
Wire the real ggwave audio transformer plugin and SkillsStore onto a single bus and feed a genuine ggwave waveform carrying a GHS: payload; assert the decoded payload drives ovos.skills.install through to a pip install request (pip and GitHub validation mocked). Also assert the allow_pip=false path refuses the install. Adds ovos-dinkum-listener and the ggwave plugin to the test extra and bumps the ovoscope floor to >=0.20.0 for feed_audio_stream. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
55b1c2e to
0204fc5
Compare
What
Add an end-to-end test (
test/end2end/test_ggwave_skill_install.py) proving the data-over-sound skill-install path: a genuine ggwave waveform carrying aGHS:(GitHub-skill) payload installs a skill through ovos-core'sSkillsStore.How
Wires the real ggwave audio transformer plugin and
SkillsStoreonto a single bus, feeds a real ggwave waveform, and asserts the decoded payload drivesovos.skills.install→pip_install(["git+https://github.com/OpenVoiceOS/skill-hello-world"])→ovos.skills.install.complete.pip_installand GitHub validation are mocked, so nothing is fetched or installed. Also asserts theallow_pip=falsepath refuses the install.Changes
testextra: addovos-dinkum-listenerandovos-audio-transformer-plugin-ggwave; bumpovoscopefloor to>=0.20.0forfeed_audio_stream.Dependency ordering
Depends on the ovoscope streaming PR (OpenVoiceOS/ovoscope#86) and the ggwave plugin decode-in-pipeline PR (OpenVoiceOS/ovos-audio-transformer-plugin-ggwave#42) being released first; CI here goes green once those land.
Test plan
uv run pytest test/end2end/test_ggwave_skill_install.py -v— 2 passed locally.🤖 Generated with Claude Code
Summary by CodeRabbit
Tests
Chores