#python #python-unittest
#python #python-unittest
Вопрос:
У меня есть функция, которая загружает данные из data.json
файла, определенного models.py
следующим образом:
def load_data():
file_path = Path(__file__).parent / 'data.json'
with open(file_path, 'r') as file:
data = json.load(file)['data']
return data
loaded_data = load_data()
Я использовал loaded_data
все функции, определенные в models.py
. data.json
Файл содержит массив JSON.
Мой test_models.py
следующий:
from unittest.mock import patch
from models import ... (a list of function to test)
# For replaceing model.load_data()
mock_data = []
def get_mock_data():
return mock_data
@patch('models.load_data', side_effect= get_mock_restaurants)
class TestRestaurantsModel(unittest.TestCase):
Однако каким-то образом реальное models.load_data
все равно выполняется. Я знаю это, потому что я изменил file_path
to randomabc.json
и получил FileNotFoundError
. Как я могу предотвратить выполнение models.load_data
? Мне не нужно издеваться models.load_data
по существу. Мне просто нужно предотвратить ее выполнение во время теста и назначить фиктивные данные models.data
.
Комментарии:
1. Пожалуйста, укажите
load_data
функцию. Где вы это определяете? Я не видел, чтобы вы вызывалиload_data
функцию.2. Я отредактировал. Пожалуйста, проверьте.