В настоящее время использую python unittest, и мне хотелось бы получить выходные данные панели вызова функции. В моем тестировании мне нужно сначала вызвать foo, чтобы правильный рабочий процесс перешел в bar. Однако когда у меня есть функция-оболочка для теста, я могу захватывать только аргументы, но не фактическое возвращаемое значение метода.
Есть ли способ сделать это с помощью python unittest? Также я прочитал документацию по атрибуту 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 ... od-that-is