Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions tests/test_before.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import unittest

from tenacity import before_nothing

from . import test_tenacity


class TestBeforeNothing(unittest.TestCase):
def test_before_nothing_does_not_raise(self) -> None:
retry_state = test_tenacity.make_retry_state(1, 0.1)
before_nothing(retry_state)
11 changes: 11 additions & 0 deletions tests/test_before_sleep.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import unittest

from tenacity import before_sleep_nothing

from . import test_tenacity


class TestBeforeSleepNothing(unittest.TestCase):
def test_before_sleep_nothing_does_not_raise(self) -> None:
retry_state = test_tenacity.make_retry_state(1, 0.1)
before_sleep_nothing(retry_state)
40 changes: 40 additions & 0 deletions tests/test_nap.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import threading
import unittest
import unittest.mock

from tenacity import nap


class TestSleep(unittest.TestCase):
def test_sleep_delegates_to_time_sleep(self) -> None:
with unittest.mock.patch("tenacity.nap.time.sleep") as mock_sleep:
nap.sleep(1.5)
mock_sleep.assert_called_once_with(1.5)


class TestSleepUsingEvent(unittest.TestCase):
def test_waits_on_event_with_given_timeout(self) -> None:
event = unittest.mock.MagicMock(spec=threading.Event)
strategy = nap.sleep_using_event(event)

strategy(5)

event.wait.assert_called_once_with(timeout=5)

def test_waits_on_event_with_none_timeout(self) -> None:
event = unittest.mock.MagicMock(spec=threading.Event)
strategy = nap.sleep_using_event(event)

strategy(None)

event.wait.assert_called_once_with(timeout=None)

def test_returns_early_when_event_already_set(self) -> None:
# threading.Event.wait() returns immediately (without blocking for
# the timeout) when the event is already set, so a large timeout
# here is safe and still exercises the real stdlib primitive.
event = threading.Event()
event.set()
strategy = nap.sleep_using_event(event)

strategy(60)
Loading