- Перенесена структура Django-конфига в src/core и src/settings - Унифицирована Docker-сборка и docker-compose для dev/prod - Добавлены startup-checks (DB/Redis) и обновлены env-шаблоны - Расширена OpenAPI-документация и ответы API - Удалены устаревшие deploy/requirements/служебные скрипты - Обновлены CI/CD, README и тесты
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
"""Tests for OpenAPI helpers."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from django.test import SimpleTestCase, override_settings
|
|
from drf_yasg import openapi
|
|
from rest_framework import serializers
|
|
|
|
from apps.core.openapi import _get_status_description, api_docs, swagger_tag
|
|
|
|
|
|
class DummySerializer(serializers.Serializer):
|
|
name = serializers.CharField()
|
|
|
|
|
|
class OpenAPIDocsTest(SimpleTestCase):
|
|
def test_get_status_description_default(self):
|
|
self.assertEqual(_get_status_description(418), "HTTP 418")
|
|
|
|
def test_api_docs_builds_responses(self):
|
|
decorator = api_docs(
|
|
summary="Test",
|
|
description="Desc",
|
|
responses={
|
|
200: DummySerializer,
|
|
404: "Not found",
|
|
400: openapi.Response(description="Bad request"),
|
|
},
|
|
tags=["tag"],
|
|
)
|
|
|
|
def view(_request):
|
|
return None
|
|
|
|
decorated = decorator(view)
|
|
self.assertTrue(callable(decorated))
|
|
|
|
def test_swagger_tag_default_russian(self):
|
|
self.assertEqual(swagger_tag("Пользователь", "User"), "Пользователь")
|
|
|
|
@override_settings(OPENAPI_USE_ENGLISH_TAGS=True)
|
|
def test_swagger_tag_english_in_dev_mode(self):
|
|
self.assertEqual(swagger_tag("Пользователь", "User"), "User")
|