Skip to content

Conversation

@JarbasAl
Copy link
Member

@JarbasAl JarbasAl commented Jun 9, 2025

moved to the new end2end test framework https://github.com/TigreGotico/ovoscope

Summary by CodeRabbit

  • Tests
    • Removed a large set of end-to-end and integration test skills, test cases, and associated resources.
    • Added new tests to verify system behavior when no skills are loaded.
  • Chores
    • Deleted several GitHub Actions workflows for end-to-end and integration tests.
    • Updated test dependencies, replacing a backend client with a new package.

@coderabbitai
Copy link

coderabbitai bot commented Jun 9, 2025

Warning

Rate limit exceeded

@JarbasAl has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 19 minutes and 17 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between d043d43 and 9e21392.

📒 Files selected for processing (80)
  • .coveragerc (1 hunks)
  • .github/workflows/coverage.yml (1 hunks)
  • .github/workflows/end2end_tests.yml (0 hunks)
  • .github/workflows/integration_tests.yml (0 hunks)
  • .github/workflows/unit_tests.yml (3 hunks)
  • .gitignore (1 hunks)
  • codecov.yml (0 hunks)
  • requirements/requirements.txt (1 hunks)
  • requirements/tests.txt (1 hunks)
  • test/end2end/metadata-test-plugin/metadata_test/__init__.py (0 hunks)
  • test/end2end/metadata-test-plugin/setup.py (0 hunks)
  • test/end2end/minicroft.py (0 hunks)
  • test/end2end/routing/test_sched.py (0 hunks)
  • test/end2end/routing/test_session.py (0 hunks)
  • test/end2end/session/test_blacklist.py (0 hunks)
  • test/end2end/session/test_complete_failure.py (0 hunks)
  • test/end2end/session/test_converse.py (0 hunks)
  • test/end2end/session/test_fallback.py (0 hunks)
  • test/end2end/session/test_get_response.py (0 hunks)
  • test/end2end/session/test_ocp.py (0 hunks)
  • test/end2end/session/test_sched.py (0 hunks)
  • test/end2end/session/test_session.py (0 hunks)
  • test/end2end/session/test_stop.py (0 hunks)
  • test/end2end/session/test_transformers.py (0 hunks)
  • test/end2end/skill-converse_test/__init__.py (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/converse_off.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/converse_on.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/deactivate.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/get.dialog (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/question.dialog (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test2.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test3.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response3.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response_cascade.intent (0 hunks)
  • test/end2end/skill-converse_test/setup.py (0 hunks)
  • test/end2end/skill-fake-fm/__init__.py (0 hunks)
  • test/end2end/skill-fake-fm/setup.py (0 hunks)
  • test/end2end/skill-new-stop/__init__.py (0 hunks)
  • test/end2end/skill-new-stop/locale/en-us/vocab/HelloWorldKeyword.voc (0 hunks)
  • test/end2end/skill-new-stop/setup.py (0 hunks)
  • test/end2end/skill-old-stop/__init__.py (0 hunks)
  • test/end2end/skill-old-stop/locale/en-us/vocab/HelloWorldKeyword.voc (0 hunks)
  • test/end2end/skill-old-stop/setup.py (0 hunks)
  • test/end2end/skill-ovos-fakewiki/__init__.py (0 hunks)
  • test/end2end/skill-ovos-fakewiki/setup.py (0 hunks)
  • test/end2end/skill-ovos-fallback-unknown/__init__.py (0 hunks)
  • test/end2end/skill-ovos-fallback-unknown/locale/en-us/unknown.dialog (0 hunks)
  • test/end2end/skill-ovos-fallback-unknown/setup.py (0 hunks)
  • test/end2end/skill-ovos-hello-world/MANIFEST.in (0 hunks)
  • test/end2end/skill-ovos-hello-world/__init__.py (0 hunks)
  • test/end2end/skill-ovos-hello-world/locale/en-us/dialog/hello.world.dialog (0 hunks)
  • test/end2end/skill-ovos-hello-world/locale/en-us/vocab/HelloWorldKeyword.voc (0 hunks)
  • test/end2end/skill-ovos-hello-world/setup.py (0 hunks)
  • test/end2end/skill-ovos-schedule/MANIFEST.in (0 hunks)
  • test/end2end/skill-ovos-schedule/__init__.py (0 hunks)
  • test/end2end/skill-ovos-schedule/locale/en-us/dialog/done.dialog (0 hunks)
  • test/end2end/skill-ovos-schedule/locale/en-us/dialog/trigger.dialog (0 hunks)
  • test/end2end/skill-ovos-schedule/locale/en-us/vocab/Schedule.voc (0 hunks)
  • test/end2end/skill-ovos-schedule/setup.py (0 hunks)
  • test/end2end/skill-ovos-slow-fallback/__init__.py (0 hunks)
  • test/end2end/skill-ovos-slow-fallback/setup.py (0 hunks)
  • test/end2end/test_helloworld.py (1 hunks)
  • test/end2end/test_no_skills.py (1 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/__init__.py (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/More.voc (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/no_answer.dialog (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/search_fakewiki.intent (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/setup.py (0 hunks)
  • test/integrationtests/common_query/test_continuous_dialog.py (0 hunks)
  • test/integrationtests/common_query/test_skill.py (0 hunks)
  • test/integrationtests/ovos_tskill_abort/__init__.py (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/question.dialog (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test.intent (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test2.intent (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test3.intent (0 hunks)
  • test/integrationtests/ovos_tskill_abort/readme.md (0 hunks)
  • test/integrationtests/ovos_tskill_abort/setup.py (0 hunks)
  • test/integrationtests/test_workshop.py (0 hunks)

Walkthrough

This change removes all end-to-end and integration test workflows, associated test skills, and their supporting files from the repository. It also updates the unit test workflow to run both unit and end-to-end tests, modifies test dependencies, and introduces a minimal new end-to-end test to verify system behavior when no skills are loaded.

Changes

Files/Paths Change Summary
.github/workflows/end2end_tests.yml, .github/workflows/integration_tests.yml Deleted GitHub Actions workflows for end-to-end and integration tests.
.github/workflows/unit_tests.yml Updated: renamed, expanded Python matrix, modified dependencies, merged e2e tests, changed coverage flags.
requirements/tests.txt Replaced ovos-backend-client with ovoscope in test requirements.
test/end2end/, test/integrationtests/ Deleted all end-to-end and integration test modules, test skills, locale files, setup scripts, and related assets.
test/end2end/test_no_skills.py Added new minimal end-to-end test verifying system behavior with no skills loaded.

Sequence Diagram(s)

sequenceDiagram
    participant Tester
    participant End2EndTest
    participant CoreSystem

    Tester->>End2EndTest: Start test (no skills loaded)
    End2EndTest->>CoreSystem: Send utterance message ("hello world")
    CoreSystem-->>End2EndTest: Emit error sound message
    CoreSystem-->>End2EndTest: Emit complete intent failure message
    CoreSystem-->>End2EndTest: Emit utterance handled message
    End2EndTest->>Tester: Assert expected message sequence received
Loading

Possibly related PRs

  • OpenVoiceOS/ovos-core#558: Deletes end-to-end and integration test workflows, while this PR adds a new e2e workflow and modifies unit test workflows; both involve test workflow changes.

Suggested labels

refactor, ignore-for-release

Poem

A warren once filled with tests galore,
Now swept and cleared from burrow floor.
End-to-end and skills, all packed away,
With unit hops to save the day.
Yet a new test sprouts where old ones went—
The rabbit ensures things still make sense!
🐇✨

✨ Finishing Touches
  • 📝 Generate Docstrings

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@codecov
Copy link

codecov bot commented Jun 9, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 56.33%. Comparing base (23f0bab) to head (a3a20c7).
Report is 258 commits behind head on dev.

Additional details and impacted files
@@             Coverage Diff             @@
##              dev     #691       +/-   ##
===========================================
- Coverage   75.33%   56.33%   -19.01%     
===========================================
  Files          15       15               
  Lines        3094     1752     -1342     
===========================================
- Hits         2331      987     -1344     
- Misses        763      765        +2     
Flag Coverage Δ
ovoscope 55.82% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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

@JarbasAl JarbasAl requested review from a team, NeonDaniel and mikejgray June 9, 2025 01:31
@JarbasAl JarbasAl marked this pull request as ready for review June 9, 2025 01:59
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d2a1276 and 6f31514.

📒 Files selected for processing (74)
  • .github/workflows/end2end_tests.yml (0 hunks)
  • .github/workflows/integration_tests.yml (0 hunks)
  • .github/workflows/unit_tests.yml (4 hunks)
  • requirements/tests.txt (1 hunks)
  • test/end2end/metadata-test-plugin/metadata_test/__init__.py (0 hunks)
  • test/end2end/metadata-test-plugin/setup.py (0 hunks)
  • test/end2end/minicroft.py (0 hunks)
  • test/end2end/routing/test_sched.py (0 hunks)
  • test/end2end/routing/test_session.py (0 hunks)
  • test/end2end/session/test_blacklist.py (0 hunks)
  • test/end2end/session/test_complete_failure.py (0 hunks)
  • test/end2end/session/test_converse.py (0 hunks)
  • test/end2end/session/test_fallback.py (0 hunks)
  • test/end2end/session/test_get_response.py (0 hunks)
  • test/end2end/session/test_ocp.py (0 hunks)
  • test/end2end/session/test_sched.py (0 hunks)
  • test/end2end/session/test_session.py (0 hunks)
  • test/end2end/session/test_stop.py (0 hunks)
  • test/end2end/session/test_transformers.py (0 hunks)
  • test/end2end/skill-converse_test/__init__.py (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/converse_off.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/converse_on.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/deactivate.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/get.dialog (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/question.dialog (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test2.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test3.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response3.intent (0 hunks)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response_cascade.intent (0 hunks)
  • test/end2end/skill-converse_test/setup.py (0 hunks)
  • test/end2end/skill-fake-fm/__init__.py (0 hunks)
  • test/end2end/skill-fake-fm/setup.py (0 hunks)
  • test/end2end/skill-new-stop/__init__.py (0 hunks)
  • test/end2end/skill-new-stop/locale/en-us/vocab/HelloWorldKeyword.voc (0 hunks)
  • test/end2end/skill-new-stop/setup.py (0 hunks)
  • test/end2end/skill-old-stop/__init__.py (0 hunks)
  • test/end2end/skill-old-stop/locale/en-us/vocab/HelloWorldKeyword.voc (0 hunks)
  • test/end2end/skill-old-stop/setup.py (0 hunks)
  • test/end2end/skill-ovos-fakewiki/__init__.py (0 hunks)
  • test/end2end/skill-ovos-fakewiki/setup.py (0 hunks)
  • test/end2end/skill-ovos-fallback-unknown/__init__.py (0 hunks)
  • test/end2end/skill-ovos-fallback-unknown/locale/en-us/unknown.dialog (0 hunks)
  • test/end2end/skill-ovos-fallback-unknown/setup.py (0 hunks)
  • test/end2end/skill-ovos-hello-world/MANIFEST.in (0 hunks)
  • test/end2end/skill-ovos-hello-world/__init__.py (0 hunks)
  • test/end2end/skill-ovos-hello-world/locale/en-us/dialog/hello.world.dialog (0 hunks)
  • test/end2end/skill-ovos-hello-world/locale/en-us/vocab/HelloWorldKeyword.voc (0 hunks)
  • test/end2end/skill-ovos-hello-world/setup.py (0 hunks)
  • test/end2end/skill-ovos-schedule/MANIFEST.in (0 hunks)
  • test/end2end/skill-ovos-schedule/__init__.py (0 hunks)
  • test/end2end/skill-ovos-schedule/locale/en-us/dialog/done.dialog (0 hunks)
  • test/end2end/skill-ovos-schedule/locale/en-us/dialog/trigger.dialog (0 hunks)
  • test/end2end/skill-ovos-schedule/locale/en-us/vocab/Schedule.voc (0 hunks)
  • test/end2end/skill-ovos-schedule/setup.py (0 hunks)
  • test/end2end/skill-ovos-slow-fallback/__init__.py (0 hunks)
  • test/end2end/skill-ovos-slow-fallback/setup.py (0 hunks)
  • test/end2end/test_no_skills.py (1 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/__init__.py (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/More.voc (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/no_answer.dialog (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/search_fakewiki.intent (0 hunks)
  • test/integrationtests/common_query/ovos_tskill_fakewiki/setup.py (0 hunks)
  • test/integrationtests/common_query/test_continuous_dialog.py (0 hunks)
  • test/integrationtests/common_query/test_skill.py (0 hunks)
  • test/integrationtests/ovos_tskill_abort/__init__.py (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/question.dialog (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test.intent (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test2.intent (0 hunks)
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test3.intent (0 hunks)
  • test/integrationtests/ovos_tskill_abort/readme.md (0 hunks)
  • test/integrationtests/ovos_tskill_abort/setup.py (0 hunks)
  • test/integrationtests/test_workshop.py (0 hunks)
💤 Files with no reviewable changes (71)
  • test/end2end/skill-converse_test/locale/en-us/test_get_response3.intent
  • test/end2end/skill-converse_test/locale/en-us/get.dialog
  • test/end2end/skill-converse_test/locale/en-us/test3.intent
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test3.intent
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test.intent
  • test/end2end/skill-converse_test/locale/en-us/test2.intent
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/no_answer.dialog
  • test/end2end/skill-converse_test/locale/en-us/test_get_response.intent
  • test/end2end/skill-ovos-schedule/locale/en-us/dialog/trigger.dialog
  • test/end2end/skill-converse_test/locale/en-us/question.dialog
  • test/integrationtests/ovos_tskill_abort/locale/en-us/question.dialog
  • test/end2end/skill-old-stop/locale/en-us/vocab/HelloWorldKeyword.voc
  • test/end2end/skill-converse_test/locale/en-us/test.intent
  • test/end2end/skill-converse_test/locale/en-us/deactivate.intent
  • test/end2end/skill-ovos-hello-world/locale/en-us/dialog/hello.world.dialog
  • test/end2end/skill-converse_test/locale/en-us/test_get_response_cascade.intent
  • test/integrationtests/ovos_tskill_abort/locale/en-us/test2.intent
  • test/end2end/skill-ovos-schedule/locale/en-us/vocab/Schedule.voc
  • test/end2end/skill-ovos-schedule/locale/en-us/dialog/done.dialog
  • test/end2end/skill-new-stop/locale/en-us/vocab/HelloWorldKeyword.voc
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/search_fakewiki.intent
  • test/end2end/skill-ovos-hello-world/locale/en-us/vocab/HelloWorldKeyword.voc
  • test/end2end/skill-converse_test/locale/en-us/converse_off.intent
  • test/integrationtests/common_query/ovos_tskill_fakewiki/setup.py
  • test/end2end/skill-ovos-schedule/setup.py
  • test/end2end/skill-ovos-schedule/MANIFEST.in
  • test/integrationtests/common_query/ovos_tskill_fakewiki/locale/en-us/More.voc
  • test/end2end/skill-ovos-hello-world/MANIFEST.in
  • test/end2end/skill-converse_test/locale/en-us/converse_on.intent
  • test/end2end/skill-old-stop/setup.py
  • test/integrationtests/ovos_tskill_abort/readme.md
  • test/integrationtests/ovos_tskill_abort/setup.py
  • test/end2end/skill-converse_test/setup.py
  • test/end2end/skill-ovos-hello-world/setup.py
  • test/end2end/skill-fake-fm/setup.py
  • test/end2end/skill-new-stop/setup.py
  • test/end2end/skill-ovos-fallback-unknown/locale/en-us/unknown.dialog
  • test/end2end/skill-old-stop/init.py
  • test/end2end/minicroft.py
  • test/end2end/skill-ovos-hello-world/init.py
  • test/end2end/skill-ovos-slow-fallback/setup.py
  • test/end2end/skill-ovos-fakewiki/init.py
  • test/end2end/metadata-test-plugin/metadata_test/init.py
  • test/end2end/skill-ovos-fakewiki/setup.py
  • test/integrationtests/test_workshop.py
  • .github/workflows/integration_tests.yml
  • test/end2end/skill-ovos-fallback-unknown/setup.py
  • test/end2end/skill-new-stop/init.py
  • test/integrationtests/common_query/test_continuous_dialog.py
  • test/end2end/skill-ovos-slow-fallback/init.py
  • test/integrationtests/common_query/test_skill.py
  • test/end2end/routing/test_session.py
  • test/end2end/session/test_session.py
  • test/end2end/metadata-test-plugin/setup.py
  • test/end2end/routing/test_sched.py
  • .github/workflows/end2end_tests.yml
  • test/end2end/skill-fake-fm/init.py
  • test/end2end/skill-ovos-fallback-unknown/init.py
  • test/end2end/session/test_transformers.py
  • test/integrationtests/ovos_tskill_abort/init.py
  • test/end2end/skill-ovos-schedule/init.py
  • test/end2end/session/test_sched.py
  • test/end2end/session/test_complete_failure.py
  • test/end2end/session/test_blacklist.py
  • test/end2end/session/test_get_response.py
  • test/end2end/session/test_stop.py
  • test/end2end/session/test_fallback.py
  • test/end2end/session/test_ocp.py
  • test/end2end/session/test_converse.py
  • test/integrationtests/common_query/ovos_tskill_fakewiki/init.py
  • test/end2end/skill-converse_test/init.py
🔇 Additional comments (8)
.github/workflows/unit_tests.yml (6)

1-1: LGTM: Workflow name change reflects expanded scope.

The rename from "Run UnitTests" to "Run Tests" accurately reflects that this workflow now runs both unit and end-to-end tests.


37-37: LGTM: Updated Python versions are appropriate.

Using Python 3.11 and 3.12 aligns with modern Python version support.


51-53: LGTM: Installation approach with expanded extras.

The use of uv for faster package installation and the expanded extras [mycroft,plugins,skills-essential,lgpl] appears appropriate for comprehensive testing coverage.


60-62: LGTM: Integration of end-to-end tests.

Adding end-to-end test execution with coverage continuation (--cov-append) properly integrates the new testing framework while maintaining coverage reporting.


72-73: LGTM: Updated codecov configuration for ovoscope.

The flags and name changes to use "ovoscope" are consistent with the framework migration.


49-49:

Details

✅ Verification successful

Verify the necessity of libfann-dev dependency.

The addition of libfann-dev as a system dependency suggests new requirements for the ovoscope framework. Please ensure this dependency is actually required for the test execution.


🏁 Script executed:

#!/bin/bash
# Description: Check if libfann-dev is referenced in the codebase or dependencies
# Expected: Find references to FANN library usage

# Search for FANN-related imports or usage
rg -i "fann|neural" --type py

Length of output: 31


🏁 Script executed:

#!/bin/bash
# Description: Broad search for any FANN references across the codebase

# 1. Search for “fann” in all files and show line numbers
rg -i "fann" -n .

# 2. Look for C/C++ includes of fann headers
rg -n "#include.*fann" .

# 3. Check common Python dependency files
rg -i "fann" -n requirements*.txt setup.py

# 4. Search for mentions of “pyfann” or other Python wrappers
rg -i "pyfann" -n .

Length of output: 215


🏁 Script executed:

#!/bin/bash
# Locate and display context around the apt install step in the unit_tests workflow

# Find the workflow file
workflow=$(fd -e yml -p unit_tests .github/workflows)
echo "Found workflow: $workflow"

# Show the apt install line and surrounding lines
rg -n "apt install python3-dev" -n "$workflow"
sed -n '40,70p' "$workflow"

Length of output: 1592


No change needed: libfann-dev is required for FANN support

The requirements/lgpl.txt file declares fann2>=1.0.7,<1.1.0, and the workflow installs the lgpl extra (pip install -e .[lgpl]), which pulls in the Python FANN wrapper. The libfann-dev system package is needed to build and link the FANN C library used by fann2. Keeping this dependency ensures the tests and builds succeed.

test/end2end/test_no_skills.py (2)

1-5: LGTM: Proper imports and framework usage.

The imports are clean and correctly use the new ovoscope framework.


10-27: LGTM: Complete failure test logic is sound.

The test correctly validates the expected behavior when no skills are loaded - error sound, complete intent failure, and utterance handled events.

@JarbasAl JarbasAl marked this pull request as draft June 9, 2025 03:32
@github-actions
Copy link

github-actions bot commented Jun 9, 2025

Coverage report

This PR does not seem to contain any modification to coverable code.

@JarbasAl JarbasAl force-pushed the refactor/ovoscope branch from 4b3cb29 to b80cc05 Compare June 9, 2025 18:22
@JarbasAl JarbasAl marked this pull request as ready for review June 9, 2025 18:24
moved to the new end2end test framework https://github.com/TigreGotico/ovoscope

drop codecov for self hosted solution
@JarbasAl JarbasAl force-pushed the refactor/ovoscope branch from b80cc05 to 9e21392 Compare June 9, 2025 18:26
@JarbasAl JarbasAl merged commit c22a14e into dev Jun 9, 2025
5 of 6 checks passed
@JarbasAl JarbasAl deleted the refactor/ovoscope branch June 9, 2025 18:32
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.

2 participants