@@ -29,9 +29,12 @@ async def test_run_every(
2929 n : int = 2 ,
3030) -> None :
3131 interval = parse_timedelta (interval )
32- run_time = (interval * n ) + timedelta (seconds = 0.01 )
33- register_delay = 0.1
34- run_time += timedelta (seconds = register_delay ) # Accounts for the delay in registering the callback
32+
33+ # Calculate base runtime for 'n' occurrences plus a small buffer
34+ register_delay = 0.1 # Accounts for the delay in registering the callback
35+ run_time = (interval * n ) + timedelta (seconds = register_delay )
36+
37+ # If start time is future "now + offset", add offset to ensure coverage
3538 if (parts := re .split (r"\s+[\+]\s+" , start )) and len (parts ) == 2 :
3639 _ , offset = parts
3740 run_time += parse_timedelta (offset )
@@ -41,11 +44,7 @@ async def test_run_every(
4144 app_args = dict (start = start , interval = interval , msg = test_id , register_delay = register_delay )
4245 async with run_app_for_time (app_name , run_time = run_time .total_seconds (), ** app_args ) as (ad , caplog ):
4346 check_interval_partial = partial (check_interval , caplog , f"kwargs: {{'msg': '{ test_id } '," )
44-
45- if start .startswith ("now -" ):
46- check_interval_partial (n , interval )
47- else :
48- check_interval_partial (n + 1 , interval )
47+ check_interval_partial (n , interval )
4948
5049 # diffs = utils.time_diffs(utils.filter_caplog(caplog, test_id))
5150 # logger.debug(diffs)
0 commit comments