Один из способов насмешки над классами Redis
и BinanceClient
заключается в использовании декоратора patch
в вашем тестовом классе, например:
from unittest import TestCase
from unittest.mock import patch
from package.module import CompositionClass
class TestCompositionClass(TestCase):
@patch('package.module.BinanceClient')
@patch('package.module.Redis')
def test_do_processing(self, mock_redis, mock_binance):
c = CompositionClass()
data = [...]
c.do_processing(data)
# Perform your assertions
# Check that mocks were called
mock_redis.return_value.write.assert_called_once_with(data)
mock_binance.return_value.buy.assert_called_once_with(data.amount_to_buy)
Обратите внимание, что путь к @patch
- это путь к модулю, содержащему CompositionClass
и его импорт для Redis
и BinanceClient
. Исправление происходит в этом модуле, а не в модуле, содержащем сами реализации Redis
и BinanceClient
.