Почему unittest требует наличия __init__.py в Python 3.6? ⇐ Python

Программы на Python
Anonymous
Почему unittest требует наличия __init__.py в Python 3.6?

Сообщение Anonymous »

Я только что наткнулся на эту строку в unittest python3.6 (

Код: Выделить всё

/usr/lib/python3.6/unittest/loader.py:286
):

Код: Выделить всё

is_not_importable = not os.path.isfile(os.path.join(start_dir, '__init__.py'))
из-за чего при обнаружении unittest не удалось запустить мои тесты. Почему эта строка все еще присутствует в библиотеке Python3.6 (Ubuntu 17.10, я не знаю, имеет ли это значение), если __init__.py больше не требуется, начиная с Python3.3?
Я считаю, что это ошибка, но мне нужно подтверждение.
Когда в каталоге foo нет __init__.py, следующая команда выполняется нормально (

Код: Выделить всё

{PROJECT_HOME}
является заполнителем):

Код: Выделить всё

python3.6 -m unittest discover tests.foo -t {PROJECT_HOME} -p "*.py"
пока это не удается (с ImportError: начальный каталог не может быть импортирован):

Код: Выделить всё

python3.6 -m unittest discover tests/foo -t {PROJECT_HOME} -p "*.py"
Разница в том, что . -> / При наличии __init__.py обе команды работают одинаково.

Подробнее здесь: https://stackoverflow.com/questions/480 ... python-3-6

Вернуться в «Python»