Насмешливая timedelta.total_seconds () - PullRequest
       5

Насмешливая timedelta.total_seconds ()

0 голосов
/ 16 октября 2018

Есть ли способ смоделировать total_seconds () из следующего кода?

start = datetime.now()
...
end = datetime.now()
diff = (end - start).total_seconds()

Я пробовал, но получаю эту ошибку

TypeError: неупорядоченные типы: MagicMock()> int ()

1 Ответ

0 голосов
/ 16 октября 2018

Это дурной пример, но он может дать некоторые подсказки:

from datetime import datetime
import unittest


def need_test():
    start = datetime.datetime.now()
    end = datetime.datetime.now()
    diff = (end - start).total_seconds()
    return diff


class SimpleTestCase(unittest.TestCase):

    def setUp(self):
        datetime_mock = mock.patch(__name__ + ".datetime")
        self.datetime_mock = datetime_mock.start()

    def test_need_test(self):
        self.datetime_mock.datetime.now().__sub__().total_seconds.return_value = 123
        self.assertEqual(need_test(), 123)

Прежде всего mock.patch(__name__ + ".datetime") следует изменить на mock.patch.object(module.where.is.your.function, "datetime").И после этого self.datetime_mock.datetime.now() (возможно) может быть заменен на self.datetime_mock.now()

. Этот пример не лучший способ сделать такое тестирование, но он может решить ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...