Могу ли я использовать макет для имитации отсутствующего модуля в моих модульных тестах? - PullRequest
0 голосов
/ 07 мая 2019

Мой код используется в некоторых системах, в которых отсутствуют определенные модули Python (например, yaml ,asticsearch).

Я хочу написать модульный тест, чтобы убедиться, что код все еще выполняется, если эти модули не работают.имеется в наличии.

Могу ли я использовать mock для имитации ошибки ImportError, если какой-либо из этих модулей импортируется?

Полагаю, я представляю себе что-то подобное:

import mock
import unittest

class TestMyTool(unittest.TestCase):

    @mock.error_on_import(['yaml', 'elasticsearch'])
    def test(self):

        with self.assertRaises(ImportError):
            import yaml
        with self.assertRaises(ImportError):
            import elasticsearch


1 Ответ

0 голосов
/ 08 мая 2019

Рассматривали ли вы вариант создания «needs.txt», в котором перечислены все зависимости, и установите их с помощью «pip install -r needs.txt» перед выполнением своего кода?

...