Как 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?

Другие вопросы по тегам