Skip to content

edk5593903/yandex-disk-api-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yandex Disk API Tests

Автотесты для REST API Яндекс.Диска (тестовое задание: стажёр «Инженер по автоматизации тестирования в Финтех», стек Python + pytest + requests).

Стек

  • Python 3.13
  • pytest
  • requests
  • python-dotenv

Подготовка окружения

python -m venv .venv

# Windows PowerShell:
.\.venv\Scripts\Activate.ps1

pip install -r requirements.txt

Настройка OAuth‑токена

  1. Зайти в Яндекс ID под тестовым аккаунтом.
  2. Создать приложение на https://oauth.yandex.ru с правами для Яндекс.Диска (чтение, запись, доступ к информации о диске).
  3. Получить OAuth‑токен:
    • через URL вида https://oauth.yandex.ru/authorize?response_type=token&client_id=..., или
    • через полигон Яндекс.Диска: https://yandex.ru/dev/disk/poligon (кнопка «Получить токен»).
  4. Создать файл .env в корне проекта:
YA_TOKEN=ваш_токен_от_Яндекс.Диска

.env добавлен в .gitignore и в репозиторий не попадает.

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

pytest -vv

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

  • conftest.py — фикстуры pytest и общий API‑клиент (base URL, заголовки, методы get/post/put/delete).
  • pytest.ini — базовая конфигурация pytest.
  • requirements.txt — зависимости проекта.
  • tests/__init__.py — служебный файл для пакета tests.
  • tests/test_get.py — тесты GET:
    • GET /resources/files — получение списка файлов.
  • tests/test_put.py — загрузка файлов:
    • GET /resources/upload — получение ссылки для загрузки,
    • PUT <href> — загрузка содержимого файла по выданному URL.
  • tests/test_post.py — POST‑сценарии:
    • POST /resources/copy — копирование файла.
  • tests/test_delete.py — удаление ресурсов:
    • DELETE /resources — удаление существующего файла и попытка удалить несуществующий (404).

HTTP‑методы и сценарии

Проект опирается на официальную документацию REST API Яндекс.Диска и реализует интеграционные тесты для типичных сценариев с использованием методов GET, POST, PUT и DELETE.

GET

Используется для чтения данных без изменения состояния.

В проекте покрыто:

  • GET /v1/disk/resources/files — получение списка файлов пользователя.

Коды успешного ответа:

  • 200 OK

PUT

Применяется для идемпотентных операций, когда ресурс должен существовать в указанном виде.

В проекте покрыто:

  • PUT /v1/disk/resources?path=/folder — создание папки по указанному пути.

    • 201 Created — папка успешно создана;
    • 409 Conflict — ресурс с таким путём уже существует.
  • Загрузка файла в два шага:

    1. GET /v1/disk/resources/upload?path=/file.txt&overwrite=true — получение ссылки для загрузки (href);
    2. PUT <href> — отправка содержимого файла по выданному URL.

Коды успешного ответа:

  • для получения ссылки: 200 OK;
  • для загрузки файла: 201 Created или 202 Accepted.

POST

Используется для запуска действий над уже существующими ресурсами.

В проекте покрыто:

  • POST /v1/disk/resources/copy?from=/src.txt&path=/dst.txt&overwrite=true — копирование файла или папки в новое место.

Коды успешного ответа:

  • 201 Created — копия создана;
  • 202 Accepted — операция принята в обработку.

DELETE

Отвечает за удаление ресурсов.

В проекте покрыто:

  • DELETE /v1/disk/resources?path=/path/to/resource&permanently=true — удаление файла или папки.

Коды ответа:

  • 202 Accepted или 204 No Content — удаление запущено или завершено;
  • 404 Not Found — ресурс по указанному пути не найден.

Дополнительно

В рамках тестового задания для компактности реализованы сценарии только для части методов (GET/POST/PUT/DELETE), но структура тестов и фикстур позволяет добавлять проверки для PATCH и других POST‑операций без изменения общей архитектуры.

При необходимости проект можно расширить за счёт операций из документации API Яндекс.Диска, например:

  • добавления метаинформации через PATCH;
  • сохранения файла из интернета через POST;
  • перемещения ресурсов через POST.

Документация API Яндекс.Диска

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages