from datetime import datetime import main import pipeline_utils def _intervalo(hora, minuto): return main.obtener_intervalo(datetime(2026, 10, 22, hora, minuto)) def test_cada_minuto_del_dia_pertenece_a_un_bloque_y_solo_uno(): """Sin huecos (el demonio dormiría hasta las 06:30) ni solapes.""" for minuto_del_dia in range(24 * 60): bloques = [b for b in main.HORARIOS if b[0] * 60 + b[1] <= minuto_del_dia < b[2] * 60 + b[3]] assert len(bloques) == 1, f"{minuto_del_dia // 60:02d}:{minuto_del_dia % 60:02d} -> {len(bloques)} bloques" assert _intervalo(minuto_del_dia // 60, minuto_del_dia % 60) == (bloques[0][4], bloques[0][5]) def test_los_bloques_estan_ordenados_y_se_encadenan(): fines = [b[2] * 60 + b[3] for b in main.HORARIOS] inicios = [b[0] * 60 + b[1] for b in main.HORARIOS] assert inicios[0] == 0 and fines[-1] == 24 * 60 assert inicios[1:] == fines[:-1] # cada bloque empieza donde termina el anterior def test_los_huecos_de_antes_ahora_tienen_horario(): assert _intervalo(21, 29) == (3600, "full") and _intervalo(21, 30) == (3600, "full") assert _intervalo(23, 59) == (3600, "full") assert _intervalo(5, 0) == (1800, "full") and _intervalo(6, 29) == (1800, "full") assert _intervalo(6, 30) == (300, "rapido") def test_la_version_del_proyecto_sale_de_pyproject(): version = pipeline_utils.version_del_proyecto() assert version != "desconocida" and version.count(".") == 2