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) |
