Skip to main content

Универсальные миксины для тестирования DRF API

Project description

DRF Universal API Test Mixins

Универсальные миксины для автоматизации тестирования REST API на Python/Django REST Framework.

Описание

Этот пакет содержит три миксина, которые:

  • Сокращают количество ручного кода в тестах
  • Увеличивают покрытие тестами
  • Облегчают поддержку тестов при изменениях в проекте
  • Могут применяться в любом проекте на Django/DRF

Основные миксины

  1. CRUDAPITestMixin
    Автоматизирует тесты для CRUD-эндпоинтов: проверяет разрешённые/запрещённые HTTP-методы, разрешение URL, аутентификацию, поведение при пустых данных.

  2. ResponseStructureMixin
    Проверяет структуру и содержимое ответов API для list/retrieve-запросов.

  3. ValidationErrorTestMixin
    Стандартизирует проверку ошибок валидации для POST/PUT/PATCH-запросов.

Пример использования

from mixins import CRUDAPITestMixin, ResponseStructureMixin
from rest_framework.test import APITestCase

class MyModelListView:
   ...


class MyModelAPITestCase(CRUDAPITestMixin, ResponseStructureMixin, APITestCase):
    list_url_name = "my-model-list"
    list_view_class = MyModelListView
    allowed_list_methods = ["get"]
    model = MyModel
    expected_item_fields = {"id", "name", "created_at"}

    def setUp(self):
        MyModel.objects.create(name="Test 1")
        MyModel.objects.create(name="Test 2")

Установка

Пакет можно устанавливать как через Poetry, так и через pip.

Через Poetry

poetry add drf-universal-api-test-mixins

Через pip

pip install drf-universal-api-test-mixins

или напрямую из репозитория:

pip install git+https://github.com/Altair788/drf-universal-api-test-mixins.git

Почему это удобно?

  • Миксины универсальны — подходят для любого DRF-проекта.
  • Минимум кода — только настройка атрибутов и минимум ручных тестов.
  • Лёгкая поддержка — изменения в API требуют правки только в одном месте.

Автор: Eduard Slobodyanik
Telegram: @eslobodyanik
GitHub: Altair788

Дополнительно (по желанию)

  • Можно добавить раздел "Лицензия" (например, MIT).
  • Можно добавить "Системные требования" (Python >= 3.12, Django >= 5.2.4, DRF >= 3.16.0).
  • Можно добавить "Contributing" — как предлагать улучшения.

Ваш README уже отлично подходит для публикации и использования!
Если потребуется расширенный шаблон или дополнительные разделы — дайте знать!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drf_universal_api_test_mixins-0.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file drf_universal_api_test_mixins-0.1.0.tar.gz.

File metadata

File hashes

Hashes for drf_universal_api_test_mixins-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3cfca245116a143116c497d808f7a101b052c828ed35deb1ce519f4e798e07c8
MD5 11eca1daa4c19195157e0afdcb60db9e
BLAKE2b-256 29f0b877f2c11686a3876d4fa2b41cf986b693213daffa6f518718c6639d2718

See more details on using hashes here.

File details

Details for the file drf_universal_api_test_mixins-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for drf_universal_api_test_mixins-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1f0d240b6c760c10c7f93131fd087f3df38a485e0895fda74f66a418d2d26d1
MD5 26a6b042e46ca23f77b7a67190126060
BLAKE2b-256 80c42fe4f9ca17be3755e21c55d7d0d16854aeb43277242b7aba91956191e022

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page