Почему 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

Ответы на вопрос(2)

Ваш ответ на вопрос