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
8 changes: 8 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ actually sleep. It also guarrantees "correct" results for calls to

To install, simply call `fakesleep.monkey_patch()`. To restore the real versions, call `fakesleep.monkey_restore()`.

A context manager is available that runs the monkeypatching and restoring for you:

>>> with fakesleep.fakesleep_context():
... sleep(10)
... # no time has has actually elapsed.



:author: Pete Fein <pete@wearpants.org>
:license: BSD
:versions: Python 2.7 & 3
Expand Down
16 changes: 15 additions & 1 deletion fakesleep.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""provides a fake sleep() for use in tests"""

import contextlib
import time as time_mod

originals = {name: getattr(time_mod, name) for name in
Expand Down Expand Up @@ -56,4 +57,17 @@ def monkey_restore():
setattr(time_mod, k, v)

global epoch
epoch = None
epoch = None

@contextlib.contextmanager
def fakesleep_context():
"""context manager to temporarily use fakesleep.

>>> with fakesleep_context():
... sleep(10)
...
"""
fakesleep.monkey_patch()
yield
fakesleep.monkey_restore()