This is an automated email from the ASF dual-hosted git repository. kamilbregula pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push: new 4f9b097 Patch `utcnow` in retry delay test (#18343) 4f9b097 is described below commit 4f9b09729169c9fdf59efd78de68025a49fa2ac6 Author: Edward Wang <40527812+edwardwang...@users.noreply.github.com> AuthorDate: Fri Oct 1 01:57:39 2021 -0700 Patch `utcnow` in retry delay test (#18343) * Remove sleep from retry delay test * Change to use freezegun * Approximate smallest timedelta without numpy * Use pre-defined smallest timedelta It turns out `datetime.datetime.resolution` is already defined as the smallest possible timedelta (one microsecond). Attempting to create a timedelta with microseconds in the interval (0.5, 1) simply results in microseconds being rounded up to 1. --- tests/models/test_taskinstance.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/models/test_taskinstance.py b/tests/models/test_taskinstance.py index 313cfd0..4f7d3f9 100644 --- a/tests/models/test_taskinstance.py +++ b/tests/models/test_taskinstance.py @@ -19,7 +19,6 @@ import datetime import os import signal -import time import urllib from tempfile import NamedTemporaryFile from typing import List, Optional, Union, cast @@ -489,7 +488,8 @@ class TestTaskInstance: assert ti.next_kwargs is None assert ti.state == State.UP_FOR_RETRY - def test_retry_delay(self, dag_maker): + @freeze_time('2021-09-19 04:56:35', as_kwarg='frozen_time') + def test_retry_delay(self, dag_maker, frozen_time=None): """ Test that retry delays are respected """ @@ -517,11 +517,12 @@ class TestTaskInstance: assert ti.try_number == 2 # second run -- still up for retry because retry_delay hasn't expired + frozen_time.tick(delta=datetime.timedelta(seconds=3)) run_with_error(ti) assert ti.state == State.UP_FOR_RETRY # third run -- failed - time.sleep(3) + frozen_time.tick(delta=datetime.datetime.resolution) run_with_error(ti) assert ti.state == State.FAILED