3e3ac516d1
feat: sick mode
2026-01-06 13:10:54 +01:00
44b4511d50
fix: worklout screen lkocker
2026-01-02 19:11:54 +01:00
7f7f5dacbc
Remove workout_log.json and FFmpeg from git tracking
...
- Add workout_log.json to root .gitignore
- Remove both files from git index (keep local files)
- FFmpeg was already in .gitignore but still tracked
2025-12-04 20:35:00 +01:00
c78ceef16f
screen_locker: enhance workout logging and UI
...
- Log full workout data (exercises, sets, reps, weights) instead of just type
- Add workout_log.json to gitignore
- Support variable reps per set using + separator (e.g., 12+12+11+11+12)
- Widen exercise name input field from 30 to 50 characters
2025-12-02 23:22:13 +01:00
790746476e
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
3f64e0f927
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
275399a72c
Fix test discovery and coverage for python_pkg modules
...
- Update pytest testpaths: PYTHON -> python_pkg (PYTHON was empty)
- Add missing __init__.py to: stockfish_analysis, screen_locker, extract_links
- Now coverage correctly reports 0% for untested modules:
- screen_locker/screen_lock.py (279 stmts, 0% coverage)
- stockfish_analysis/analyze_chess_game.py (327 stmts, 0% coverage)
2025-12-02 22:33:34 +01:00
4db978b67b
Add comprehensive tests for lichess_bot main.py and lichess_api.py
...
- Fix test_process_game_event_game_end to properly mock engine
- Fix test_handle_game tests to mock _run_analysis_subprocess to prevent hanging
- Fix test_process_game_start_event to mock analysis subprocess
- Add test_process_game_event_game_end_after_move to cover game end status path
- Add test_process_game_event_color_unknown_on_gamefull to cover gameFull with spectator
- Add tests for lichess_api.py covering spectator case and join_game_stream edge cases
- Fix mypy type errors with Event and GameThreads type aliases
Coverage:
- lichess_api.py: 100% (was 98%)
- main.py: 99% (branch partials for loop exits only)
2025-12-02 21:53:15 +01:00
cd894f039e
fix: remove all pylint disable comments and enable all meta checks
2025-12-01 16:22:03 +01:00
26860233af
fix(lint): fix G004 and PTH123 violations across codebase
...
- Convert f-string logging to % style (G004)
- Convert open() to Path.open() (PTH123)
- Remove G004 and PTH123 from global ignores in pyproject.toml
2025-11-30 23:57:49 +01:00
bb6713eabb
fix(lint): convert os.path to pathlib - remove PTH per-file ignores
...
- Converted os.path patterns to pathlib.Path in 15+ files
- os.path.join → Path /
- os.path.dirname → Path.parent
- os.path.exists → Path.exists()
- os.path.isfile → Path.is_file()
- os.path.abspath → Path.resolve()
- os.mkdir → Path.mkdir()
- os.listdir → Path.iterdir()
- os.getcwd → Path.cwd()
- os.replace → Path.replace()
- Updated function type hints to accept str | Path
Added PTH123 (open() vs Path.open()) to global ignores as stylistic preference
2025-11-30 23:03:03 +01:00
264b019d4d
fix(lint): LOG015 - replace root logger with module loggers
...
- Add _logger = logging.getLogger(__name__) to all modules
- Replace logging.X() calls with _logger.X() calls
- Remove logging.basicConfig() from module level (keep in run_bot())
- Add G004 to global ignores (f-strings in logging are more readable)
- Remove LOG015 and G004 per-file ignores from pyproject.toml
- Fix pytest_ignore_collect hook signature in conftest.py
2025-11-30 21:59:24 +01:00
ec8861d01c
refactor: rename folders to fix N999, INP001, S311 linting rules
...
- Rename PYTHON/ to python_pkg/ (fix N999 uppercase folder)
- Rename camelCase folders to snake_case:
- randomJPG -> random_jpg
- tagDivider -> tag_divider
- downloadCats -> download_cats
- keyboardCoop -> keyboard_coop
- extractLinks -> extract_links
- scapeWebsite -> scrape_website
- Rename camelCase files:
- generateJpeg.py -> generate_jpeg.py
- tagDivider.py -> tag_divider.py
- Rename poker-modifier-app to poker_modifier_app (fix INP001)
- Add __init__.py to poker_modifier_app
- Replace random module with secrets.SystemRandom (fix S311)
- Fix S110 try-except-pass with contextlib.suppress
- Update all imports and config references
2025-11-30 21:20:17 +01:00