Как мне организовать свои тесты pytest, если я не распространяю их с моим пакетом?

Какпредложено в документации по pytestЯ настроил пакет с намерением нене распространяя мои тесты вместе с моим пакетом:

setup.py
mypkg/
    __init__.py
    mypkg/
      appmodule.py  
tests/
    test_app.py
    ...

но я не совсем понимаю, как гарантировать, что эти тесты будут работать правильно, когда они присутствуют (например, в Travis CI или в клонах каталога проекта).

Я хочу, чтобы импорт в моих тестовых сценариях применялся к источнику в соседнемmypkg/ каталог (а не к любомуmypkg которые могут быть установлены вsite-packages), но я получаю ошибки, которые меня озадачивают.

Если я последую совету вpytest документация и не ставьте__init__.py вtests/ затем с

from __future__ import absolute_import
from mypkg.appmodule import * 

я получил

Ошибка импорта: нет модуля с именем mypkg.appmodule

в то время как с

from __future__ import absolute_import
from ..mypkg.appmodule import * 

я получил

ValueError: Попытка относительного импорта в не пакет

И если я проигнорирую документацию и включу__init__.pyто с последним я получаю

ValueError: Попытка относительного импорта за пределы пакета верхнего уровня

Только включив__init__.py и используя

from __future__ import absolute_import
from mypkg.appmodule import * 

пройдут ли мои тесты? Но мне не ясно, что это будет импортировать источник из соседнегоmypkg/ каталог, еслиmypkg установлен вsite-packages.

Как правильно организовать мойpytest тесты, чтобы они были отделены от моих проектов и не распространялись вместе с ними, но всегда импортировали смежный источник, а не версию пакета, установленного здесь?

Ответы на вопрос(1)

Ваш ответ на вопрос