Комментарии 5
with pytest.raises(TariffDoesNotExist) as error:
Это хороший код. Но с бывает когда ловят общие или встроенные исключения, то тогда надо сообщение проверять.
Вот этот тест никогда не упядёт, так как в нем опечатка, которая кидает ожидаемое исключение.
def test_attribute_name_is_not_set_for_human(data):
with pytest.raises(AttributeError):
data.huNan.name
В таких случаях надо еще сообщение проверять.
def test_attribute_name_is_not_set_for_human(data):
with pytest.raises(AttributeError, match="object has no attribute 'name'"):
data.huNan.name
Согласен, это хороший вариант, что бы проверить текст.
Если нужно проверить, что-то большее чем первый аргумент исключения, то после with ... нужно написать "as error" и после контекстного менеджера проверить всё, что нужно )
Только нужно помнить, что это regexp под капотом и в вашем случае нужно сделать match="^object has no attribute 'name'$"
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Python — тестирование с помощью pytest(ч.2)