Как правильно использовать self.assertRaisesRegex в качестве менеджера контекста? - PullRequest
0 голосов
/ 06 ноября 2019

Пожалуйста, проверьте следующий код:

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'?
...