【发布时间】:2016-02-16 11:33:56
【问题描述】:
我在使用已接受答案 here 的代码时遇到问题。
代码的工作方式取决于我如何导入日期时间。 为什么会这样?是否可以模拟它以使其双向工作?
我正在使用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
【问题讨论】:
标签: python python-3.x mocking pytest monkeypatching