How to mock django timezone.now in a abstract model
I'm unable to mock timezone.now in the model's created field. The test fails due unmocked/current datetime.
I tried patch('django.utils.timezone.now') to no avail.
# app/models.py
from django.utils import timezone
class BaseModel(models.Model):
created = models.DateTimeField(default=timezone.now, editable=False)
class Meta:
abstract = True
class MyModel(BaseModel):
...
# app/tests/test.py
from app.models import MyModel
from datetime import dateHow to mock django timezone.now in a abstract modeltime
from django.utils import timezone
def test_(self):
dt=datetime(2018, 1, 24, tzinfo=timezone.utc)
with patch('app.models.timezone.now', return_value=dt):
instance = MyModel.objects.create()
assert instance.created == dt