From 07d8fd006a618c88dc39473b713eeec067be86a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 10:37:29 +0200 Subject: [PATCH] Bump time-machine from 2.17.0 to 2.18.0 (#6113) * Bump time-machine from 2.17.0 to 2.18.0 Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.17.0 to 2.18.0. - [Changelog](https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst) - [Commits](https://github.com/adamchainz/time-machine/compare/2.17.0...2.18.0) --- updated-dependencies: - dependency-name: time-machine dependency-version: 2.18.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Fix time_machine usage --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Stefan Agner --- requirements_tests.txt | 2 +- tests/jobs/test_job_decorator.py | 31 ++++++++++++++++--------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/requirements_tests.txt b/requirements_tests.txt index c5042cd29..d2f1fdcb1 100644 --- a/requirements_tests.txt +++ b/requirements_tests.txt @@ -9,7 +9,7 @@ pytest-cov==6.2.1 pytest-timeout==2.4.0 pytest==8.4.1 ruff==0.12.9 -time-machine==2.17.0 +time-machine==2.19.0 types-docker==7.1.0.20250809 types-pyyaml==6.0.12.20250809 types-requests==2.32.4.20250809 diff --git a/tests/jobs/test_job_decorator.py b/tests/jobs/test_job_decorator.py index 48f59d3da..de44bf03f 100644 --- a/tests/jobs/test_job_decorator.py +++ b/tests/jobs/test_job_decorator.py @@ -1184,28 +1184,29 @@ async def test_job_scheduled_at(coresys: CoreSys): self.coresys.jobs.current.stage = "work" test = TestClass(coresys) - - with time_machine.travel(dt): - job, _ = await test.job_scheduler() - - started = False - ended = False + job_started = asyncio.Event() + job_ended = asyncio.Event() async def start_listener(evt_job: SupervisorJob): - nonlocal started - started = started or evt_job.uuid == job.uuid + if evt_job.uuid == job.uuid: + job_started.set() async def end_listener(evt_job: SupervisorJob): - nonlocal ended - ended = ended or evt_job.uuid == job.uuid + if evt_job.uuid == job.uuid: + job_ended.set() - coresys.bus.register_event(BusEvent.SUPERVISOR_JOB_START, start_listener) - coresys.bus.register_event(BusEvent.SUPERVISOR_JOB_END, end_listener) + async with time_machine.travel(dt): + job, _ = await test.job_scheduler() - await asyncio.sleep(0.2) + coresys.bus.register_event(BusEvent.SUPERVISOR_JOB_START, start_listener) + coresys.bus.register_event(BusEvent.SUPERVISOR_JOB_END, end_listener) + + # Advance time to exactly when job should start and wait for completion + async with time_machine.travel(dt + timedelta(seconds=0.1)): + await asyncio.wait_for( + asyncio.gather(job_started.wait(), job_ended.wait()), timeout=1.0 + ) - assert started - assert ended assert job.done assert job.name == "test_job_scheduled_at_job_task" assert job.stage == "work"