Skip to content

Commit d0eb2e6

Browse files
archy-rock3t-cloudtomchristie
authored andcommitted
Add remaining tests for metadata (#4855)
1 parent 1ecbeeb commit d0eb2e6

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

tests/test_metadata.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import unicode_literals
22

3+
import pytest
34
from django.core.validators import MaxValueValidator, MinValueValidator
45
from django.db import models
56
from django.test import TestCase
@@ -17,6 +18,11 @@
1718

1819

1920
class TestMetadata:
21+
22+
def test_determine_metadata_abstract_method_raises_proper_error(self):
23+
with pytest.raises(NotImplementedError):
24+
metadata.BaseMetadata().determine_metadata(None, None)
25+
2026
def test_metadata(self):
2127
"""
2228
OPTIONS requests to views should return a valid 200 response.
@@ -263,6 +269,19 @@ def get_serializer(self):
263269
view = ExampleView.as_view(versioning_class=scheme)
264270
view(request=request)
265271

272+
def test_list_serializer_metadata_returns_info_about_fields_of_child_serializer(self):
273+
class ExampleSerializer(serializers.Serializer):
274+
integer_field = serializers.IntegerField(max_value=10)
275+
char_field = serializers.CharField(required=False)
276+
277+
class ExampleListSerializer(serializers.ListSerializer):
278+
pass
279+
280+
options = metadata.SimpleMetadata()
281+
child_serializer = ExampleSerializer()
282+
list_serializer = ExampleListSerializer(child=child_serializer)
283+
assert options.get_serializer_info(list_serializer) == options.get_serializer_info(child_serializer)
284+
266285

267286
class TestSimpleMetadataFieldInfo(TestCase):
268287
def test_null_boolean_field_info_type(self):

0 commit comments

Comments
 (0)