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
e9d9cb70
Commit
e9d9cb70
authored
Aug 10, 2015
by
James Beith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add tests for `display_value`
parent
2f6e5d05
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
1 deletions
+45
-1
tests/test_model_serializer.py
+45
-1
No files found.
tests/test_model_serializer.py
View file @
e9d9cb70
...
@@ -21,7 +21,7 @@ from django.utils import six
...
@@ -21,7 +21,7 @@ from django.utils import six
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
rest_framework.compat
import
DurationField
as
ModelDurationField
from
rest_framework.compat
import
DurationField
as
ModelDurationField
from
rest_framework.compat
import
unicode_repr
from
rest_framework.compat
import
OrderedDict
,
unicode_repr
def
dedent
(
blocktext
):
def
dedent
(
blocktext
):
...
@@ -546,6 +546,50 @@ class TestRelationalFieldMappings(TestCase):
...
@@ -546,6 +546,50 @@ class TestRelationalFieldMappings(TestCase):
self
.
assertEqual
(
unicode_repr
(
TestSerializer
()),
expected
)
self
.
assertEqual
(
unicode_repr
(
TestSerializer
()),
expected
)
class
DisplayValueTargetModel
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
100
)
def
__str__
(
self
):
return
'
%
s Color'
%
(
self
.
name
)
class
DisplayValueModel
(
models
.
Model
):
color
=
models
.
ForeignKey
(
DisplayValueTargetModel
)
class
TestRelationalFieldDisplayValue
(
TestCase
):
def
setUp
(
self
):
DisplayValueTargetModel
.
objects
.
bulk_create
([
DisplayValueTargetModel
(
name
=
'Red'
),
DisplayValueTargetModel
(
name
=
'Yellow'
),
DisplayValueTargetModel
(
name
=
'Green'
),
])
def
test_default_display_value
(
self
):
class
TestSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
DisplayValueModel
serializer
=
TestSerializer
()
expected
=
OrderedDict
([(
'1'
,
'Red Color'
),
(
'2'
,
'Yellow Color'
),
(
'3'
,
'Green Color'
)])
self
.
assertEqual
(
serializer
.
fields
[
'color'
]
.
choices
,
expected
)
def
test_custom_display_value
(
self
):
class
TestField
(
serializers
.
PrimaryKeyRelatedField
):
def
display_value
(
self
,
instance
):
return
'My
%
s Color'
%
(
instance
.
name
)
class
TestSerializer
(
serializers
.
ModelSerializer
):
color
=
TestField
(
queryset
=
DisplayValueTargetModel
.
objects
.
all
())
class
Meta
:
model
=
DisplayValueModel
serializer
=
TestSerializer
()
expected
=
OrderedDict
([(
'1'
,
'My Red Color'
),
(
'2'
,
'My Yellow Color'
),
(
'3'
,
'My Green Color'
)])
self
.
assertEqual
(
serializer
.
fields
[
'color'
]
.
choices
,
expected
)
class
TestIntegration
(
TestCase
):
class
TestIntegration
(
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
self
.
foreign_key_target
=
ForeignKeyTargetModel
.
objects
.
create
(
self
.
foreign_key_target
=
ForeignKeyTargetModel
.
objects
.
create
(
...
...
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