Add failing test when rendering to json a schema with timedelta

This commit is contained in:
Pierre Chiquet 2020-11-18 11:05:19 +01:00
parent 96993d817a
commit c735b8c418
2 changed files with 18 additions and 1 deletions

View File

@ -11,7 +11,8 @@ from rest_framework.authtoken.views import obtain_auth_token
from rest_framework.compat import uritemplate
from rest_framework.parsers import JSONParser, MultiPartParser
from rest_framework.renderers import (
BaseRenderer, BrowsableAPIRenderer, JSONRenderer, OpenAPIRenderer
BaseRenderer, BrowsableAPIRenderer, JSONRenderer, OpenAPIRenderer,
JSONOpenAPIRenderer
)
from rest_framework.request import Request
from rest_framework.schemas.openapi import AutoSchema, SchemaGenerator
@ -992,6 +993,20 @@ class TestGenerator(TestCase):
assert 'openapi' in schema
assert 'paths' in schema
def test_schema_rendering_to_json(self):
patterns = [
path('example/', views.ExampleGenericAPIView.as_view()),
]
generator = SchemaGenerator(patterns=patterns)
request = create_request('/')
schema = generator.get_schema(request=request)
ret = JSONOpenAPIRenderer().render(schema)
expected_start = b'{\n "openapi": '
assert expected_start == ret[:len(expected_start)]
assert b'"default": "0.0"' in ret
def test_schema_with_no_paths(self):
patterns = []
generator = SchemaGenerator(patterns=patterns)

View File

@ -1,4 +1,5 @@
import uuid
from datetime import timedelta
from django.core.validators import (
DecimalValidator, MaxLengthValidator, MaxValueValidator,
@ -59,6 +60,7 @@ class DocStringExampleDetailView(APIView):
class ExampleSerializer(serializers.Serializer):
date = serializers.DateField()
datetime = serializers.DateTimeField()
duration = serializers.DurationField(default=timedelta())
hstore = serializers.HStoreField()
uuid_field = serializers.UUIDField(default=uuid.uuid4)