timedelta на сервере отрабатывает не верно

Хелп, подскажите куда смотреть

вот код

from django.utils import timezone

timezone.now() + timedelta(seconds=300)

получаю на сервере (условно)

2021-11-24 10:05:00.000000+00:00

а локально

2021-11-24 10:15:00.000000+00:00

т.е. он почему-то будто бы на сервере убавляет это время, а локально прибавляет, с чем это может быть связано?


Ответы (1 шт):

Автор решения: deva.hacker

Нашел причину. Проблема была в используемом factory_boy. Я недостаточно подробно описал проблему - более абстрактно, но возникало все с полем, который генерировал factory_boy.

Раньше было так:

class SomethingFacroty(factory.DjangoModelFactory):
    expire_date = timezone.now() + timedelta(seconds=120)

Я переделал на лямбду:

class SomethingFacroty(factory.DjangoModelFactory):
    expire_date = factory.LazyFunction(
        lambda: timezone.now() + timedelta(seconds=120)
    )

А проблема возникала в том, что локально тест запускался один, а на сервере прогонялись все тесты и с момента инициализации и установки в поле даты до момента конкретного теста проходило некоторое количество времени, разница в которой и выражалась тут.

→ Ссылка