aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/relations_nested.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/tests/relations_nested.py')
-rw-r--r--rest_framework/tests/relations_nested.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/rest_framework/tests/relations_nested.py b/rest_framework/tests/relations_nested.py
index 5710c1ef..808399f7 100644
--- a/rest_framework/tests/relations_nested.py
+++ b/rest_framework/tests/relations_nested.py
@@ -1,7 +1,7 @@
from django.db import models
from django.test import TestCase
from rest_framework import serializers
-from rest_framework.tests.models import ForeignKeyTarget, ForeignKeySource, NullableForeignKeySource
+from rest_framework.tests.models import ForeignKeyTarget, ForeignKeySource, NullableForeignKeySource, NullableOneToOneSource
class ForeignKeySourceSerializer(serializers.ModelSerializer):
@@ -28,6 +28,13 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer):
model = NullableForeignKeySource
+class NullableForeignKeyTargetSerializer(serializers.ModelSerializer):
+ nullable_source = serializers.PrimaryKeyRelatedField()
+
+ class Meta:
+ model = ForeignKeyTarget
+
+
class ReverseForeignKeyTests(TestCase):
def setUp(self):
target = ForeignKeyTarget(name='target-1')
@@ -67,6 +74,10 @@ class NestedNullableForeignKeyTests(TestCase):
def setUp(self):
target = ForeignKeyTarget(name='target-1')
target.save()
+ new_target = ForeignKeyTarget(name='target-2')
+ new_target.save()
+ one_source = NullableOneToOneSource(name='one-source-1', target=target)
+ one_source.save()
for idx in range(1, 4):
if idx == 3:
target = None
@@ -82,3 +93,12 @@ class NestedNullableForeignKeyTests(TestCase):
{'id': 3, 'name': u'source-3', 'target': None},
]
self.assertEquals(serializer.data, expected)
+
+ def test_reverse_foreign_key_retrieve_with_null(self):
+ queryset = ForeignKeyTarget.objects.all()
+ serializer = NullableForeignKeyTargetSerializer(queryset)
+ expected = [
+ {'id': 1, 'name': u'target-1', 'nullable_source': 1},
+ {'id': 2, 'name': u'target-2', 'nullable_source': None},
+ ]
+ self.assertEquals(serializer.data, expected)