Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m10s
CI/CD Pipeline / Run Tests (push) Successful in 3m35s
CI/CD Pipeline / Telegram Notify Success (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m26s
CI/CD Pipeline / Run Tests (pull_request) Successful in 2m46s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
"""Tests for OpenAPI helpers."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from apps.core.openapi import _get_status_description, api_docs, swagger_tag
|
|
from django.test import SimpleTestCase, override_settings
|
|
from drf_yasg import openapi
|
|
from rest_framework import serializers
|
|
|
|
|
|
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")
|