#python #кодировка #юнит_тесты #unicode
Не могу добиться, чтобы методы assert корректно выводили сообщения в юникоде: # coding=utf-8 from unittest import TestCase class Example(TestCase): def test_mcve(self): message = u'Привет, мир!' print message self.assertTrue(False, message) Результат выполнения: Testing started at 17:07 ... Привет, мир! Failure Traceback (most recent call last): File "/home/n.volynkin/example/mcve.py", line 9, in test_mcve self.assertTrue(False, message) AssertionError: \u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0438\u0440! То есть просто так строка корректно выводится в stdout, а из ассерта - ломается юникод. Как получить нормальные строки?
Ответы
Ответ 1
Совершенно неожиданно я нашёл ответ: class Example(TestCase): def test_mcve(self): message = u'Привет, мир!' print message self.assertTrue(False, message.encode('utf-8')) Источник: https://stackoverflow.com/a/14181711/2790048 Когда пойму магию юникода в Python, дополню ответ.
Комментариев нет:
Отправить комментарий