diff options
| author | Tom Christie | 2014-09-18 14:23:00 +0100 | 
|---|---|---|
| committer | Tom Christie | 2014-09-18 14:23:00 +0100 | 
| commit | 9fdb2280d11db126771686d626aa8a0247b8a46c (patch) | |
| tree | 4dd3e7d39e2bff75f38ed0a748befa478ff889a1 /tests/test_model_serializer.py | |
| parent | 3bc628edc01a6bd4feeceaefa45168549b79a31a (diff) | |
| download | django-rest-framework-9fdb2280d11db126771686d626aa8a0247b8a46c.tar.bz2 | |
First pass on ManyRelation
Diffstat (limited to 'tests/test_model_serializer.py')
| -rw-r--r-- | tests/test_model_serializer.py | 54 | 
1 files changed, 46 insertions, 8 deletions
| diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 3ee91126..b3dae713 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -199,7 +199,7 @@ class RelationalModel(models.Model):  class TestRelationalFieldMappings(TestCase): -    def test_flat_relational_fields(self): +    def test_pk_relations(self):          class TestSerializer(serializers.ModelSerializer):              class Meta:                  model = RelationalModel @@ -214,7 +214,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_nested_relational_fields(self): +    def test_nested_relations(self):          class TestSerializer(serializers.ModelSerializer):              class Meta:                  model = RelationalModel @@ -238,7 +238,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_flat_hyperlinked_fields(self): +    def test_hyperlinked_relations(self):          class TestSerializer(serializers.HyperlinkedModelSerializer):              class Meta:                  model = RelationalModel @@ -253,7 +253,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_nested_hyperlinked_fields(self): +    def test_nested_hyperlinked_relations(self):          class TestSerializer(serializers.HyperlinkedModelSerializer):              class Meta:                  model = RelationalModel @@ -277,7 +277,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_flat_reverse_foreign_key(self): +    def test_pk_reverse_foreign_key(self):          class TestSerializer(serializers.ModelSerializer):              class Meta:                  model = ForeignKeyTargetModel @@ -291,7 +291,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_flat_reverse_one_to_one(self): +    def test_pk_reverse_one_to_one(self):          class TestSerializer(serializers.ModelSerializer):              class Meta:                  model = OneToOneTargetModel @@ -305,7 +305,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_flat_reverse_many_to_many(self): +    def test_pk_reverse_many_to_many(self):          class TestSerializer(serializers.ModelSerializer):              class Meta:                  model = ManyToManyTargetModel @@ -319,7 +319,7 @@ class TestRelationalFieldMappings(TestCase):          """)          self.assertEqual(repr(TestSerializer()), expected) -    def test_flat_reverse_through(self): +    def test_pk_reverse_through(self):          class TestSerializer(serializers.ModelSerializer):              class Meta:                  model = ThroughTargetModel @@ -332,3 +332,41 @@ class TestRelationalFieldMappings(TestCase):                  reverse_through = PrimaryKeyRelatedField(many=True, read_only=True)          """)          self.assertEqual(repr(TestSerializer()), expected) + + +class TestIntegration(TestCase): +    def setUp(self): +        self.foreign_key_target = ForeignKeyTargetModel.objects.create( +            name='foreign_key' +        ) +        self.one_to_one_target = OneToOneTargetModel.objects.create( +            name='one_to_one' +        ) +        self.many_to_many_targets = [ +            ManyToManyTargetModel.objects.create( +                name='many_to_many (%d)' % idx +            ) for idx in range(3) +        ] +        self.instance = RelationalModel.objects.create( +            foreign_key=self.foreign_key_target, +            one_to_one=self.one_to_one_target, +        ) +        self.instance.many_to_many = self.many_to_many_targets +        self.instance.save() + +        class TestSerializer(serializers.ModelSerializer): +            class Meta: +                model = RelationalModel + +        self.serializer_cls = TestSerializer + +    def test_pk_relationship_representations(self): +        serializer = self.serializer_cls(self.instance) +        expected = { +            'id': self.instance.pk, +            'foreign_key': self.foreign_key_target.pk, +            'one_to_one': self.one_to_one_target.pk, +            'many_to_many': [item.pk for item in self.many_to_many_targets], +            'through': [] +        } +        self.assertEqual(serializer.data, expected) | 
