Как запустить doctest примеры из строки, но не docstring? Зачем нужен отступ? - PullRequest
1 голос
/ 16 февраля 2020

Согласно документации модуля Python doctest, функцию run_docstring_examples можно вызывать с различными объектами, такими как функция, класс или модуль, но также со строкой. .

Я предполагал, что при вызове со строкой он будет запускать примеры в этой строке. Но это не похоже на работу. Вот что я попробовал:

example = """
>>> True
False
"""

import doctest
doctest.run_docstring_examples(example, globals(), verbose=True, name="example")

Это приводит только к Finding tests in example; больше ничего.

Что я делаю не так?

Проигрывая немного больше и изменяя способ определения example (обратите внимание на отступ)

example = """
    >>> True
    False
"""

it работает, и результат такой, как и ожидалось:

Finding tests in example
Trying:
    False
Expecting:
    True
**********************************************************************
Line 2, in example
Failed example:
    False
Expected:
    True
Got:
    False

Итак, теперь вопрос:

  • Зачем нужен отступ?
  • Это ошибка или функция?

Редактировать :

  • Среда: Python 3.7.2 из ноутбука Jupyter, с I Python 7.2 .0
  • Непосредственно в интерпретаторе Python 3.7.2 он работает как положено.
...