Coverage for src/data_api/domain/buses/query.py: 100%

9 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-11-13 19:28 +0000

1"""Resolve bus query time independently of its REST or MCP transport.""" 

2 

3from dataclasses import dataclass 

4from datetime import datetime 

5 

6 

7@dataclass(frozen=True) 

8class BusTimeState: 

9 day: str 

10 after_time: str 

11 current_time: str 

12 

13 

14def resolve_bus_time(day: str, time: str | None, current: datetime) -> BusTimeState: 

15 current_time = current.strftime("%H:%M") 

16 if day == "current": 

17 return BusTimeState( 

18 "weekday" if current.weekday() < 5 else "weekend", current_time, current_time 

19 ) 

20 return BusTimeState(day, time or "", current_time)