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


# Предположим, что MyModel — это ваша модель Django:
# from myapp.models import MyModel

class MyModelListView:
    pass


class MyModel:
    pass


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

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.1.tar.gz (7.4 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.1.tar.gz.

File metadata

File hashes

Hashes for drf_universal_api_test_mixins-0.1.1.tar.gz
Algorithm Hash digest
SHA256 50fb0656b98002938130152977ab1e0688e2ba2ec69cdb7a4247ffd2a20a2c0d
MD5 704945f4f7f6c9433fd4871ada335aa2
BLAKE2b-256 14c5f94ad175981ee46b661619440141a439476db719fbc27d54f3b2d3c304cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for drf_universal_api_test_mixins-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd446cd424f0641fa36dabbcd07ed7fd603c95414e1e069dae30fe342ed82ed3
MD5 def727f1a4654fb0d342f23ada9a3653
BLAKE2b-256 acce886aa99156d061b346e267eff92c3d29e88f0b6510ee1e6534d292d6725f

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