Я новичок в Python. Я пытаюсь смоделировать datetime.datetime.now (), но он не работает:
class Myclass:
def update(self):
time = datetime.datetime.now().strftime("%s")
...
Вышеуказанная функция находится в mypackage/my_class.py
. из этого поста ( Попытка смоделировать datetime.date.today (), но не работает ):
@patch('mypackage.my_class.Myclass.datetime')
def test_update(self, datetime_mock):
datetime_mock.datetime.now.return_value=datetime.datetime(2020,1,1,1,1,1,1)
Я получаю сообщение об ошибке следующим образом:
E AttributeError: <class 'mypackage.my_class.Myclass'> does not have the attribute 'datetime'
Затем я изменил патч, как показано ниже:
@patch('datetime')
def test_update(self, datetime_mock):
datetime_mock.datetime.now.return_value=datetime.datetime(2020,1,1,1,1,1,1)
Теперь я получаю сообщение об ошибке, как показано ниже:
venv/lib/python3.6/site-packages/mock/mock.py:1591: in _get_target
target, attribute = target.rsplit('.', 1)
E ValueError: not enough values to unpack (expected 2, got 1)
E TypeError: Need a valid target to patch. You supplied: 'datetime'