Есть ли способ захватить возвращаемое значение метода, который вызывается в стеке вызовов?Python

Программы на Python
Ответить
Anonymous
 Есть ли способ захватить возвращаемое значение метода, который вызывается в стеке вызовов?

Сообщение Anonymous »

В настоящее время использую модульный тест Python, и мне хотелось бы получить выходные данные панели вызова функции. В моем тестировании мне нужно сначала вызвать foo, чтобы передать правильный рабочий процесс в bar. Однако, когда у меня есть функция-оболочка для теста, я могу захватывать только аргументы, но не фактическое возвращаемое значение метода.
Есть ли способ сделать это с помощью модульного теста Python? Я прочитал документацию по атрибуту unittestock.wraps, но до сих пор не могу понять, как его использовать.
# module 1

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»