Загрузить файлы в «tests»
This commit is contained in:
1 parent
797471b096
commit
1f031c39f9
3 files changed
+179
No files matched your search
@@ -0,0 +1,57 @@
|
||||
"""
|
||||
Конфигурационный файл Pytest с фикстурами для инициализации клиента и тестовых данных.
|
||||
"""
|
||||
|
||||
import os
|
||||
import uuid
|
||||
import pytest
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from api.disk_client import YandexDiskClient
|
||||
|
||||
# Загрузка переменных окружения из .env файла
|
||||
load_dotenv()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def auth_token() -> str:
|
||||
"""
|
||||
Фикстура получения токена авторизации.
|
||||
Проверяет наличие токена в переменных окружения. Если токен не задан,
|
||||
тесты пропускаются с информативным сообщением.
|
||||
"""
|
||||
token = os.getenv("YANDEX_DISK_TOKEN")
|
||||
if not token or token.strip() == "":
|
||||
pytest.skip(
|
||||
"YANDEX_DISK_TOKEN не найден в переменных окружения. "
|
||||
"Задайте его в .env файле или через export YANDEX_DISK_TOKEN=..."
|
||||
)
|
||||
return token.strip()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def disk_client(auth_token: str) -> YandexDiskClient:
|
||||
"""
|
||||
Фикстура создания экземпляра API-клиента на всю тестовую сессию.
|
||||
"""
|
||||
return YandexDiskClient(token=auth_token)
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def temp_folder(disk_client: YandexDiskClient):
|
||||
"""
|
||||
Фикстура создания изолированной временной папки для теста.
|
||||
Гарантирует удаление созданной папки после завершения теста (Teardown).
|
||||
"""
|
||||
unique_suffix = uuid.uuid4().hex[:8]
|
||||
folder_path = f"pytest_temp_{unique_suffix}"
|
||||
|
||||
# Setup: создаем папку
|
||||
create_resp = disk_client.create_folder(folder_path)
|
||||
assert create_resp.status_code == 201, f"Не удалось подготовить фикстуру папки: {create_resp.text}"
|
||||
|
||||
# Передаем управление в тест
|
||||
yield folder_path
|
||||
|
||||
# Teardown: удаляем папку навсегда (мимо корзины)
|
||||
disk_client.delete_resource(folder_path, permanently=True)
|
||||
Reference in new issue
Block a user