classement, ajoute une suite de tests pytest - calcul.py: matin_debut/fin, aprem_debut/fin et pause_dejeuner_fin sont paramétrables via config.json > plages (moteur de calcul de l'heure de sortie optimale inclus, pas seulement l'affichage). Défauts identiques à l'ancien comportement, validé par la suite de tests. - stats.py: les seuils de conformité utilisent la même config. - main.py/templates: warn de saisie et suffixes de cible dynamiques. - Rappels ntfy: serveur, topic et plage horaire (rappel_debut_h/fin_h) configurables par utilisateur depuis /settings, plus en dur dans le code. - Page classement supprimée (pas de compétition entre utilisateurs). - Nouvelle suite pytest (app/tests/), à lancer via `docker compose run --rm pointeuse pytest -v`.
25 lines
518 B
Python
25 lines
518 B
Python
"""Freezes calcul.py's notion of "today" for deterministic tests."""
|
|
import datetime as dt_module
|
|
|
|
import pytest
|
|
|
|
import calcul
|
|
|
|
|
|
class FrozenDatetime(dt_module.datetime):
|
|
_frozen = dt_module.datetime(2026, 7, 17, 10, 30) # vendredi
|
|
|
|
@classmethod
|
|
def today(cls):
|
|
return cls._frozen
|
|
|
|
@classmethod
|
|
def now(cls, tz=None):
|
|
return cls._frozen
|
|
|
|
|
|
@pytest.fixture
|
|
def freeze_today(monkeypatch):
|
|
monkeypatch.setattr(calcul, "datetime", FrozenDatetime)
|
|
return FrozenDatetime._frozen
|