У меня есть библиотека python со следующей структурой репозитория:
repobase
|- mylibrary
| |- __init__.py
|- tests
|- test_mylibrary.py
До сих пор запуск тестов можно было просто выполнить, вызвав py.test
в каталоге repobase. import mylibrary
в test_mylibrary.py затем использовал локальный код в repobase/mylibrary.
Теперь я расширил библиотеку, чтобы использовать скомпилированный код. Поэтому исходный код в repobase/mylibrary не работает сам по себе. Я должен сделать setup.py build
. Это создает repobase/build/lib.linux-x86_64-2.7/mylibrary.
Есть ли разумный способ заставить py.test использовать этот каталог для импорта mylibrary? Учитывая эти ограничения:
-
Я не хочу включать никакую магию
sys.path
/import в test_mylibrary.py, потому что это может нарушить тесты в других envrionments. -
Я не хочу отказаться от возможности запускать
py.test
из repobase. Поэтому изменение PYTHONPATH не помогает, потому что.
по-прежнему будет первым вsys.path
. И таким образом repobase/mylibrary будет предпочтительнее repobase/build/lib.linux-x86_64-2.7/mylibrary.
Если нет, то какой стандартный способ для тестирования библиотек python, которые нуждаются в создании?