Я пытаюсь смоделировать класс, который создается в конструкторе класса, который я пытаюсь проверить. Если я определяю класс, который пытаюсь смоделировать в том же модуле, что и тот, который пытаюсь проверить, все работает нормально, но когда они находятся в отдельных модулях, я получаю ошибки.
Вот мой пример, взятый из здесь (Обратите внимание, что в моем реальном примере тестовый класс находится в подмодуле «tests», а два других файла находятся в модуле «app.sr c .code ...».
Что мне не хватает?
helper.py:
import os
class Helper:
def __init__(self, path):
self.path = path
def get_path(self):
base_path = os.getcwd()
return os.path.join(base_path, self.path)
worker.py:
from helper import Helper
class Worker:
def __init__(self):
self.helper = Helper('db')
def work(self):
path = self.helper.get_path()
print(f'Working on {path}')
return path
test_worker.py:
import unittest
from unittest.mock import patch
from worker import Worker
class WorkerTest(unittest.TestCase):
def test_patching_class(self):
with patch('helper.Helper') as MockHelper:
MockHelper.return_value.get_path.return_value = 'testing'
worker = Worker()
MockHelper.assert_called_once_with('db')
self.assertEqual(worker.work(), 'testing')