Skip to content

Conversation

@Coldaine
Copy link
Owner

No description provided.

- Added '-p no:pytest-qt' to pytest addopts in pyproject.toml
- Fixes ImportError: libEGL.so.1 in headless/container environments
- Allows core tests to run without full graphics stack
- Qt-dependent tests can still be run when needed by removing flag

This change enables CI/CD in headless environments while maintaining
the ability to run full UI tests in graphical environments.

Related to PR-05 overlay implementation and CI improvements.
Summary:
- Environment setup and test verification in headless Linux
- 81 core tests passing (excluding Qt/DBus requiring full stack)
- Confirmed PR-05 overlay code complete
- Documented path forward to PR-06 (E2E Integration)

Key Findings:
- pytest-qt configuration fixed for headless environments
- Core coverage 58.76% (expected without graphics stack)
- Overlay implementation functionally complete
- Manual testing blocked on graphical environment

Recommendations:
- PR-05 ready for formal PR with manual validation deferred
- PR-06 design can begin in parallel
- Use tiered testing: headless for core, graphical for UI

Next Steps:
1. Execute PR-05 manual tests on KDE Plasma desktop
2. Capture screenshots/recordings
3. Begin PR-06 E2E test infrastructure
4. Complete MVP with full pipeline validation
Copilot AI review requested due to automatic review settings November 11, 2025 15:38
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR documents a status check of the Shortcut Sage project conducted in a headless Linux environment and updates the pytest configuration to support CI/CD testing without graphical dependencies.

Key Changes:

  • Added -p no:pytest-qt flag to pytest configuration for headless environment compatibility
  • Created comprehensive status document detailing test results, coverage metrics, and forward planning
  • Updated status tracking with new entry for 2025-11-11

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
pyproject.toml Added pytest-qt plugin disable flag to default test configuration
docs/updates/README.md Updated latest status reference and added new entry to status history table
docs/updates/2025-11-11-status-progress.md New comprehensive status document detailing environment setup, test results (81 passing tests, 58.76% coverage), and path forward from PR-05 to PR-06

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

--ignore=tests/integration/test_dbus.py

# Run with UI tests (requires graphics)
pytest tests/ -p no:pytest-qt
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

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

The comment "Run with UI tests (requires graphics)" is contradictory with the command that includes -p no:pytest-qt. The -p no:pytest-qt flag disables the pytest-qt plugin, which would prevent UI tests from running properly. If the intent is to run UI tests, the flag should be removed. If the intent is to run tests without pytest-qt in a headless environment, the comment should be updated to reflect that.

Suggested change
pytest tests/ -p no:pytest-qt
pytest tests/

Copilot uses AI. Check for mistakes.
"--cov-fail-under=75", # 75% for local dev (Windows can't test DBus); CI on Linux achieves 80%+
"-v"
"-v",
"-p", "no:pytest-qt" # Disable pytest-qt in headless environments
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

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

The comment "Disable pytest-qt in headless environments" is misleading because adding -p no:pytest-qt to the default addopts configuration will disable pytest-qt in ALL environments, not just headless ones. Developers with graphical environments will need to manually override this setting to run Qt tests. Consider either:

  1. Updating the comment to reflect that this disables pytest-qt by default (e.g., "Disable pytest-qt by default for CI/CD compatibility")
  2. Moving this configuration to a separate pytest profile or documenting how to enable it when needed
  3. Using environment variables or a different approach to conditionally disable the plugin only in headless environments
Suggested change
"-p", "no:pytest-qt" # Disable pytest-qt in headless environments
"-p", "no:pytest-qt" # Disable pytest-qt by default for CI/CD compatibility

Copilot uses AI. Check for mistakes.
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 94 to 99
"--cov-report=term-missing",
"--cov-report=html",
"--cov-fail-under=75", # 75% for local dev (Windows can't test DBus); CI on Linux achieves 80%+
"-v"
"-v",
"-p", "no:pytest-qt" # Disable pytest-qt in headless environments
]

Choose a reason for hiding this comment

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

P1 Badge Disable pytest-qt with invalid plugin identifier

The new addopts entry tries to turn off pytest‑qt using -p no:pytest-qt, but pytest matches plugins by their module/entrypoint name (pytestqt), not the package name with a hyphen. Because the identifier doesn’t match, the plugin still loads and will keep importing PySide during test startup, so headless runs will crash with the same libEGL.so.1 errors this change aimed to avoid. Use -p no:pytestqt (and update the accompanying docs) so the plugin is actually skipped in headless environments.

Useful? React with 👍 / 👎.

@Coldaine Coldaine merged commit 2f8ba1b into master Nov 17, 2025
8 of 10 checks passed
@Coldaine Coldaine deleted the claude/status-check-progress-011CV1gCL7xr9j4fjA37PKFr branch November 17, 2025 07:09
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.

3 participants