Pin earned-time v0.19.0, leisure-watch v0.2.4

Tests isolate FOCUS_PROJECT_DATA so a live project never leaks in. Also
bumps the freshness gate's stale dev pins and websockets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzxdWYcmik6APnHfc9gEVy
This commit is contained in:
Krzysztof Rudnicki 2026-11-02 08:41:27 +01:00
parent fb866978be
commit 73afad98f9
5 changed files with 32 additions and 14 deletions

View File

@ -110,8 +110,8 @@ repos:
- --disable-error-code=list-item
additional_dependencies:
- types-requests
- earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.18.0#subdirectory=earned_time
- leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.3
- earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.19.0#subdirectory=earned_time
- leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.4
# ===========================================================================
# PYLINT
@ -131,8 +131,8 @@ repos:
# (steam_backlog_enforcer._mcp_server).
additional_dependencies:
- aiohttp==3.14.5
- earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.18.0#subdirectory=earned_time
- leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.3
- earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.19.0#subdirectory=earned_time
- leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.4
- howlongtobeatpy==1.0.24
- mcp==2.3.0
- pytest

View File

@ -13,14 +13,14 @@ dependencies = [
# transitively via howlongtobeatpy and websockets was undeclared — both
# are declared here so a clean install imports the package.
"aiohttp==3.14.5",
"websockets==17.3",
"websockets==17.4",
# The earner registry (gaming budget terms); stdlib-only, so the root
# daemon imports it from the desktop user's site-packages.
"earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.18.0#subdirectory=earned_time",
"earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.19.0#subdirectory=earned_time",
# The shared /proc game scan and the signed leisure facts (shadow budget,
# contract C4); stdlib-only, imported by root from the user site like
# earned-time.
"leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.3",
"leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.4",
]
# Optional extras. The `mcp` group is ONLY needed by the MCP server

View File

@ -5,20 +5,20 @@ aiohttp==3.14.5
bandit==1.9.4
codespell==2.4.3
coverage==7.17.0
earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.18.0#subdirectory=earned_time
earned-time @ git+https://github.com/kuhyx/utils@earned-time-v0.19.0#subdirectory=earned_time
howlongtobeatpy==1.0.24
leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.3
leisure-watch @ git+https://github.com/kuhyx/leisure-watch@leisure-watch-v0.2.4
mcp==2.3.0
mypy==2.4.0
mypy==2.4.1
pre-commit==4.7.0
pylint==4.1.3
pytest==9.1.1
pytest==9.2.0
pytest-cov==7.1.0
pytest-randomly==5.0.0
pytest-sugar==1.1.1
pytest-timeout==2.4.0
pytest-xdist==3.8.0
requests==2.34.2
ruff==0.17.2
types-requests==2.33.0.20261006
websockets==17.3
ruff==0.17.3
types-requests==2.33.0.20261030
websockets==17.4

View File

@ -0,0 +1,16 @@
"""Autouse: no live focus project reshapes the earner registry in a test."""
from __future__ import annotations
from typing import TYPE_CHECKING
import pytest
if TYPE_CHECKING:
from pathlib import Path
@pytest.fixture(autouse=True)
def _no_live_focus_project(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
"""Point focus_project at an empty directory (earned_time >= 0.19)."""
monkeypatch.setenv("FOCUS_PROJECT_DATA", str(tmp_path / "focus_project"))

View File

@ -31,6 +31,7 @@ from steam_backlog_enforcer.tests._isolate_playtime import _isolate_playtime
from steam_backlog_enforcer.tests._isolate_reading import _isolate_reading
from steam_backlog_enforcer.tests._isolate_shadow import _isolate_shadow
from steam_backlog_enforcer.tests._no_fast_install import _no_fast_install
from steam_backlog_enforcer.tests._no_live_focus_project import _no_live_focus_project
from steam_backlog_enforcer.tests._no_real_effects import (
_no_live_games,
_no_real_effects,
@ -52,6 +53,7 @@ __all__ = [
"_isolate_reading",
"_isolate_shadow",
"_no_fast_install",
"_no_live_focus_project",
"_no_live_games",
"_no_real_effects",
"_no_systemd_run",