Я не могу получить путь к текущему файлу, тестируемому в pytest.
Например, рассмотрим что-то вроде следующей структуры каталогов:
devops_scripts
├── devops_utilities
│ ├── backupMonthly.py
│ ├── generateAnsibleINI.py
│ └── tests
│ └── test_backup.txt
├── monitoring
│ ├── analyizeCatalinaLog.py
│ ├── fetchCatalinaLogs.py
│ └── getaccountcredit.py
├── pi_provisioning
│ ├── piImageMake.sh
│ ├── piImageRead.sh
│ └── piImageSquashSd.py
└── script_utilities
├── README.md
├── __init__.py
├── execute.py
├── path_handling.py
├── sql_handling.py
└── tests
├── sourcedirfortests
│ ├── file1.txt
│ └── file2.txt
├── test_ansible.txt
└── test_execute.txt
Если я запускаюpytest
с верхнего уровня опустится до тестирования test_execute.txt
.Когда тестируется test_execute.txt
, как мне получить путь к файлу?(Я могу получить от rootdir
до os.path.abspath('.')
, но это не то, что мне нужно)
(мне нужно иметь возможность установить эти пути для проверки некоторых вещей выполнения на file1.txt
и file2.txt
. Мне также нужно, чтобы это работало независимо от того, насколько глубоко вложены различные вещи, которые я пытаюсь протестировать.) Меня не очень интересует настройка определенных каталогов временного тестирования, их удаление и т. Д. Мне просто нужен путь к файлукоторый проверяется.
Я пробовал такие вещи, как:
>>> print os.path.abspath(__file__)
Но это просто дает: UNEXPECTED EXCEPTION: NameError("name '__file__' is not defined",)
Я не выше, даже доступ к некоторым внутренним функциям /объекты в py.test
(я должен добавить, что мне это нужно для работы в Python 2.7 и Python 3.x)