В настоящее время использую модульный тест Python, и мне хотелось бы получить выходные данные панели вызова функции. В моем тестировании мне нужно сначала вызвать foo, чтобы передать правильный рабочий процесс в bar. Однако, когда у меня есть функция-оболочка для теста, я могу захватывать только аргументы, но не фактическое возвращаемое значение метода.
Есть ли способ сделать это с помощью модульного теста Python? Я прочитал документацию по атрибуту unittestock.wraps, но до сих пор не могу понять, как его использовать.
# module 1
def pass_wrap(*args):
print(args)
class OriginalClass():
def foo(self, a, b):
return_val = self.bar(a,b)
is_validated = self.baz(return_val)
return is_validated
def bar(self, a, b):
return a + b
def baz(self, result):
return result > 2
# testing file
from module_1 import OriginalClass
def wrapper(*args):
print(args) # prints the calling args
class Test():
@patch("module_1.OriginalClass.bar", wraps=pass_wrap)
def test_01(self, mock):
# how do I get the return result of bar?
OriginalClass.foo(1,2)
args, kwargs = mock.call_args
print(args, kwargs)
Подробнее здесь: https://stackoverflow.com/questions/798 ... in-the-cal