Я пишу модульные тесты, используя перенос , и я хотел бы проверить, вызывает ли функция предупреждение (функция использует warnings.warn.
). Это легко сделать?
def your_code():
# ...
warnings.warn("deprecated", DeprecationWarning)
# ...
def your_test():
with warnings.catch_warnings(record=True) as w:
your_code()
assert len(w) > 1
Вместо того, чтобы просто проверять длину, вы, конечно, можете проверить ее более подробно:
assert str(w.args[0]) == "deprecated"
В python 2.7 или новее сделайте это с последней проверкой как:
assert str(w[0].message[0]) == "deprecated"