Commit Graph

5 Commits

Author SHA1 Message Date
542ba928d9 feat: screen locker made even stronger 2026-02-23 22:50:42 +01:00
6df17080cb fixes for existing scripts and pomodoro with local sync 2026-02-14 18:42:20 +01:00
0a067385c4 feat(screen_locker): harden table tennis verification, remove running option
- Remove 'Running' workout option (too easy to fake)
- Add MIN_TABLE_TENNIS_SETS=15 minimum requirement
- Add MIN_POINTS_PER_SET=11 mathematical cross-check
- Add TABLE_TENNIS_SUBMIT_DELAY=60 (increased from 30)
- Add verification question before unlock (total points/avg/diff)
- Require minimum duration per set (2 min/set)
2026-02-02 21:38:52 +01:00
cabf29f111 Add comprehensive tests for screen_locker module (100% coverage)
- Add test_screen_lock.py with 65 tests covering:
  - ScreenLocker initialization (demo/production mode)
  - Workout data validation (running and strength)
  - Log file operations (reading/writing JSON)
  - UI state transitions and timer logic
  - ask_workout_type/running_details/strength_details methods
  - Error handling and TclError exceptions

- Add type annotation to workout_data in screen_lock.py

Coverage: 273 statements, 38 branches - 100%
2025-12-02 23:13:36 +01:00
e4979afbf2 Add comprehensive tests for stockfish_analysis (100% coverage)
- Create test_analyze_chess_game.py with 90 tests covering all functions
- Add tests for PGN extraction, score conversion, move classification
- Add tests for engine configuration, memory detection, analysis
- Add pragma: no branch for unreachable code paths
- Update pyproject.toml with coverage exclusions
- All pre-commit hooks pass (ruff, mypy, pylint, bandit)
2025-12-02 22:58:06 +01:00