6 ms·
This is a hard-earned lesson, but it's true. Instead of doing def do_something_with_date(): now = datetime.now() return now - timedelta(days=2)
by yen223 3y ago
This is a hard-earned lesson, but it's true.
Instead of doing
def do_something_with_date():
now = datetime.now()
return now - timedelta(days=2)
you should do
def do_something_with_date(now):
return now - timedelta(days=2)
and explicitly pass in edge-case dates into the `now` param in your unit tests.
Alternatively, if you're using Python, use the freezegun library to fix the current time in tests: https://github.com/spulec/freezegun https://github.com/spulec/freezegun