У меня есть библиотека C, для которой я пишу оболочку.Большинство функций в этой библиотеке принимают «аргументы out» (результат возвращается в переданной переменной).Итак, как мне протестировать случай, когда: - self._system вернулась как None (из C как побочный эффект), но - функция возвращает успех
Пожалуйста, смотрите код ниже для получения более подробной информации
main.py
myLibDLL = CDLL('mylib.dll')
class System():
_system = None
def __init__(self):
self._system = c_void_p(None)
def GetSys(self):
# - The C function prototype
# ERROR_CODE XXX_API CGetSys(void* phSys)
# - myLibDLL.CGetSys() is the call to mock
retErr = myLibDLL.CGetSys(byref(self._system))
checkReturnErr(retErr)
if self._system.value == None:
raise BaseException('Failed to Get Sys') # case to test
файл модульных тестов
@patch("main.myLibDLL.CGetSys")
def test_GetSys_sysIsNone_afterCGetSysisCalled(self, mock_CGetSys):
self.sys = System()
# What expectations shoudl I set here?
mock_CGetSys.return_value = 0 # to pass checkReturnErr()
mock_CGetSys.??? = None # the question
# test
with self.assertRaises(BaseException):
self.system.GetSys()