Модуль doctest ищет все строки документации в файле и выполняет любой встроенный код в нем, так что да, можно использовать doctest для классов.
Что касается того, лучше ли помещать тестовые документы в строку документации класса или конструктор, я думаю, это зависит от того, что именно вы документируете.
Если строка документации дает общий обзор класса и того, как его использовать, то я думаю, что лучше поместить его в класс.
Если строка документации конкретно о том, как создавать экземпляры класса, то она должна идти в методе __init__
.
Помните, что цель doctests - это, прежде всего, иметь самопроверяющийся пример кода в документации, поэтому IMHO аспект документации должен иметь приоритет над аспектом тестирования.
Изменить:
В приведенном выше примере нет кода для выполнения doctest - выполнение python test.py -v
выполнит основной код Python, который просто определяет класс.
Вам нужно добавить это в конец файла:
if __name__ == "__main__":
import doctest
doctest.testmod()
В качестве альтернативы, если вы используете Python 2.6 или новее, запустите его с:
python -m doctest -v test.py