2014-02-26 21:08:26 +04:00
|
|
|
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):
|
|
|
|
"""
|
2014-02-27 21:17:32 +04:00
|
|
|
DRF should be able to handle nullable foreign keys when a test
|
|
|
|
Client POST/PUT request is made with its own serialized object.
|
2014-02-26 21:08:26 +04:00
|
|
|
"""
|
|
|
|
urls = 'rest_framework.tests.test_nullable_fields'
|
|
|
|
|
2014-02-27 21:17:32 +04:00
|
|
|
def test_updating_object_with_null_fk(self):
|
2014-02-26 21:08:26 +04:00
|
|
|
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)
|