В моем приложении на Python я открываю mp3-файлы с относительными путями, откуда была запущена программа.Для простоты я сделал минимальное воспроизведение проблемы, которая возникла в моем проекте здесь .
В принципе, у меня есть такая структура:
src
└─ main.py
test
└─ test_main.py
В main.py
у меня есть простая функция, которая печатает и возвращает текущий рабочий каталог:
def get_cwd() -> str:
directory = os.path.basename(os.getcwd())
print('Current directory =', directory)
return directory
Так что, если я cd
в папку src
и запусту python main.py
я вижу:
Current directory = src
Это желаемое поведение, так как в моей программе пути к файлам mp3 относятся к src
.
Проблема возникает, когда я пытаюсь написать тесты.Кажется, я не могу пройти такой тест, независимо от того, что я передаю --start-directory
и --top-level-directory
:
def test_get_cwd(self):
print('testing get_cwd()')
current_dir = get_cwd()
self.assertIsNotNone(current_dir)
self.assertEqual(current_dir, 'src')
Вопрос: Как мне запуститьмои тесты, как если бы они выполнялись в контексте определенного каталога, если они сохранены в другом каталоге?
Ограничения:
- тесты должны импортироваться с использованием абсолютных путей, как вмой пример:
from
src.main import get_cwd