Я пытаюсь протестировать, используя unittest
a python 3.6 скрипт, который начинается с (my_app.py
):
import sys
from awsglue.utils import getResolvedOptions
args = getResolvedOptions(sys.argv, ['opt1', 'opt2', 'opt3'])
opt1 = args['opt1']
opt2 = args['opt2']
opt3 = args['opt3']
....
, поэтому в своем тесте я сделал что-то вроде:
import unittest
import datetime
from mock import patch
import my_app
class TestMyApp(unittest.TestCase):
@patch('awsglue.utils.getResolvedOptions')
def test_mock_stubs(self, patch_opts):
patch_opts.return_value = {}
....
, но вскоре тест завершается неудачно на import my_app
с:
ModuleNotFoundError: No module named 'awsglue'
, поскольку awsglue
не установлен локально. Как я могу протестировать модуль, который импортирует не локально установленную библиотеку, а также макетирует ее в моем тесте?