steam-backlog-enforcer/steam_backlog_enforcer/tests
Krzysztof kuhy Rudnicki 00a08de076
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): Steam CDP restart never worked (root+no-display, port collision)
The systemd service runs as root with no User=, so _run_as_user() had no
SUDO_USER/USER to drop privileges to and launched Steam as bare root with
no DISPLAY/XAUTHORITY/DBUS session - its CDP port never opened. Add an
explicit STEAM_ENFORCER_DESKTOP_USER env var (set in the unit, substituted
by install.sh) so the enforcer always knows which desktop user owns the
Steam session, regardless of how it was launched.

Also fix a hardcoded _CDP_PORT=8080 colliding with an already-running
local service bound to 0.0.0.0:8080: requests to 127.0.0.1:8080 always
hit that service instead of steamwebhelper (which only bound
[::1]:8080), so CDP detection could never succeed even with the user
fix. Move to 9222, the conventional Chrome DevTools port.

Verified live: journalctl shows CDP ready and games hidden within ~7s
of a service restart, Steam running as the desktop user (not root).
2026-07-18 06:49:10 +02:00
..
__init__.py test: achieve 100% branch coverage across all python_pkg packages 2026-03-21 17:51:36 +01:00
conftest.py Remove whitelist exception cooldown; approve immediately 2026-07-10 22:57:39 +02:00
test_actions.py Add MCP server exposing the enforcer to Claude Code 2026-07-10 21:05:17 +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 fix(enforcer): idle when Steam is absent instead of crash-looping 2026-07-17 13:53:24 +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 fix: add websockets dependency and apply ruff formatting to tests 2026-05-28 21:00:49 +02:00
test_game_install_part2.py chore: set up as standalone repo 2026-05-28 07:21:29 +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 fix(enforcer): Steam CDP restart never worked (root+no-display, port collision) 2026-07-18 06:49:10 +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 chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_main_part3.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
test_main_part4.py feat: add pick-manual command with 2-week enforcement lock 2026-05-30 17:15:37 +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 Remove whitelist exception cooldown; approve immediately 2026-07-10 22:57:39 +02:00
test_mcp.py Add MCP server exposing the enforcer to Claude Code 2026-07-10 21:05:17 +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_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