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
Вернуться на верх