В приведенном ниже примере я хотел бы знать, какой класс и какая функция вернули ошибку. Я играл с traceback
, но я не получил ничего релевантного (None, None, None)
, []
, ...
import builtins
class AssertionError(BaseException):
def __init__(self, *args, **kwargs):
print(args, kwargs)
traceback.print_exc(file=sys.stdout)
print(sys.exc_info())
tb = sys.exc_info()[-1]
stk = traceback.extract_tb(tb, 1)
print(stk)
# for func_name in functions_chain:
# if func_name.starts_with('test'):
# get_function(func_name)._status = 'failure'
raise builtins.AssertionError
class Foo:
def run(self):
self.test()
def test(self):
assert False
Foo().run()
Я хотел бы получить имя функции, вызываемые до ошибки утверждения. Здесь я должен получить ['test', 'run']
. Если я найду имя функции, начинающееся с test
, я бы хотел пометить его атрибутом, который позже смогу прочитать из экземпляра Foo
.
Как я могу поймать, что мне нужно в AssertionError
?
В настоящее время я получаю этот вывод:
() {}
NoneType: None
(None, None, None)
[]