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 пайплайн для автоматического прогона тестов

📁 Структура проекта

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 Яндекс Диска.
  2. Получите OAuth-токен с правами доступа к Яндекс Диску (cloud_api:disk.read, cloud_api:disk.write или полный доступ к Диску).
  3. Скопируйте полученный токен.

🚀 Локальный запуск

1. Клонирование репозитория

git clone https://github.com/<your-username>/yandex-disk-api-tests.git
cd yandex-disk-api-tests

2. Создание и активация виртуального окружения

  • Linux / macOS:
    python3 -m venv .venv
    source .venv/bin/activate
    
  • Windows (PowerShell):
    python -m venv .venv
    .venv\Scripts\Activate.ps1
    

3. Установка зависимостей

pip install --upgrade pip
pip install -r requirements.txt

4. Настройка переменных окружения

Создайте файл .env на основе примера .env.example:

cp .env.example .env

Откройте файл .env и укажите ваш токен:

YANDEX_DISK_TOKEN=ваш_oauth_токен_здесь

5. Запуск тестов

  • Запуск всех тестов с подробным выводом:
    pytest
    
  • Запуск только CRUD-тестов:
    pytest -m crud
    
  • Запуск только негативных тестов:
    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.
S
Description
No description provided
Readme
76 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 100%