72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
from app.business.time_calc import (
|
|
minutes_to_str,
|
|
work_minutes_reference,
|
|
week_balance_minutes,
|
|
)
|
|
|
|
|
|
def test_minutes_to_str_basic():
|
|
assert minutes_to_str(465) == "7h45"
|
|
|
|
|
|
def test_minutes_to_str_zero():
|
|
assert minutes_to_str(0) == "0h00"
|
|
|
|
|
|
def test_minutes_to_str_negative():
|
|
assert minutes_to_str(-75) == "-1h15"
|
|
|
|
|
|
def test_work_minutes_reference_normal_day():
|
|
assert work_minutes_reference("WORK") == 465
|
|
assert work_minutes_reference("TT") == 465
|
|
assert work_minutes_reference("FORMATION") == 465
|
|
|
|
|
|
def test_work_minutes_reference_garde():
|
|
assert work_minutes_reference("GARDE") == 600
|
|
|
|
|
|
def test_work_minutes_reference_absence():
|
|
assert work_minutes_reference("RTT") == 0
|
|
assert work_minutes_reference("CONGE") == 0
|
|
assert work_minutes_reference("MALADE") == 0
|
|
assert work_minutes_reference("FERIE") == 0
|
|
|
|
|
|
def test_week_balance_positive():
|
|
assert week_balance_minutes(2400, 2325) == 75
|
|
|
|
|
|
def test_week_balance_negative():
|
|
assert week_balance_minutes(2200, 2325) == -125
|
|
|
|
|
|
from app.business.time_calc import count_day_types
|
|
from app.models import WorkEntry
|
|
from datetime import date
|
|
|
|
|
|
def test_count_day_types_basic():
|
|
entries = [
|
|
WorkEntry(date=date(2025, 1, 2), day_type="WORK"),
|
|
WorkEntry(date=date(2025, 1, 3), day_type="WORK"),
|
|
WorkEntry(date=date(2025, 1, 6), day_type="TT"),
|
|
WorkEntry(date=date(2025, 1, 7), day_type="GARDE"),
|
|
]
|
|
result = count_day_types(entries)
|
|
assert result == {"WORK": 2, "TT": 1, "GARDE": 1}
|
|
|
|
|
|
def test_count_day_types_empty():
|
|
assert count_day_types([]) == {}
|
|
|
|
|
|
def test_count_day_types_single_type():
|
|
entries = [
|
|
WorkEntry(date=date(2025, 2, 1), day_type="RTT"),
|
|
WorkEntry(date=date(2025, 2, 2), day_type="RTT"),
|
|
]
|
|
result = count_day_types(entries)
|
|
assert result == {"RTT": 2}
|