Вывод предупреждения на основе результата выражения - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь выводить предупреждения в моей настройке pytest на основе результата выражения. По сути, я пытаюсь отразить оператор assert , не останавливая мой код , при этом мне не нужно вручную форматировать предупреждающее сообщение для имитации каждого выражения.

Например, я хочу сделать это:

test_variable = 5
assert test_variable == 10

# Output:
AssertionError: assert 5 == 10

в более простую версию этого:

test_variable = 5
if test_variable != 10:
    warnings.warn(f"{test_variable} != 10") # Manually format the output.

# Output:
UserWarning: 5 != 10

Я не смог найти ничего в модуле warnings для Python о том, как вывести предупреждение на основе ложного выражения.

Есть идеи, как упростить вывод предупреждений, чтобы мне не приходилось форматировать каждую проверку, которую я хочу выполнить в своих тестах?

1 Ответ

0 голосов
/ 19 апреля 2019

pytest использует утверждение python. Вы можете добавить строку после оператора assert, чтобы сгенерировать предупреждение.

assert my_var == 10 , "Value of my_var: {} is not equal to 10".format(my_var)

Это напечатает это, если my_var 5:

Value of my_var: 5 is not equal to 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...