Commit graph

3 commits

Author SHA1 Message Date
bb704d24ea Add script entry point for uvx installation
Fixes "Package does not provide any executables" error when running
uvx git+https://...

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 16:55:46 -08:00
aaaf9dac20 Add pre-commit hooks with ty type checking
Set up pre-commit with basic hooks (trailing whitespace, end-of-file,
large files) and ty for type checking via uvx. Fix type error in test
where root.find() could return None.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 19:51:34 -08:00
c7a0b04573 Add uv package structure and pytest test framework
Set up mcquack as a proper uv package with flat layout (no src/ directory).
Uses hatchling build backend to support single-file module structure.
Added pytest as dev dependency with fixtures for testing against
temporary directories instead of actual macOS LaunchAgent paths.

- Rename list() to list_agents() to avoid shadowing builtin (Python 3.14 compat)
- Add mock_dirs fixture that monkeypatches LAUNCH_AGENTS_DIR and LOGS_DIR
- Add mock_script and mock_launchctl fixtures
- 26 tests covering list, create, edit, show, delete commands
- Parameterized tests for argument handling
- XML validation tests independent of plistlib

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 19:18:17 -08:00