Универсальные миксины для тестирования DRF API
Project description
DRF Universal API Test Mixins
Универсальные миксины для автоматизации тестирования REST API на Python/Django REST Framework.
Описание
Этот пакет содержит три миксина, которые:
- Сокращают количество ручного кода в тестах
- Увеличивают покрытие тестами
- Облегчают поддержку тестов при изменениях в проекте
- Могут применяться в любом проекте на Django/DRF
Основные миксины
-
CRUDAPITestMixin
Автоматизирует тесты для CRUD-эндпоинтов: проверяет разрешённые/запрещённые HTTP-методы, разрешение URL, аутентификацию, поведение при пустых данных. -
ResponseStructureMixin
Проверяет структуру и содержимое ответов API для list/retrieve-запросов. -
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drf_universal_api_test_mixins-0.1.0.tar.gz.
File metadata
- Download URL: drf_universal_api_test_mixins-0.1.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.0 CPython/3.12.9 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cfca245116a143116c497d808f7a101b052c828ed35deb1ce519f4e798e07c8
|
|
| MD5 |
11eca1daa4c19195157e0afdcb60db9e
|
|
| BLAKE2b-256 |
29f0b877f2c11686a3876d4fa2b41cf986b693213daffa6f518718c6639d2718
|
File details
Details for the file drf_universal_api_test_mixins-0.1.0-py3-none-any.whl.
File metadata
- Download URL: drf_universal_api_test_mixins-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.0 CPython/3.12.9 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1f0d240b6c760c10c7f93131fd087f3df38a485e0895fda74f66a418d2d26d1
|
|
| MD5 |
26a6b042e46ca23f77b7a67190126060
|
|
| BLAKE2b-256 |
80c42fe4f9ca17be3755e21c55d7d0d16854aeb43277242b7aba91956191e022
|