Как monkeypatch подключение к реестру с pytest
В настоящее время я пишу юнит-тесты для моего скрипта Python. Одна из моих функций имеет следующий код:
from _winreg import *
aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
aKey = OpenKey(aReg, LIBRARIES_REG_KEY)
count, value, type = QueryInfoKey(aKey)
ver_list = [EnumKey(aKey, x) for x in range(count) if EnumKey(aKey, x).startswith(version)]
Я использую monkeypatch для большинства моих тестов. Мне было интересно, если бы был способ обезопасить функцию ConnectRegistry (или даже OpenKey), чтобы вернуть данные, которые я хочу. Я бы подал ему разные данные и проверил поведение.
1 ответ
Действительно ли импорт находится в тестируемой функции? Если нет, будет ли что-то подобное работать?
def my_CR(arg1, arg2):
return something_useful
def my_OK(arg1, arg2):
return something_else_useful
def test_myfunc():
ConnectRegistry = my_CR
OpenKey = my_OK
assert function_calling_CR_and_OK(...) == expected_value
Вам также нужно будет установить OpenKey и EnumKey?