Я хотел бы установить следующую функцию с помощью pytest, потому что я хочу предоставить свой собственный локальный тестовый файл.
def iterate_urls(dl_urls: list, path: str):
request = None
for url in dl_urls:
try:
request = requests.get(url, allow_redirects=True)
except requests.exceptions.RequestException as err:
exit('Error: URLs are invalid. URL format might have been changed or website might have moved. ' + str(err))
zipped_data = ZipFile(BytesIO(request.content))
zipped_data.extractall(path)
Я уже попробовал следующее:
@pytest.fixture(autouse=True)
def patched_env(monkeypatch):
class GetMockReturn:
content = bytes()
monkeypatch.setenv('DATABASE', 'test_update.db')
monkeypatch.setattr(dp.requests, 'get', lambda *_, **__: GetMockReturn)
monkeypatch.setattr(dp, 'ZipFile', lambda *_, **__: None)
reload(sr)
Модуль dp импортируется и содержит функцию iterate_urls (), которую необходимо пропатчить, тогда как модуль sr - это проверяемый здесь модуль
Моя проблема в том, что ZipFile не будет ничего, кроме настоящего Zip-файла, и я не могу его исправить.
Кто-нибудь знает, как это обойти?