Pytest: monkeypatching time
examples/pytest/time-changed/app.py
import time def now(): return time.time()
examples/pytest/time-changed/test_impact.py
import app import time def test_one(): our_real_1 = time.time() their_real_1 = app.now() assert abs(our_real_1 - their_real_1) < 0.00001 app.time.time = lambda : our_real_1 + 100 our_real_2 = time.time() print (our_real_2 - our_real_1) #their_real_2 = app.now() #assert abs(our_real_2 - their_real_2) >= 100
examples/pytest/time-changed2/app.py
from time import time def now(): return time()
examples/pytest/time-changed2/test_impact.py
import app import time def test_one(): our_real_1 = time.time() their_real_1 = app.now() assert abs(our_real_1 - their_real_1) < 0.0001 app.time = lambda : our_real_1 + 100 our_real_2 = time.time() assert abs(our_real_2 - our_real_1) < 0.0001 their_real_2 = app.now() assert abs(our_real_2 - their_real_2) >= 99 def test_two(): our_real_1 = time.time() their_real_1 = app.now() assert abs(our_real_1 - their_real_1) < 0.0001
examples/pytest/time-changed2/test_impact_monkeypatch.py
import app import time def test_one(monkeypatch): our_real_1 = time.time() their_real_1 = app.now() assert abs(our_real_1 - their_real_1) < 0.0001 monkeypatch.setattr(app, 'time', lambda : our_real_1 + 100) our_real_2 = time.time() assert abs(our_real_2 - our_real_1) < 0.0001 their_real_2 = app.now() assert abs(our_real_2 - their_real_2) >= 99 def test_two(): our_real_1 = time.time() their_real_1 = app.now() assert abs(our_real_1 - their_real_1) < 0.00001