Почему python monkeypatch не работает при импорте класса вместо модуля?
У меня были проблемы при использовании кода принятого ответаВот.
Код работает в зависимости от того, как я делаю импорт datetime. Это почему? Можно ли издеваться, чтобы он работал в обе стороны?
я используюPython 3.4
, Следующий код иллюстрирует проблему:
import pytest
from datetime import datetime
mockdate = datetime(2000, 1, 1, 0, 0, 0)
@pytest.fixture(autouse=True)
def patch_datetime_now(monkeypatch):
class mydatetime:
@classmethod
def now(cls):
return mockdate
monkeypatch.setattr('datetime.datetime', mydatetime)
def test_doesnt_work():
assert datetime.now() == mockdate
def test_works():
import datetime
assert datetime.datetime.now() == mockdate