From cf9d57d5ac96b01e6944a4bde5ed277cc1ff2fde Mon Sep 17 00:00:00 2001 From: Artem Muterko Date: Thu, 26 Jan 2017 21:04:57 +0200 Subject: [PATCH] Add remaining tests for metadata --- tests/test_metadata.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/test_metadata.py b/tests/test_metadata.py index e0450020f..a9d2dc0c9 100644 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +import pytest from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.test import TestCase @@ -17,6 +18,11 @@ request = Request(APIRequestFactory().options('/')) class TestMetadata: + + def test_determine_metadata_abstract_method_raises_proper_error(self): + with pytest.raises(NotImplementedError): + metadata.BaseMetadata().determine_metadata(None, None) + def test_metadata(self): """ OPTIONS requests to views should return a valid 200 response. @@ -263,6 +269,19 @@ class TestMetadata: view = ExampleView.as_view(versioning_class=scheme) view(request=request) + def test_list_serializer_metadata_returns_info_about_fields_of_child_serializer(self): + class ExampleSerializer(serializers.Serializer): + integer_field = serializers.IntegerField(max_value=10) + char_field = serializers.CharField(required=False) + + class ExampleListSerializer(serializers.ListSerializer): + pass + + options = metadata.SimpleMetadata() + child_serializer = ExampleSerializer() + list_serializer = ExampleListSerializer(child=child_serializer) + assert options.get_serializer_info(list_serializer) == options.get_serializer_info(child_serializer) + class TestSimpleMetadataFieldInfo(TestCase): def test_null_boolean_field_info_type(self):