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
f341ead4
Commit
f341ead4
authored
Feb 12, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Test for None in 'dotted.source' component.
Closes #643.
parent
15fa42b6
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
1 deletions
+21
-1
rest_framework/tests/serializer.py
+21
-1
No files found.
rest_framework/tests/serializer.py
View file @
f341ead4
...
...
@@ -747,6 +747,9 @@ class ManyRelatedTests(TestCase):
class
RelatedTraversalTest
(
TestCase
):
def
test_nested_traversal
(
self
):
"""
Source argument should support dotted.source notation.
"""
user
=
Person
.
objects
.
create
(
name
=
"django"
)
post
=
BlogPost
.
objects
.
create
(
title
=
"Test blog post"
,
writer
=
user
)
post
.
blogpostcomment_set
.
create
(
text
=
"I love this blog post"
)
...
...
@@ -785,6 +788,24 @@ class RelatedTraversalTest(TestCase):
self
.
assertEqual
(
serializer
.
data
,
expected
)
def
test_nested_traversal_with_none
(
self
):
"""
If a component of the dotted.source is None, return None for the field.
"""
from
rest_framework.tests.models
import
NullableForeignKeySource
instance
=
NullableForeignKeySource
.
objects
.
create
(
name
=
'Source with null FK'
)
class
NullableSourceSerializer
(
serializers
.
Serializer
):
target_name
=
serializers
.
Field
(
source
=
'target.name'
)
serializer
=
NullableSourceSerializer
(
instance
=
instance
)
expected
=
{
'target_name'
:
None
,
}
self
.
assertEqual
(
serializer
.
data
,
expected
)
def
test_queryset_nested_traversal
(
self
):
"""
Relational fields should be able to use methods as their source.
...
...
@@ -800,7 +821,6 @@ class RelatedTraversalTest(TestCase):
obj
=
ClassWithQuerysetMethod
()
serializer
=
QuerysetMethodSerializer
(
obj
)
self
.
assertEquals
(
serializer
.
data
,
{
'blogposts'
:
[
u'BlogPost object'
]})
self
.
assertEquals
(
serializer
.
data
,
{
'blogposts'
:
[
'BlogPost object'
]})
...
...
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