This commit is contained in:
parent
0cdbc3e4a2
commit
b940f1f0ca
4 changed files with 33 additions and 6 deletions
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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'
|
||||||
|
|
21
backend/toolshed/tests/test_docs.py
Normal file
21
backend/toolshed/tests/test_docs.py
Normal 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())
|
||||||
|
|
Loading…
Reference in a new issue