Pytest: mocking datetime.date.today
The datetime class has other methods to retreive the date (and I could not find how to mock the function deep inside).
import datetime
def get_today():
return datetime.date.today()
import app
today = app.get_today()
print(type(today))
print(today)
import app
import datetime
def test_new_year(monkeypatch):
mydt = datetime.date
class MyDate():
def today():
return mydt(2000, 1, 1)
monkeypatch.setattr(app.datetime, 'date', MyDate)
today = app.get_today()
#print(today)
assert str(today) == '2000-01-01'
def test_leap_year(monkeypatch):
mydt = datetime.date
class MyDate():
def today():
return mydt(2004, 2, 29)
monkeypatch.setattr(app.datetime, 'date', MyDate)
today = app.get_today()
#print(today)
assert str(today) == '2004-02-29'