From 630cebe0572d98dc452cee99bfbc6e54389d5269 Mon Sep 17 00:00:00 2001 From: dongfangtianyu Date: Sat, 6 Apr 2019 19:48:26 +0800 Subject: [PATCH] add unittest --- tests/schemas/test_openapi.py | 17 +++++++++++++++++ tests/schemas/views.py | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index 6d98d919e..529c0756a 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -166,3 +166,20 @@ class TestGenerator(TestCase): assert 'openapi' in schema assert 'paths' in schema + + def test_serializer_datefield(self): + + patterns = [ + url(r'^example/?$', views.ExampleGenericViewSet.as_view({"get":"get"})), + ] + generator = SchemaGenerator(patterns=patterns) + + request = create_request('/') + schema = generator.get_schema(request=request) + + response_schema = schema['paths']['/example/']['get']['responses']['200']['content']['application/json']['schema']['properties'] + + assert response_schema['date']['type'] == response_schema['datetime']['type']== 'string' + + assert response_schema['date']['format'] == 'date' + assert response_schema['datetime']['format'] == 'date-time' \ No newline at end of file diff --git a/tests/schemas/views.py b/tests/schemas/views.py index c368ba7e5..5a7bae305 100644 --- a/tests/schemas/views.py +++ b/tests/schemas/views.py @@ -1,5 +1,8 @@ from rest_framework import permissions from rest_framework.views import APIView +from rest_framework.viewsets import GenericViewSet +from rest_framework import serializers +from rest_framework.response import Response class ExampleListView(APIView): @@ -17,3 +20,19 @@ class ExampleDetailView(APIView): def get(self, *args, **kwargs): pass + + +class ExampleGenericViewSet(GenericViewSet): + + class ExampleSerializer(serializers.Serializer): + date = serializers.DateField() + datetime = serializers.DateTimeField() + + serializer_class = ExampleSerializer + + def get(self, *args, **kwargs): + from datetime import datetime + now = datetime.now() + + serializer = self.get_serializer(data=now.date(),datetime=now) + return Response(serializer.data) \ No newline at end of file