Пожалуйста, проверьте следующий код:
import unittest
def fn():
raise KeyError('my message')
class Test(unittest.TestCase):
def test_passes(self):
with self.assertRaisesRegex(KeyError, 'my message'):
fn()
with self.assertRaisesRegex(KeyError, 'my'):
fn()
def test_fails(self):
# Why does this test fail?
# Isn't '^my message$' a valid regex?
# How do I check if the message is exactly 'my message'?
with self.assertRaisesRegex(KeyError, '^my message$'):
fn()
unittest.main()
В выводе я получаю следующее сообщение для теста test_fails
:
AssertionError: "^ мое сообщение $«не совпадает» «мое сообщение»
Что мне не хватает?
Как уже упоминалось в комментариях, этомои вопросы:
- Почему этот тест не пройден?
- Разве
'^my message$'
не является действительным регулярным выражением? - Как проверить, является ли сообщение
exactly 'my message'
?