fix openapi issues
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
j3d1 2023-10-25 00:18:14 +02:00
parent 0cdbc3e4a2
commit b940f1f0ca
4 changed files with 33 additions and 6 deletions

View file

@ -63,6 +63,7 @@ SWAGGER_SETTINGS = {
}, },
'USE_SESSION_AUTH': False, 'USE_SESSION_AUTH': False,
'JSON_EDITOR': True, 'JSON_EDITOR': True,
'DEFAULT_INFO': 'backend.urls.openapi_info',
} }
MIDDLEWARE = [ MIDDLEWARE = [

View file

@ -18,14 +18,16 @@ from django.urls import path, include
from drf_yasg import openapi from drf_yasg import openapi
from drf_yasg.views import get_schema_view from drf_yasg.views import get_schema_view
schema_view = get_schema_view( openapi_info = openapi.Info(
openapi.Info(
title="Toolshed API", title="Toolshed API",
default_version='v1', default_version='v1',
description="API for all things …", description="API for all things …",
), )
schema_view = get_schema_view(
openapi_info,
public=True, public=True,
permission_classes=[] permission_classes=[],
) )
urlpatterns = [ urlpatterns = [

View file

@ -23,6 +23,7 @@ class CategorySerializer(serializers.ModelSerializer):
model = Category model = Category
fields = ['name', 'description', 'parent', 'origin'] fields = ['name', 'description', 'parent', 'origin']
read_only_fields = ['origin'] read_only_fields = ['origin']
ref_name = 'HostAdminCategory'
class PropertySerializer(serializers.ModelSerializer): class PropertySerializer(serializers.ModelSerializer):
@ -33,6 +34,7 @@ class PropertySerializer(serializers.ModelSerializer):
fields = ['name', 'description', 'category', 'unit_symbol', 'unit_name', 'unit_name_plural', 'base2_prefix', fields = ['name', 'description', 'category', 'unit_symbol', 'unit_name', 'unit_name_plural', 'base2_prefix',
'dimensions', 'origin'] 'dimensions', 'origin']
read_only_fields = ['origin'] read_only_fields = ['origin']
ref_name = 'HostAdminProperty'
class TagSerializer(serializers.ModelSerializer): class TagSerializer(serializers.ModelSerializer):
@ -42,3 +44,4 @@ class TagSerializer(serializers.ModelSerializer):
model = Tag model = Tag
fields = ['name', 'description', 'category', 'origin'] fields = ['name', 'description', 'category', 'origin']
read_only_fields = ['origin'] read_only_fields = ['origin']
ref_name = 'HostAdminTag'

View file

@ -0,0 +1,21 @@
from django.test import Client
from authentication.tests import UserTestMixin, SignatureAuthClient, ToolshedTestCase
from backend import settings
from toolshed.tests import CategoryTestMixin, TagTestMixin, PropertyTestMixin
anonymous_client = Client()
client = SignatureAuthClient()
class OpenapiTestCase(UserTestMixin, CategoryTestMixin, TagTestMixin, PropertyTestMixin, ToolshedTestCase):
def setUp(self):
super().setUp()
self.prepare_users()
def test_docs_anonymous(self):
response = anonymous_client.get('/docs/?format=openapi')
self.assertEqual(response.status_code, 200)
self.assertTrue('swagger' in response.json())
self.assertTrue('info' in response.json())