Comments 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
+1
Согласен, это хороший вариант, что бы проверить текст.
Если нужно проверить, что-то большее чем первый аргумент исключения, то после with ... нужно написать "as error" и после контекстного менеджера проверить всё, что нужно )
+1
Только нужно помнить, что это regexp под капотом и в вашем случае нужно сделать match="^object has no attribute 'name'$"
0
UFO just landed and posted this here
Sign up to leave a comment.
Python — тестирование с помощью pytest(ч.2)