steam-backlog-enforcer/steam_backlog_enforcer/tests
Krzysztof kuhy Rudnicki a5dd56941d
Some checks are pending
pre-commit / pre-commit (push) Waiting to run
Tests / test (3.10) (push) Waiting to run
Tests / test (3.11) (push) Waiting to run
Tests / test (3.12) (push) Waiting to run
fix(enforcer): accept flag-style subcommands, explain unknown ones
'./run.sh --abandon-pick <id>' printed the usage block and exited 1 with
no reason given: main() matched argv[1] against _ALL_COMMANDS exactly, so
a dashed spelling fell into the same catch-all as invoking with no args.

- _resolve_command() strips leading dashes from argv[1] (they carry no
  meaning in that slot) and echoes a note when it normalises.
- _print_usage() now names the offending token and suggests the nearest
  command via difflib, instead of silently reprinting usage.

Locks still receive the canonical command name, so a dashed spelling
cannot be used to dodge the manual-pick or total-gaming block.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-19 18:21:30 +02:00
..
__init__.py test: achieve 100% branch coverage across all python_pkg packages 2026-03-21 17:51:36 +01:00
conftest.py fix(enforcer): defer Steam restart while a game update is in progress 2026-07-18 15:59:47 +02:00
test_actions.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_cmd_done_part2.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_config.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_enforce_loop_part2.py fix(enforcer): idle when Steam is absent instead of crash-looping 2026-07-17 13:53:24 +02:00
test_enforce_loop_part3.py feat: add block-gaming command (Stage 4) + guard-lib migration cleanup 2026-07-04 11:45:54 +02:00
test_enforce_loop.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_enforcer_part2.py feat: add block-gaming command (Stage 4) + guard-lib migration cleanup 2026-07-04 11:45:54 +02:00
test_enforcer.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_game_install_part2.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_game_install_part3.py fix: add websockets dependency and apply ruff formatting to tests 2026-05-28 21:00:49 +02:00
test_game_install.py fix(enforcer): idle when Steam is absent instead of crash-looping 2026-07-17 13:53:24 +02:00
test_hltb_detail.py fix: sort requirements.txt and add tests for uncovered branches 2026-05-28 21:11:53 +02:00
test_hltb_part2.py feat: add pick-manual command with 2-week enforcement lock 2026-05-30 17:15:37 +02:00
test_hltb_part3.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_hltb_search_part2.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_hltb_search.py fix: HLTB count_comp=0 bug, false matches, and ProtonDB log noise 2026-05-28 20:40:51 +02:00
test_hltb.py fix: sort requirements.txt and add tests for uncovered branches 2026-05-28 21:11:53 +02:00
test_library_hider_part2.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_library_hider.py fix(enforcer): idle when Steam is absent instead of crash-looping 2026-07-17 13:53:24 +02:00
test_main_part2.py feat(enforcer): add 4-day grace period to undo a manual pick 2026-07-19 17:04:08 +02:00
test_main_part3.py fix(enforcer): accept flag-style subcommands, explain unknown ones 2026-07-19 18:21:30 +02:00
test_main_part4.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_main_part5.py feat: add block-gaming command (Stage 4) + guard-lib migration cleanup 2026-07-04 11:45:54 +02:00
test_main.py feat(enforcer): add 4-day grace period to undo a manual pick 2026-07-19 17:04:08 +02:00
test_mcp.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
test_polls_tracking_part2.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_polls_tracking.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_protondb.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_scanning_part2.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_scanning_part3.py fix: add websockets dependency and apply ruff formatting to tests 2026-05-28 21:00:49 +02:00
test_scanning_part4.py fix: add websockets dependency and apply ruff formatting to tests 2026-05-28 21:00:49 +02:00
test_scanning.py fix: add websockets dependency and apply ruff formatting to tests 2026-05-28 21:00:49 +02:00
test_stats.py Deterministically cover the SteamAPIError branch in stats refresh 2026-07-10 23:10:44 +02:00
test_steam_api.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_store_blocker_part2.py feat: add block-gaming command (Stage 4) + guard-lib migration cleanup 2026-07-04 11:45:54 +02:00
test_store_blocker.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_total_block.py feat: block-gaming purges Steam/Proton filesystem remnants + helper packages 2026-07-04 17:25:08 +02:00
test_update_restart_guard.py fix(enforcer): defer Steam restart while a game update is in progress 2026-07-18 15:59:47 +02:00
test_web_dataset.py feat: add pick-manual command with 2-week enforcement lock 2026-05-30 17:15:37 +02:00
test_web_server.py feat: add interactive web UI for backlog completion planning 2026-05-29 18:35:45 +02:00
test_whitelist.py Remove whitelist exception cooldown; approve immediately 2026-07-10 22:57:39 +02:00