Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: