From 90cc4cab59285dc5911e67ef3254045cd28fafcf Mon Sep 17 00:00:00 2001 From: Alex Louden Date: Fri, 9 May 2014 15:56:39 +0800 Subject: [PATCH] Test creating a model with a pk relation --- .../tests/test_pk_related_creation.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 rest_framework/tests/test_pk_related_creation.py diff --git a/rest_framework/tests/test_pk_related_creation.py b/rest_framework/tests/test_pk_related_creation.py new file mode 100644 index 000000000..bf2f3ade9 --- /dev/null +++ b/rest_framework/tests/test_pk_related_creation.py @@ -0,0 +1,51 @@ +from django.db import models +from rest_framework import serializers + +from django.test import TestCase + + +class TestModel(models.Model): + + class Meta: + app_label = 'tests' + + +class Person(TestModel): + name = models.CharField(max_length=200) + + +class Group(TestModel): + name = models.TextField() + members = models.ManyToManyField(Person) + + +class GroupSerialiser(serializers.ModelSerializer): + + members = serializers.PrimaryKeyRelatedField(many=True) + + class Meta: + model = Group + fields = ( + 'id', + 'name', + 'members' + ) + + +class TestPrimaryKeyRelatedRelation(TestCase): + + def test_deserialize_group(self): + + person = Person.objects.create(name='Person') + data = { + 'name': 'Group Name', + 'members': [person.id] + } + + serializer = GroupSerialiser(data=data, files=None) + + self.assertTrue(serializer.is_valid()) + + obj = serializer.object + + self.assertEqual(obj.members, [person])