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
6a40202a
Commit
6a40202a
authored
Oct 17, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1112 from tamakisquare/issue-1111
Test case and fix for issue 1111
parents
8c604717
c6be12f0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
1 deletions
+31
-1
rest_framework/serializers.py
+4
-1
rest_framework/tests/test_serializer.py
+27
-0
No files found.
rest_framework/serializers.py
View file @
6a40202a
...
...
@@ -262,10 +262,13 @@ class BaseSerializer(WritableField):
for
field_name
,
field
in
self
.
fields
.
items
():
if
field_name
in
self
.
_errors
:
continue
source
=
field
.
source
or
field_name
if
self
.
partial
and
source
not
in
attrs
:
continue
try
:
validate_method
=
getattr
(
self
,
'validate_
%
s'
%
field_name
,
None
)
if
validate_method
:
source
=
field
.
source
or
field_name
attrs
=
validate_method
(
attrs
,
source
)
except
ValidationError
as
err
:
self
.
_errors
[
field_name
]
=
self
.
_errors
.
get
(
field_name
,
[])
+
list
(
err
.
messages
)
...
...
rest_framework/tests/test_serializer.py
View file @
6a40202a
...
...
@@ -511,6 +511,33 @@ class CustomValidationTests(TestCase):
self
.
assertFalse
(
serializer
.
is_valid
())
self
.
assertEqual
(
serializer
.
errors
,
{
'email'
:
[
'Enter a valid email address.'
]})
def
test_partial_update
(
self
):
"""
Make sure that validate_email isn't called when partial=True and email
isn't found in data.
"""
initial_data
=
{
'email'
:
'tom@example.com'
,
'content'
:
'A test comment'
,
'created'
:
datetime
.
datetime
(
2012
,
1
,
1
)
}
serializer
=
self
.
CommentSerializerWithFieldValidator
(
data
=
initial_data
)
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
instance
=
serializer
.
object
new_content
=
'An *updated* test comment'
partial_data
=
{
'content'
:
new_content
}
serializer
=
self
.
CommentSerializerWithFieldValidator
(
instance
=
instance
,
data
=
partial_data
,
partial
=
True
)
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
instance
=
serializer
.
object
self
.
assertEqual
(
instance
.
content
,
new_content
)
class
PositiveIntegerAsChoiceTests
(
TestCase
):
def
test_positive_integer_in_json_is_correctly_parsed
(
self
):
...
...
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