Zen of Python
18.7K subscribers
1.49K photos
202 videos
38 files
3.69K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
match в pytest ищет регулярное выражение

Тест с pytest.raises(ValueError, match="bad.file") может пройти на сообщении badXfile. Точка здесь означает любой символ, а не буквальную точку в имени файла. И совпадать со всем сообщением шаблон тоже не обязан.

Параметр match использует re.search. Для буквального фрагмента передайте re.escape("bad.file"). Это защитит метасимволы, но по-прежнему будет искать фрагмент внутри более длинной строки. Если важно полное равенство, отдельно сравните str(exc.value) с ожидаемым текстом.

Ещё одна деталь контракта pytest: поиск учитывает заметки __notes__ из PEP 678. На Python 3.11+ совпадение может найтись в добавленной заметке, хотя его нет в основном сообщении исключения.
❤1