From c5613a8ed415fed81da48ed13a0d52730dd6c66e Mon Sep 17 00:00:00 2001 From: Rizwan Shaikh Date: Thu, 15 Jun 2023 23:53:54 +0530 Subject: [PATCH] added testcase for rendering yaml with minvalidator for duration field (timedelta) --- tests/schemas/test_openapi.py | 13 +++++++++++++ tests/schemas/views.py | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index e94bb9190..1eb5b84b7 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -1174,6 +1174,19 @@ class TestGenerator(TestCase): assert b"openapi: " in ret assert b"default: '0.0'" in ret + def test_schema_rendering_timedelta_to_yaml_with_validator(self): + + patterns = [ + path('example/', views.ExampleValidatedAPIView.as_view()), + ] + generator = SchemaGenerator(patterns=patterns) + + request = create_request('/') + schema = generator.get_schema(request=request) + ret = OpenAPIRenderer().render(schema) + assert b"openapi: " in ret + assert b"duration:\n type: string\n minimum: \'10.0\'\n" in ret + def test_schema_with_no_paths(self): patterns = [] generator = SchemaGenerator(patterns=patterns) diff --git a/tests/schemas/views.py b/tests/schemas/views.py index f1ed0bd4e..c08208bf2 100644 --- a/tests/schemas/views.py +++ b/tests/schemas/views.py @@ -134,6 +134,11 @@ class ExampleValidatedSerializer(serializers.Serializer): ip4 = serializers.IPAddressField(protocol='ipv4') ip6 = serializers.IPAddressField(protocol='ipv6') ip = serializers.IPAddressField() + duration = serializers.DurationField( + validators=( + MinValueValidator(timedelta(seconds=10)), + ) + ) class ExampleValidatedAPIView(generics.GenericAPIView):