aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorTom Christie2013-10-03 05:07:07 -0700
committerTom Christie2013-10-03 05:07:07 -0700
commit38049d11b63cdcc7f2a71ac51600182545912350 (patch)
tree399110e75bc1c3b2fbddd314526c3c17f9d68574 /rest_framework
parentc3175900bc0681965d07d85c8b9010534e0ff901 (diff)
parenta2ae469f6ba6ed7e69e9c6a7741876ae14a36057 (diff)
downloaddjango-rest-framework-38049d11b63cdcc7f2a71ac51600182545912350.tar.bz2
Merge pull request #1104 from FreakyDug/master
Fix a TypeError when a serializer is created with files but no data
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/fields.py1
-rw-r--r--rest_framework/tests/test_files.py13
2 files changed, 14 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 210c2537..0c3817b5 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -306,6 +306,7 @@ class WritableField(Field):
return
try:
+ data = data or {}
if self.use_files:
files = files or {}
try:
diff --git a/rest_framework/tests/test_files.py b/rest_framework/tests/test_files.py
index c13c38b8..78f4cf42 100644
--- a/rest_framework/tests/test_files.py
+++ b/rest_framework/tests/test_files.py
@@ -80,3 +80,16 @@ class FileSerializerTests(TestCase):
serializer = UploadedFileSerializer(data={'created': now, 'file': 'abc'})
self.assertFalse(serializer.is_valid())
self.assertEqual(serializer.errors, {'file': [errmsg]})
+
+ def test_validation_with_no_data(self):
+ """
+ Validation should still function when no data dictionary is provided.
+ """
+ now = datetime.datetime.now()
+ file = BytesIO(six.b('stuff'))
+ file.name = 'stuff.txt'
+ file.size = len(file.getvalue())
+ uploaded_file = UploadedFile(file=file, created=now)
+
+ serializer = UploadedFileSerializer(files={'file': file})
+ self.assertFalse(serializer.is_valid())