Empêche la cible de proposer un départ déjà passé quand la semaine est en avance
La répartition de l'avance sur les départs du soir ne vérifiait que le plancher aprem_fin, pas l'heure actuelle : sur une demi-journée en cours, elle pouvait recommander de partir à une heure déjà écoulée. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@ -405,3 +405,36 @@ def test_compute_week_plages_personnalisees(freeze_today):
|
||||
vendredi = result["jours"][4]
|
||||
assert vendredi["cible_matin"] is None
|
||||
assert vendredi["cible_aprem"] == "19:00"
|
||||
|
||||
|
||||
def test_compute_week_cible_en_cours_ne_recommande_jamais_un_depart_deja_passe(monkeypatch):
|
||||
"""Régression : quand l'après-midi est en cours et que la semaine a de l'avance,
|
||||
la répartition de l'avance ne doit jamais faire retomber la cible du jour même
|
||||
avant l'heure actuelle — on ne peut pas recommander un départ déjà passé.
|
||||
|
||||
Lundi-mercredi en léger surplus, jeudi (aujourd'hui, gelé à 17:19) après-midi en
|
||||
cours depuis 13:37 : le calcul nominal donnerait 17:17 (avant maintenant), la
|
||||
cible doit être plafonnée à 17:19.
|
||||
"""
|
||||
import calcul as calcul_module
|
||||
|
||||
class FrozenDatetime(calcul_module.datetime):
|
||||
_frozen = calcul_module.datetime(2026, 8, 6, 17, 19)
|
||||
|
||||
@classmethod
|
||||
def today(cls):
|
||||
return cls._frozen
|
||||
|
||||
monkeypatch.setattr(calcul_module, "datetime", FrozenDatetime)
|
||||
|
||||
plages = {"arrivee_visee": "08:30"}
|
||||
pointages = [
|
||||
_pointage("2026-08-03", "08:12", "12:02", "13:23", "18:00"), # +39
|
||||
_pointage("2026-08-04", "08:19", "12:02", "13:01", "17:01"), # -5
|
||||
_pointage("2026-08-05", "08:15", "12:03", "12:55", "17:02"), # +7
|
||||
_pointage("2026-08-06", "08:25", "12:05", aprem_entree="13:37"), # en cours
|
||||
_pointage("2026-08-07"),
|
||||
]
|
||||
result = compute_week(pointages, [], HEURES_JOUR_MIN, plages)
|
||||
jeudi = result["jours"][3]
|
||||
assert jeudi["cible_aprem"] == "17:19"
|
||||
|
||||
Reference in New Issue
Block a user