Coverage for travels\management\commands\finish_travels.py: 89.5%
17 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-30 20:58 +0200
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-30 20:58 +0200
1import logging
3from django.core.management.base import BaseCommand
4from django.utils import timezone
6from travels.services.travel_service import TravelService
8logger = logging.getLogger(__name__)
11# Comando para finalizar los viajes tras 2 horas despues de su fecha de finalizacion
12class Command(BaseCommand):
13 help = 'Pasa a estado finalizado los viajes activos cuya fecha supero las 2 horas tras la fecha de finalizacion.'
15 def handle(self, *args, **kwargs):
16 now = timezone.now()
18 try:
19 # La regla vive en el servicio, este comando solo la dispara
20 finished_count, unvalidated_count = TravelService.finish_expired_travels(now)
22 if not finished_count:
23 logger.info(f'[{now}] No expired travels found.')
24 return
26 logger.info(
27 f'Success: {finished_count} travels finished, '
28 f'{unvalidated_count} passengers marked as unvalidated.'
29 )
30 except Exception as e:
31 logger.error(f'Error finishing travels, command finish_travels: {str(e)}')