Skip to content

Instantly share code, notes, and snippets.

Created January 10, 2015 16:29
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save 0xbepresent/ba6e307cf709f153c6ba to your computer and use it in GitHub Desktop.
Mock Datetime Object
import datetime
import mock
real_datetime_class = datetime.datetime
def mock_datetime_now(target):
A mock patch context, we override the datetime.datetime with a custom value.
class DatetimeSubclassMeta(type):
"""Custom __instancecheck__ instance()"""
def __instancecheck__(mcs, obj):
return isinstance(obj, real_datetime_class)
class BaseMockedDatetime(real_datetime_class):
def today(cls):
return target
MockedDatetime = DatetimeSubclassMeta("datetime", (BaseMockedDatetime,), {})
return mock.patch.object(datetime, "datetime", MockedDatetime)
# Example
today =, 1, 1)
with mock_datetime_now(today):
print # It prints 2010-1-1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment