diff options
| author | Tom Christie | 2013-10-03 05:07:07 -0700 |
|---|---|---|
| committer | Tom Christie | 2013-10-03 05:07:07 -0700 |
| commit | 38049d11b63cdcc7f2a71ac51600182545912350 (patch) | |
| tree | 399110e75bc1c3b2fbddd314526c3c17f9d68574 /rest_framework | |
| parent | c3175900bc0681965d07d85c8b9010534e0ff901 (diff) | |
| parent | a2ae469f6ba6ed7e69e9c6a7741876ae14a36057 (diff) | |
| download | django-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.py | 1 | ||||
| -rw-r--r-- | rest_framework/tests/test_files.py | 13 |
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()) |
