amarao (amarao_san) wrote,
amarao
amarao_san

pytest

E       TypeError: can't set attributes of built-in/extension type 'datetime.datetime'

Бу.

Это при попытке замокать datetime.datetime.now()

Правильное решение:

В коде программы:

from datetime import datetime

def foo():
    return datetime.now()


В тесте:

def test_foo(wait, logger):
    with mock.patch.object(wait, "datetime") as dt:
        dt.now = mock.Mock(return_value=5)
        assert wait.foo() == 5


У меня от метапрограммирования начинают чесаться зубы.
Tags: pytest, python
Subscribe

  • innernet

    Кто-то с ним работал? https://blog.tonari.no/introducing-innernet Пока что по описанию оно звучит как офигенно.

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments