Я пытаюсь использовать pytest и monkeypatch для модульного тестирования метода, использующего сторонний пакет интеграции данных.
Вот несколько примеров псевдокода:
from third_party.data_integration import Account
def fetch_data():
account_id = "123"
account_token = "234"
account = Account(account_id, account_token)
account.download('path')
return True
Я надеюсь сделать что-то похожее на удар в моем тестовом файле, чтобы обезопасить функцию экземпляра download
:
def test_fetch_data(monkeypatch):
def download():
return '123'
with monkeypatch.context() as m:
m.setattr('third_party.data_integration.Account.download', download)
assert fetch_data() == True
Очевидно, что m.setattr('third_party.data_integration.Account.download', download)
будет работать только для статического метода вместо экземпляра метода или метода класса. Какова лучшая практика для проведения такого теста, чтобы обезьяна исправила сторонний метод экземпляра собственного пакета?