class Foo():
def __init__(self):
print('конструктор')
def __del__(self):
print('деструктор')
raise ValueError('плохой деструктор')
def test_foo():
f = Foo()
assert f, 'Инстанцирован'
И собственно работа:
$ pytest -sv test_e.py
=========================== test session starts ============================
platform linux -- Python 3.6.7, pytest-3.7.2, py-1.7.0, pluggy-0.8.1 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/unera, inifile:
plugins: teamcity-messages-1.21, aiohttp-0.3.0
collected 1 item
test_e.py::test_foo конструктор
деструктор
Exception ignored in: <bound method Foo.__del__ of <test_e.Foo object at 0x7f5d99c2c198>>
Traceback (most recent call last):
File "/home/unera/test_e.py", line 7, in __del__
raise ValueError('плохой деструктор')
ValueError: плохой деструктор
PASSED
========================= 1 passed in 0.03 seconds =========================
Прямо даже уже и не знаю чо сказать. И правда, подумаешь - ну исключение какое-то. Не считать же тестирование неуспешным при этом, правда?
passed, Карл, passed!