Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2020 22:28:12

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

pytest и rootdir

Зравствуйте.
Есть много тестов, которые запускаются с помощью pytest. Некоторые из них тестируют код продукта, где выполняется команда смены директории

 os.chdir(some_dir)
, соответсвенно, это меняет текущую директорию для всех последующих тестов, и если тест ищет какой-нибудь файл по относительному пути, к примеру tests/data/testfile.txt, то он уже его не находит. Итого есть несколько вопросов по этому поводу:
каким образом наилучше решить данную проблему? создать какую-то фикстуру pytest, чтобы он всегда переходил обратно в корневую директорию? как тогда получить эту корневую директорию в той фикстуре и запомнить её?



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#2 Май 31, 2020 22:50:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Офлайн

#3 Июнь 1, 2020 20:12:56

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

pytest и rootdir

Интересная либка, взял на заметку, спасибо. Но, решил сделать вот так:

 # file tests/conftest.py
import os
import pytest
 
 
WORKING_DIR = None
 
 
@pytest.fixture
def working_dir(autouse=True, scope='function'):
    global WORKING_DIR
    if not WORKING_DIR:
        WORKING_DIR = os.getcwd()
    os.chdir(WORKING_DIR)
    return WORKING_DIR



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version