# Yandex Disk REST API Automation Tests Проект автоматизированного тестирования сервиса **Яндекс Диск** на базе **Python**, **pytest** и **requests**. Проект разработан в соответствии с техническим заданием и проверяет работу ключевых методов REST API: - **PUT** — создание ресурса (папки) - **GET** — чтение метаданных ресурса - **POST** — публикация ресурса (получение публичной ссылки) - **DELETE** — удаление ресурса (очистка диска) Также включены негативные сценарии (попытка создания дубликата, обращение к несуществующему ресурсу, невалидный токен). --- ## 🛠 Стек технологий - **Python 3.10+** - **Pytest** — тестовый фреймворк, фикстуры, параметризация - **Requests** — HTTP-клиент - **Python-dotenv** — управление секретами и переменными окружения - **GitHub Actions** — CI/CD пайплайн для автоматического прогона тестов --- ## 📁 Структура проекта ```text yandex-disk-api-tests/ ├── .github/ │ └── workflows/ │ └── tests.yml # CI/CD пайплайн (GitHub Actions) ├── api/ │ ├── __init__.py │ └── disk_client.py # API-клиент (обёртка над requests с методами GET, POST, PUT, DELETE) ├── tests/ │ ├── __init__.py │ ├── conftest.py # Сессионные фикстуры и teardown временных ресурсов │ └── test_disk_crud.py # Позитивные и негативные тестовые сценарии ├── .env.example # Шаблон переменных окружения ├── .gitignore # Исключения для git ├── pytest.ini # Конфигурация запуска Pytest ├── requirements.txt # Список зависимостей └── README.md # Документация проекта ``` --- ## 🔑 Подготовка и авторизация По условиям задания запрещено использовать личную учетную запись для получения OAuth-токена. 1. Зарегистрируйте отдельный тестовый аккаунт на Яндексе или воспользуйтесь [Полигоном API Яндекс Диска](https://yandex.ru/dev/disk/poligon/). 2. Получите OAuth-токен с правами доступа к Яндекс Диску (`cloud_api:disk.read`, `cloud_api:disk.write` или полный доступ к Диску). 3. Скопируйте полученный токен. --- ## 🚀 Локальный запуск ### 1. Клонирование репозитория ```bash git clone https://github.com//yandex-disk-api-tests.git cd yandex-disk-api-tests ``` ### 2. Создание и активация виртуального окружения * **Linux / macOS:** ```bash python3 -m venv .venv source .venv/bin/activate ``` * **Windows (PowerShell):** ```powershell python -m venv .venv .venv\Scripts\Activate.ps1 ``` ### 3. Установка зависимостей ```bash pip install --upgrade pip pip install -r requirements.txt ``` ### 4. Настройка переменных окружения Создайте файл `.env` на основе примера `.env.example`: ```bash cp .env.example .env ``` Откройте файл `.env` и укажите ваш токен: ```ini YANDEX_DISK_TOKEN=ваш_oauth_токен_здесь ``` ### 5. Запуск тестов * Запуск всех тестов с подробным выводом: ```bash pytest ``` * Запуск только CRUD-тестов: ```bash pytest -m crud ``` * Запуск только негативных тестов: ```bash pytest -m negative ``` --- ## ⚙️ Настройка CI/CD (GitHub Actions) В репозитории настроен автоматический запуск тестов при каждом пуше и Pull Request в ветки `main` / `master`. Чтобы тесты выполнялись в GitHub Actions: 1. Перейдите в ваш репозиторий на GitHub: **Settings** -> **Secrets and variables** -> **Actions**. 2. Нажмите кнопку **New repository secret**. 3. Добавьте секрет: - **Name:** `YANDEX_DISK_TOKEN` - **Value:** `<ваш_oauth_токен>` 4. После сохранения секрета тесты будут автоматически запускаться во вкладке **Actions**.