В pytest вы можете зарегистрировать ловушку для предоставления настраиваемого сообщения подтверждения через:
def pytest_assertrepr_compare(config, left, right, op):
if isinstance(left, Foo) and isinstance(right, Foo):
return ["Assert failed because Foo!"]
Это работает только для тестов вида:
assert Foo() == Foo()
assert 5 is 6
assert "char" in "mychar"
assert 10 > 20
и так далее. Он не работает для выражений с одним операндом:
assert Foo()
assert ProduceValue()
Можно ли написать ловушку, которая отображает пользовательское сообщение подтверждения, если assert вызывается с определенным значением? Мне не нужно, чтобы это происходило для всех значений, только когда оценивается определенный класс. Если есть альтернативный способ «провалить» тест с пользовательским утверждением, это тоже сработает.