Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
47d17b08
Commit
47d17b08
authored
Aug 23, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix_937' of
git://github.com/aburgel/django-rest-framework
into aburgel-fix_937
parents
dba60278
db9672d3
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
4 deletions
+27
-4
rest_framework/fields.py
+3
-0
rest_framework/tests/test_files.py
+24
-4
No files found.
rest_framework/fields.py
View file @
47d17b08
...
...
@@ -308,7 +308,10 @@ class WritableField(Field):
try
:
if
self
.
use_files
:
files
=
files
or
{}
try
:
native
=
files
[
field_name
]
except
KeyError
:
native
=
data
[
field_name
]
else
:
native
=
data
[
field_name
]
except
KeyError
:
...
...
rest_framework/tests/test_files.py
View file @
47d17b08
...
...
@@ -7,13 +7,13 @@ import datetime
class
UploadedFile
(
object
):
def
__init__
(
self
,
file
,
created
=
None
):
def
__init__
(
self
,
file
=
None
,
created
=
None
):
self
.
file
=
file
self
.
created
=
created
or
datetime
.
datetime
.
now
()
class
UploadedFileSerializer
(
serializers
.
Serializer
):
file
=
serializers
.
FileField
()
file
=
serializers
.
FileField
(
required
=
False
)
created
=
serializers
.
DateTimeField
()
def
restore_object
(
self
,
attrs
,
instance
=
None
):
...
...
@@ -47,5 +47,25 @@ class FileSerializerTests(TestCase):
now
=
datetime
.
datetime
.
now
()
serializer
=
UploadedFileSerializer
(
data
=
{
'created'
:
now
})
self
.
assertFalse
(
serializer
.
is_valid
())
self
.
assertIn
(
'file'
,
serializer
.
errors
)
self
.
assertTrue
(
serializer
.
is_valid
())
self
.
assertEqual
(
serializer
.
object
.
created
,
now
)
self
.
assertIsNone
(
serializer
.
object
.
file
)
def
test_remove_with_empty_string
(
self
):
"""
Passing empty string as data should cause file to be removed
Test for:
https://github.com/tomchristie/django-rest-framework/issues/937
"""
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
(
instance
=
uploaded_file
,
data
=
{
'created'
:
now
,
'file'
:
''
})
self
.
assertTrue
(
serializer
.
is_valid
())
self
.
assertEqual
(
serializer
.
object
.
created
,
uploaded_file
.
created
)
self
.
assertIsNone
(
serializer
.
object
.
file
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment