test: full-pipeline e2e persona test (ovoscope)#4
Conversation
Adds test/test_e2e_persona_pipeline.py exercising the complete recognizer_loop:utterance → persona pipeline plugin → ovos-chain-of-thought-loop path using MiniCroft (ovoscope). The loop's inner brain is monkeypatched at module level so CI runs fully deterministically without any model download or network call. Also adds pyproject [e2e] extras group. Tests: - TestLooperPersonaSpeaks::test_pipeline_produces_speak - TestLooperPersonaSpeaks::test_speak_contains_loop_reply - TestLooperMemory::test_user_turn_recorded_in_memory - TestLooperMemory::test_assistant_response_recorded_in_memory - TestLooperMemory::test_unknown_session_has_empty_history - TestLooperMemory::test_same_session_accumulates_turns Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 59 minutes and 16 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
✨ 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 |
Look what I found! The automated check results are in. 🔍I've aggregated the results of the automated checks for this PR below. 🏷️ Release PreviewThe draft for the big day is ready for review. 📝 Current:
✅ PR title follows conventional commit format. 🚀 Release Channel Compatibility Predicted next version:
📋 Repo HealthEnsuring the repo isn't allergic to new features. 🤧 Latest Version: ✅ 🔒 Security (pip-audit)Ensuring our digital fortress remains impenetrable. 🏰 ✅ No known vulnerabilities found (65 packages scanned). 🔍 LintI've finished the analysis you requested. 💡 ❌ ruff: issues found — see job log ⚖️ License CheckDouble-checking the fine print for any surprises. 🔍 ✅ No license violations found (46 packages). License distribution: 11× MIT License, 9× MIT, 6× Apache Software License, 6× Apache-2.0, 2× BSD-3-Clause, 2× ISC License (ISCL), 2× PSF-2.0, 2× Python Software Foundation License, +6 more Full breakdown — 46 packages
Copyright (c) 2022 Phil Ewels Permission is hereby granted, free of charge, to any person obtaining a copy The above copyright notice and this permission notice shall be included in all THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 🔨 Build TestsThe blueprints match the build! 📐 ✅ All versions pass
📊 CoverageA bird's eye view of your test coverage landscape. 🦅 ✅ 94.3% total coverage Full report: download the 🔌 Plugin DetectionEnsuring the plugin is 'future-proof'. 🔮 ❌ Plugin Status: ERRORS (4) Plugin Info:
Plugin Types: agents.chat, agents.toolbox, agents.memory OPM Detection:
Entry Point Validation:
⊘ No Issues:
🔌 Skill Tests (ovoscope)Checking that intents fire, dialogs speak, and handlers complete cleanly. ✅ ✅ 6/6 passed ✅ TestLooperMemory — 4/4 🚌 Bus CoverageChecking for any 'silent' handlers that never get called. 🤫 Automating the boring stuff so you don't have to! 🚀 |
…heck Scope ChainOfThoughtEngine._load_brain monkeypatch to the e2e module via an autouse module-scoped fixture; the previous module-level assignment leaked into other test files and caused 3 failures (test_coverage, test_new_loops2). Merge e2e optional-dependencies into test (pin ovos-persona@dev for persona.memory support). Drop the entry_point / opm_require_found:true from opm-check.yml: opm.agents.* groups are not yet in PLUGIN_TYPE_FINDERS so the legacy skill lookup always returned not-found; set opm_require_found:false so the check is informational until the opm-check script gains agents support. Co-Authored-By: JarbasAi <jarbasai@mailfence.com>
Move the full-pipeline persona e2e test into test/end2end/ and add a dedicated ovoscope workflow for it. A session conftest repairs the missing ovos_persona/locale directory (absent from published wheels) so the real persona pipeline plugin loads and the loop is exercised end to end without network or LLM access. Point coverage at the test extra so the e2e module is collected, and align project metadata and test pins with the shared CI contract.
Replace the pytest.importorskip guard with a hard import and assert on pipeline availability so a missing dependency fails loudly. Remove the conftest locale-shim now that ovos-persona>=0.9.0a3 ships its locale resources, and pin that version and pytest<9. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds test/test_e2e_persona_pipeline.py: full e2e via ovoscope MiniCroft. Loop brain monkeypatched for determinism. 6 tests: speak through pipeline + memory.