Я использую doctest для проверки своего кода, и я получаю неожиданную ошибку при тестировании простой функции, которая выдает две строки текстового вывода. Почему?
Python 3.6.9 в Ubuntu 18.04. Та же ошибка может наблюдаться с Python 2.7 и Python 3.9.
Тестовой программой (сохраненной как doctest-bugs.py
):
#!/usr/bin/env python3
def testme():
"""
Emit test message.
>>> testme()
First line (no leading spaces)
Second line (one leading space)
"""
return """First line (no leading spaces)
Second line (one leading space)"""
Обычный запуск:
$ python3 doctest-bugs.py
Тестирование с помощью doctest
:
$ python3 -m doctest doctest-bugs.py
**********************************************************************
File "/home/filip/doctest-bugs.py", line 7, in doctest-bugs.testme
Failed example:
testme()
Expected:
First line (no leading spaces)
Second line (one leading space)
Got:
'First line (no leading spaces)\n Second line (one leading space)'
**********************************************************************
1 items had failures:
1 of 1 in doctest-bugs.testme
***Test Failed*** 1 failures.
Все строки являются дословными, и единственное начальное пространство должно быть без проблем распознано согласно документации модуля.