diff options
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/tests/serializers.py | 8 | ||||
| -rw-r--r-- | rest_framework/tests/test_nullable_fields.py | 30 | ||||
| -rw-r--r-- | rest_framework/tests/views.py | 8 | 
3 files changed, 46 insertions, 0 deletions
diff --git a/rest_framework/tests/serializers.py b/rest_framework/tests/serializers.py new file mode 100644 index 00000000..cc943c7d --- /dev/null +++ b/rest_framework/tests/serializers.py @@ -0,0 +1,8 @@ +from rest_framework import serializers + +from rest_framework.tests.models import NullableForeignKeySource + + +class NullableFKSourceSerializer(serializers.ModelSerializer): +    class Meta: +        model = NullableForeignKeySource diff --git a/rest_framework/tests/test_nullable_fields.py b/rest_framework/tests/test_nullable_fields.py new file mode 100644 index 00000000..556543d9 --- /dev/null +++ b/rest_framework/tests/test_nullable_fields.py @@ -0,0 +1,30 @@ +from django.core.urlresolvers import reverse + +from rest_framework.compat import patterns, url +from rest_framework.test import APITestCase +from rest_framework.tests.models import NullableForeignKeySource +from rest_framework.tests.serializers import NullableFKSourceSerializer +from rest_framework.tests.views import NullableFKSourceDetail + + +urlpatterns = patterns( +    '', +    url(r'^objects/(?P<pk>\d+)/$', NullableFKSourceDetail.as_view(), name='object-detail'), +) + + +class NullableForeignKeyTests(APITestCase): +    """ +    DRF should be able to handle nullable fields when a TestClient +    POST/PUT request is made with its own serialized object. +    """ +    urls = 'rest_framework.tests.test_nullable_fields' + +    def test_updating_object_with_null_field_value(self): +        obj = NullableForeignKeySource(name='example', target=None) +        obj.save() +        serialized_data = NullableFKSourceSerializer(obj).data + +        response = self.client.put(reverse('object-detail', args=[obj.pk]), serialized_data) + +        self.assertEqual(response.data, serialized_data) diff --git a/rest_framework/tests/views.py b/rest_framework/tests/views.py new file mode 100644 index 00000000..3917b74a --- /dev/null +++ b/rest_framework/tests/views.py @@ -0,0 +1,8 @@ +from rest_framework import generics +from rest_framework.tests.models import NullableForeignKeySource +from rest_framework.tests.serializers import NullableFKSourceSerializer + + +class NullableFKSourceDetail(generics.RetrieveUpdateDestroyAPIView): +    model = NullableForeignKeySource +    model_serializer_class = NullableFKSourceSerializer  | 
