Я хотел бы изменить время во время теста. То есть тест должен начинаться, например, в 9:00, а затем продолжаться, как если бы сейчас было 10:00.
Код: Выделить всё
from __future__ import annotations
import datetime
import logging
import pytest
LOGGER = logging.getLogger(__name__)
@pytest.fixture(params=[datetime.datetime(2020, 12, 25, 17, 5, 55)])
def patch_datetime_now(request, monkeypatch):
class mydatetime(datetime.datetime):
@classmethod
def now(cls):
return request.param
class mydate(datetime.date):
@classmethod
def today(cls):
return request.param.date()
monkeypatch.setattr(datetime, "datetime", mydatetime)
monkeypatch.setattr(datetime, "date", mydate)
@pytest.mark.usefixtures("patch_datetime_now")
@pytest.mark.parametrize(
"patch_datetime_now", [(datetime.datetime(2020, 12, 9, 11, 22, 00))], indirect=True
)
def test_update_data():
fakeTime = datetime.datetime.now()
# Do some stuff
# Change the fake time
# Do some other stuff
Может быть, мне нужно изменить полностью издевательский метод, я просто делюсь своим текущим кодом.
Подробнее здесь: https://stackoverflow.com/questions/715 ... uring-test