Фреймворк для тестирования Python: помогает писать небольшие тесты и подходит для сложного функционального тестирования приложений и библиотек.
gabrielcnr/pytest-datadir
Плагин для pytest, который копирует каталоги с тестовыми данными во временные папки, чтобы тесты могли безопасно читать и изменять файлы фикстур.
- Звёзды
- 277
- Форки
- 28
- Открытые issues
- 8
- Последний коммит
- 4 дня назад
Что это?
pytest-datadir предоставляет тестам доступ к файлам данных, хранящимся рядом с ними. По умолчанию модуль тестов с именем test_hello.py может использовать соответствующий каталог test_hello/ через фикстуру datadir, а каталог data/ в корне проекта доступен через shared_datadir. Обе фикстуры возвращают объекты pathlib.Path, поэтому для чтения файлов можно использовать стандартные операции с путями.
Содержимое каталога с данными копируется во временное место для каждого теста. Тесты могут записывать и изменять файлы, не затрагивая исходные фикстуры и другие тесты. Фикстуры lazy_datadir и lazy_shared_datadir, добавленные в версии 1.7.0, копируют файлы только при обращении к ним через joinpath или оператор / — это позволяет не копировать большие каталоги, которые тест не использует.
Ключевые возможности
- 01Предоставляет каталог данных для конкретного модуля через фикстуру datadir.
- 02Предоставляет общий каталог данных через фикстуру shared_datadir.
- 03Копирует данные во временную папку, сохраняя исходные файлы неизменными.
- 04Предлагает lazy_datadir и lazy_shared_datadir, которые копируют файлы только при обращении к ним.
- 05Возвращает из фикстур объекты pathlib.Path.
Сценарии использования
- Хранение примеров входных файлов и фикстур для тестов парсеров и обработки файлов.
- Написание тестов, создающих или изменяющих файлы без изменения исходных фикстур.
- Совместное использование общих тестовых данных в разных модулях через единый каталог данных.
Что важно знать
- В метаданных репозитория указано, что лицензия — NOASSERTION, а в README указана MIT. Перед использованием проверьте лицензию.
В подборках
Темы
Частые вопросы
- Что такое pytest-datadir?
- Плагин для pytest, который копирует каталоги с тестовыми данными во временные папки, чтобы тесты могли безопасно читать и изменять файлы фикстур. pytest-datadir предоставляет тестам доступ к файлам данных, хранящимся рядом с ними. По умолчанию модуль тестов с именем test_hello.py может использовать соответствующий каталог test_hello/ через фикстуру datadir, а каталог data/ в корне проекта доступен через shared_datadir. Обе фикстуры возвращают объекты pathlib.Path, поэтому для чтения файлов можно использовать стандартные операции с путями.
- pytest-datadir можно использовать бесплатно? Какая у него лицензия?
- pytest-datadir распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pytest-datadir всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pytest-datadir — 3 нояб. 2026 г..
- Для чего можно использовать pytest-datadir?
- Хранение примеров входных файлов и фикстур для тестов парсеров и обработки файлов. Написание тестов, создающих или изменяющих файлы без изменения исходных фикстур. Совместное использование общих тестовых данных в разных модулях через единый каталог данных.
- Где скачать pytest-datadir?
- Исходный код и инструкции по установке — на GitHub: https://github.com/gabrielcnr/pytest-datadir
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Python-пакет для генерации фиктивных данных — имён, адресов, текста и многого другого — для заполнения баз данных, тестирования и анонимизации данных.
Библиотека Python для генерации вымышленных, но реалистичных данных — имён, адресов, email и финансовых значений — с поддержкой 47 локалей.
Библиотека Python, которая записывает HTTP-взаимодействия во время тестов и воспроизводит их позднее, чтобы тесты запускались офлайн и детерминированно.
Плагин для pytest, который запускает тесты параллельно на нескольких CPU и позволяет циклически перезапускать падающие тесты.
Плагин для pytest, позволяющий писать тестовые функции как корутины и напрямую вызывать в них код asyncio через await.