diff options
| author | Tom Christie | 2015-02-06 14:35:06 +0000 | 
|---|---|---|
| committer | Tom Christie | 2015-02-06 14:35:06 +0000 | 
| commit | 3dff9a4fe2952cf632ca7f4cd9ecf4221059ca91 (patch) | |
| tree | 0649d42b20b875e97cb551b987644b61e7860e84 /tests/test_relations.py | |
| parent | c06a82d0531f4cb290baacee196829c770913eaa (diff) | |
| parent | 1f996128458570a909d13f15c3d739fb12111984 (diff) | |
| download | django-rest-framework-3dff9a4fe2952cf632ca7f4cd9ecf4221059ca91.tar.bz2 | |
Resolve merge conflictmodel-serializer-caching
Diffstat (limited to 'tests/test_relations.py')
| -rw-r--r-- | tests/test_relations.py | 35 | 
1 files changed, 34 insertions, 1 deletions
| diff --git a/tests/test_relations.py b/tests/test_relations.py index 62353dc2..fbe176e2 100644 --- a/tests/test_relations.py +++ b/tests/test_relations.py @@ -1,6 +1,8 @@  from .utils import mock_reverse, fail_reverse, BadType, MockObject, MockQueryset  from django.core.exceptions import ImproperlyConfigured +from django.utils.datastructures import MultiValueDict  from rest_framework import serializers +from rest_framework.fields import empty  from rest_framework.test import APISimpleTestCase  import pytest @@ -33,7 +35,7 @@ class TestPrimaryKeyRelatedField(APISimpleTestCase):          with pytest.raises(serializers.ValidationError) as excinfo:              self.field.to_internal_value(4)          msg = excinfo.value.detail[0] -        assert msg == "Invalid pk '4' - object does not exist." +        assert msg == 'Invalid pk "4" - object does not exist.'      def test_pk_related_lookup_invalid_type(self):          with pytest.raises(serializers.ValidationError) as excinfo: @@ -134,3 +136,34 @@ class TestSlugRelatedField(APISimpleTestCase):      def test_representation(self):          representation = self.field.to_representation(self.instance)          assert representation == self.instance.name + + +class TestManyRelatedField(APISimpleTestCase): +    def setUp(self): +        self.instance = MockObject(pk=1, name='foo') +        self.field = serializers.StringRelatedField(many=True) +        self.field.field_name = 'foo' + +    def test_get_value_regular_dictionary_full(self): +        assert 'bar' == self.field.get_value({'foo': 'bar'}) +        assert empty == self.field.get_value({'baz': 'bar'}) + +    def test_get_value_regular_dictionary_partial(self): +        setattr(self.field.root, 'partial', True) +        assert 'bar' == self.field.get_value({'foo': 'bar'}) +        assert empty == self.field.get_value({'baz': 'bar'}) + +    def test_get_value_multi_dictionary_full(self): +        mvd = MultiValueDict({'foo': ['bar1', 'bar2']}) +        assert ['bar1', 'bar2'] == self.field.get_value(mvd) + +        mvd = MultiValueDict({'baz': ['bar1', 'bar2']}) +        assert [] == self.field.get_value(mvd) + +    def test_get_value_multi_dictionary_partial(self): +        setattr(self.field.root, 'partial', True) +        mvd = MultiValueDict({'foo': ['bar1', 'bar2']}) +        assert ['bar1', 'bar2'] == self.field.get_value(mvd) + +        mvd = MultiValueDict({'baz': ['bar1', 'bar2']}) +        assert empty == self.field.get_value(mvd) | 
