Как исправить патч google.cloud.storage в python - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть класс, который импортирует облако Google:

StorageUtils:

from google.cloud import storage

У меня есть приложение, которое использует StorageUtils:

Приложение:

import StorageUtils

Затем у меня есть тест, который я хочу протестировать в своем приложении

Тест:

from app import App

Я хочу протестировать свое приложение без использования облака Google. Самый простой способ, который я нашел, - это использовать sys.modules:

import sys
from unittest.mock import MagicMock
sys.modules["google.cloud.storage"] = MagicMock()

Я нашел это решение довольно обходным. Есть ли другой способ использовать макет Python?

1 Ответ

0 голосов
/ 10 ноября 2019

В этом случае, если файл, содержащий класс StorageUtils, называется storage_utils.py:

#test_storage.py
@patch("storage_utils.storage")
def test_storage(st):
    storage = StorageUtils()
...