Как использовать патч для переменной в PyTest ⇐ Python
-
Гость
Как использовать патч для переменной в PyTest
У меня есть код Python ниже:
#datamanager.py импортировать ОС BASE_DIR = '' #SOME_VALUE data_list = '' #SOME_VALUE загруженные_данные = dict.fromkeys(список_данных) защита update_data(): для ключа current_model в loading_data.items(): mod_dir = os.path.join(BASE_DIR, ключ) если нет os.path.exists(mod_dir): print("Каталог модели отсутствует") продолжать model_files = os.listdir(mod_dir) если не model_files: print("Каталог модели пуст") продолжать Я пишу pytest, чтобы проверить, существует ли mod_dir. Мне придется посмеяться над этим, поскольку изначально mod_dir не будет. Для этого существует цикл for, который перебирает loaded_data. Я пытаюсь исправить эту переменную, но похоже, что это невозможно. Я пытаюсь сделать что-то вроде ниже:
def test_update_models(): ock_loaded_data = {'some_data': 'data_file'} с патчем('datamanager.loaded_data', new=mock_loaded_data): update_data() Но я продолжаю получать сообщение об ошибке атрибута: loaded_data не найден. Я думаю, что исправить значения переменных невозможно. Что мне попробовать дальше?
У меня есть код Python ниже:
#datamanager.py импортировать ОС BASE_DIR = '' #SOME_VALUE data_list = '' #SOME_VALUE загруженные_данные = dict.fromkeys(список_данных) защита update_data(): для ключа current_model в loading_data.items(): mod_dir = os.path.join(BASE_DIR, ключ) если нет os.path.exists(mod_dir): print("Каталог модели отсутствует") продолжать model_files = os.listdir(mod_dir) если не model_files: print("Каталог модели пуст") продолжать Я пишу pytest, чтобы проверить, существует ли mod_dir. Мне придется посмеяться над этим, поскольку изначально mod_dir не будет. Для этого существует цикл for, который перебирает loaded_data. Я пытаюсь исправить эту переменную, но похоже, что это невозможно. Я пытаюсь сделать что-то вроде ниже:
def test_update_models(): ock_loaded_data = {'some_data': 'data_file'} с патчем('datamanager.loaded_data', new=mock_loaded_data): update_data() Но я продолжаю получать сообщение об ошибке атрибута: loaded_data не найден. Я думаю, что исправить значения переменных невозможно. Что мне попробовать дальше?