diff options
| author | Craig de Stigter | 2013-05-18 15:23:43 +0200 | 
|---|---|---|
| committer | Craig de Stigter | 2013-05-18 15:23:43 +0200 | 
| commit | 208bd991dacb6c2edc9fc820717354c579c2e6d6 (patch) | |
| tree | 965e783ddb5e9e21f76ac5a4cb3721c0289a838b /rest_framework/tests/serializer.py | |
| parent | c992b600f7b0aefb156cddb5e27b438ccc316b39 (diff) | |
| download | django-rest-framework-208bd991dacb6c2edc9fc820717354c579c2e6d6.tar.bz2 | |
when source='*' on a nested serializer, expand fields into outer serializer when writing. fixes #765
Diffstat (limited to 'rest_framework/tests/serializer.py')
| -rw-r--r-- | rest_framework/tests/serializer.py | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index 34acbaab..116459e0 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -78,6 +78,17 @@ class PersonSerializer(serializers.ModelSerializer):          read_only_fields = ('age',) +class NestedSerializer(serializers.Serializer): +    info = serializers.Field() + + +class ModelSerializerWithNestedSerializer(serializers.ModelSerializer): +    nested = NestedSerializer(source='*') + +    class Meta: +        model = Person + +  class PersonSerializerInvalidReadOnly(serializers.ModelSerializer):      """      Testing for #652. @@ -369,6 +380,17 @@ class ValidationTests(TestCase):          except:              self.fail('Wrong exception type thrown.') +    def test_writable_star_source_on_nested_serializer(self): +        """ +        Assert that a nested serializer instantiated with source='*' correctly +        expands the data into the outer serializer. +        """ +        serializer = ModelSerializerWithNestedSerializer(data={ +            'name': 'marko', +            'nested': {'info': 'hi'}}, +        ) +        self.assertEqual(serializer.is_valid(), True) +  class CustomValidationTests(TestCase):      class CommentSerializerWithFieldValidator(CommentSerializer): | 
