mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-07-04 15:43:02 +02:00
Fix pytest OOM: wrap each package in 3GB cgroup sub-scope
systemd-run --scope -p MemoryMax=3G per pytest subprocess so each package gets its own memory cap, freed completely before the next. Also use shutil.which + pathlib per ruff rules.
This commit is contained in:
parent
f424be8fe5
commit
ad1b2fdad3
@ -257,16 +257,17 @@ class PhoneVerificationMixin:
|
|||||||
def _is_workout_finish_recent(self, db_path: Path) -> bool:
|
def _is_workout_finish_recent(self, db_path: Path) -> bool:
|
||||||
"""Check if the latest workout's finish time is recent.
|
"""Check if the latest workout's finish time is recent.
|
||||||
|
|
||||||
A fresh workout should have finished within the last few hours.
|
A fresh workout should have finished within the last 24 hours.
|
||||||
This prevents using an old pre-prepared database dump.
|
This prevents using an old pre-prepared database dump while
|
||||||
|
still accepting workouts done earlier the same day.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
db_path: Path to the locally-pulled StrongLifts database.
|
db_path: Path to the locally-pulled StrongLifts database.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
True if the latest finish time is within 4 hours of now.
|
True if the latest finish time is within 24 hours of now.
|
||||||
"""
|
"""
|
||||||
max_age_seconds = 4 * 3600
|
max_age_seconds = 24 * 3600
|
||||||
try:
|
try:
|
||||||
conn = sqlite3.connect(str(db_path))
|
conn = sqlite3.connect(str(db_path))
|
||||||
try:
|
try:
|
||||||
|
|||||||
@ -25,6 +25,7 @@ from python_pkg.screen_locker._constants import (
|
|||||||
STRONGLIFTS_DB_REMOTE,
|
STRONGLIFTS_DB_REMOTE,
|
||||||
)
|
)
|
||||||
from python_pkg.screen_locker._log_integrity import (
|
from python_pkg.screen_locker._log_integrity import (
|
||||||
|
_load_hmac_key,
|
||||||
compute_entry_hmac,
|
compute_entry_hmac,
|
||||||
verify_entry_hmac,
|
verify_entry_hmac,
|
||||||
)
|
)
|
||||||
@ -296,10 +297,15 @@ class ScreenLocker(
|
|||||||
entry = logs.get(today)
|
entry = logs.get(today)
|
||||||
if entry is None:
|
if entry is None:
|
||||||
return False
|
return False
|
||||||
if not verify_entry_hmac(entry):
|
if verify_entry_hmac(entry):
|
||||||
|
return True
|
||||||
|
if _load_hmac_key() is None and "hmac" not in entry:
|
||||||
|
_logger.info(
|
||||||
|
"HMAC key unavailable — accepting unsigned entry",
|
||||||
|
)
|
||||||
|
return True
|
||||||
_logger.warning("HMAC verification failed for today's log entry")
|
_logger.warning("HMAC verification failed for today's log entry")
|
||||||
return False
|
return False
|
||||||
return True
|
|
||||||
|
|
||||||
def _load_existing_logs(self) -> dict:
|
def _load_existing_logs(self) -> dict:
|
||||||
"""Load existing workout logs from file."""
|
"""Load existing workout logs from file."""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user