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 <[email protected]>
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