Skip to content

feat: add opt-in integration test suite (#23)#57

Merged
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
feat/integration-tests-23
Apr 12, 2026
Merged

feat: add opt-in integration test suite (#23)#57
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
feat/integration-tests-23

Conversation

@cmeans-claude-dev
Copy link
Copy Markdown
Contributor

@cmeans-claude-dev cmeans-claude-dev Bot commented Apr 12, 2026

Summary

  • New tests/test_integration.py with 6 tests exercising real clipboard tools
  • Pytest marker integration configured in pyproject.toml -- skipped by default
  • Run with uv run pytest -m integration (requires clipboard daemon)
  • Tests cover: plain text round-trip, unicode, multiline, special characters, format listing, unavailable MIME type
  • Updated CONTRIBUTING.md and CLAUDE.md with integration test commands
  • Verified passing on Wayland (Fedora 43)

Test plan

  • uv run pytest -q -- 450 passed, 6 deselected, 8 xfailed (integration skipped)
  • uv run pytest -m integration -v -- 6 passed (on a machine with clipboard)
  • CI passes (integration tests are skipped in CI)

Closes #23

Integration tests exercise wl-paste/xclip/pbpaste/PowerShell against
a real clipboard daemon. Skipped by default via pytest marker config;
run with `uv run pytest -m integration`.

Tests cover: text round-trip, unicode, multiline, special characters,
format listing, and unavailable MIME type handling.

Closes #23

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cmeans-claude-dev cmeans-claude-dev Bot added the Ready for QA Dev work complete — QA can begin review label Apr 12, 2026
@github-actions github-actions Bot added the Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA label Apr 12, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions github-actions Bot removed the Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA label Apr 12, 2026
@cmeans cmeans added QA Active QA is actively reviewing; Dev should not push changes and removed Ready for QA Dev work complete — QA can begin review labels Apr 12, 2026
@cmeans
Copy link
Copy Markdown
Owner

cmeans commented Apr 12, 2026

Applying Ready for QA Signoff. All 3 checkboxes verified — including running the 6 integration tests against the real system clipboard on Wayland/Fedora 43 (all passed). Default suite correctly deselects them. 450/450 pass. Zero findings.

Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

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

QA Review — PR #57

Verdict: Zero findings. Ready for maintainer signoff.

Checkboxes verified

CHECKBOX 1: pytest -q (default)       → 450 passed, 6 deselected, 8 xfailed (matches PR body)
CHECKBOX 2: pytest -m integration -v  → 6/6 PASSED (real clipboard, Wayland/Fedora 43)
CHECKBOX 3: CI passes                 → All green (lint, typecheck, test matrix, codecov)

All checkboxes ticked. Integration tests run against real clipboard on this machine — not just checked for skip behavior.

Code review

Marker config: addopts = "-m 'not integration'" in pyproject.toml skips integration by default. Opt-in with -m integration. Standard pytest pattern. ✓

Test coverage (6 tests):

  • Plain text round-trip, unicode (emoji + CJK), multiline, special chars (pipes, quotes, angles, ampersands), format listing after write, empty MIME returns empty
  • All use the public API (write_clipboard/read_clipboard/list_clipboard_formats) — exercises real code paths ✓
  • .strip() on read results handles platform-specific trailing newline differences ✓
  • pytestmark = pytest.mark.integration applies to all tests in the file ✓

Doc updates: CONTRIBUTING.md dev setup block and integration test paragraph, CLAUDE.md commands section — both accurate, both reference the -m integration flag. CONTRIBUTING.md ties it to #5 and #10 (platform testers). ✓

Other checks

  • CHANGELOG: New ## [Unreleased] / ### Added — correct (v2.1.1 just released, new feature). Accurate. Closes #23. ✓
  • CI: All green. Integration tests correctly deselected (6 deselected visible in default run). ✓
  • Diff scope: 5 files, +96/-2, single commit. Clean. ✓

Findings

None.

@cmeans cmeans added Ready for QA Signoff QA passed — ready for maintainer final review and merge and removed QA Active QA is actively reviewing; Dev should not push changes labels Apr 12, 2026
Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

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

LGTM

@cmeans cmeans added QA Approved Manual QA testing completed and passed and removed Ready for QA Signoff QA passed — ready for maintainer final review and merge labels Apr 12, 2026
@cmeans-claude-dev cmeans-claude-dev Bot merged commit 141f3a0 into main Apr 12, 2026
39 checks passed
@cmeans-claude-dev cmeans-claude-dev Bot deleted the feat/integration-tests-23 branch April 12, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA Approved Manual QA testing completed and passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add opt-in integration test mechanism for real clipboard tools

1 participant