Уроки Python: тест для None

Использование Python 2.7 Я пытаюсь проверить, что результат конкретного вызова функции None

Я ожидал бы, что эти тесты пройдут (извините довольно глупый пример)

def six_or_none(val):
    """
    >>> six_or_none(6)
    6
    >>> six_or_none(4)
    None
    """
    if val == 6:
        return 6
    return None

Однако они дают следующий результат:

Failed example:
    six_or_none(4)
Expected:
    None
Got nothing

Какой правильный способ проверить None в доктринах?

Ответ 1

Интерпретатор Python игнорирует возвращаемые значения None, поэтому doctests делают то же самое.

Проверить вместо is None:

>>> six_or_none(4) is None
True

Ответ 2

Другим вариантом будет прямая проверка для None:

def six_or_none(val):
    """
    >>> six_or_none(6)
    6
    >>> six_or_none(4)
    """
    if val == 6:
        return 6
    return None