aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests
diff options
context:
space:
mode:
authorTom Christie2012-10-08 17:53:18 +0100
committerTom Christie2012-10-08 17:53:18 +0100
commit65f592866c5cd5103e99ed453543807bcbdaa9da (patch)
tree311282a5f372878b225ac183a387db3ba6334042 /rest_framework/tests
parent4a21b3557edb3b901b86d3a888c44f772e33b922 (diff)
downloaddjango-rest-framework-65f592866c5cd5103e99ed453543807bcbdaa9da.tar.bz2
Fix issue where required fields were not being properly validated. Also make model fields with a default value be not required
Diffstat (limited to 'rest_framework/tests')
-rw-r--r--rest_framework/tests/serializer.py10
-rw-r--r--rest_framework/tests/views.py4
2 files changed, 13 insertions, 1 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index 08a7a9d0..4454791b 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -1,3 +1,4 @@
+import copy
import datetime
from django.test import TestCase
from rest_framework import serializers
@@ -93,6 +94,15 @@ class ValidationTests(TestCase):
self.assertEquals(serializer.is_valid(), False)
self.assertEquals(serializer.errors, {'content': [u'Ensure this value has at most 1000 characters (it has 1001).']})
+ def test_update_missing_field(self):
+ data = {
+ 'content': 'xxx',
+ 'created': datetime.datetime(2012, 1, 1)
+ }
+ serializer = CommentSerializer(data, instance=self.comment)
+ self.assertEquals(serializer.is_valid(), False)
+ self.assertEquals(serializer.errors, {'email': [u'This field is required.']})
+
class MetadataTests(TestCase):
def test_empty(self):
diff --git a/rest_framework/tests/views.py b/rest_framework/tests/views.py
index 61b288c6..3746d7c8 100644
--- a/rest_framework/tests/views.py
+++ b/rest_framework/tests/views.py
@@ -17,12 +17,14 @@ class BasicView(APIView):
return Response({'method': 'POST', 'data': request.DATA})
-@api_view(['GET', 'POST'])
+@api_view(['GET', 'POST', 'PUT'])
def basic_view(request):
if request.method == 'GET':
return {'method': 'GET'}
elif request.method == 'POST':
return {'method': 'POST', 'data': request.DATA}
+ elif request.method == 'PUT':
+ return {'method': 'PUT', 'data': request.DATA}
class ClassBasedViewIntegrationTests(TestCase):