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
f53c6c77
Commit
f53c6c77
authored
Mar 13, 2015
by
Ion Scerbatiuc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added a test to reproduce the issue
parent
bdeb2894
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
1 deletions
+37
-1
tests/models.py
+7
-1
tests/test_relations_hyperlink.py
+30
-0
No files found.
tests/models.py
View file @
f53c6c77
...
...
@@ -15,7 +15,10 @@ class RESTFrameworkModel(models.Model):
class
BasicModel
(
RESTFrameworkModel
):
text
=
models
.
CharField
(
max_length
=
100
,
verbose_name
=
_
(
"Text comes here"
),
help_text
=
_
(
"Text description."
))
text
=
models
.
CharField
(
max_length
=
100
,
verbose_name
=
_
(
"Text comes here"
),
help_text
=
_
(
"Text description."
))
class
BaseFilterableItem
(
RESTFrameworkModel
):
...
...
@@ -45,6 +48,9 @@ class ManyToManySource(RESTFrameworkModel):
class
ForeignKeyTarget
(
RESTFrameworkModel
):
name
=
models
.
CharField
(
max_length
=
100
)
def
get_first_source
(
self
):
return
self
.
sources
.
first
()
class
ForeignKeySource
(
RESTFrameworkModel
):
name
=
models
.
CharField
(
max_length
=
100
)
...
...
tests/test_relations_hyperlink.py
View file @
f53c6c77
...
...
@@ -50,6 +50,17 @@ class ForeignKeyTargetSerializer(serializers.HyperlinkedModelSerializer):
fields
=
(
'url'
,
'name'
,
'sources'
)
class
ForeignKeyTargetCallableSourceSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
ForeignKeyTarget
fields
=
(
'url'
,
'name'
,
'first_source'
)
first_source
=
serializers
.
HyperlinkedRelatedField
(
read_only
=
True
,
source
=
'get_first_source'
,
view_name
=
'foreignkeysource-detail'
)
class
ForeignKeySourceSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
ForeignKeySource
...
...
@@ -444,3 +455,22 @@ class HyperlinkedNullableOneToOneTests(TestCase):
{
'url'
:
'http://testserver/onetoonetarget/2/'
,
'name'
:
'target-2'
,
'nullable_source'
:
None
},
]
self
.
assertEqual
(
serializer
.
data
,
expected
)
class
HyperlinkedRelationCallableSourceTests
(
TestCase
):
urls
=
'tests.test_relations_hyperlink'
def
setUp
(
self
):
self
.
target
=
ForeignKeyTarget
.
objects
.
create
(
name
=
'target-1'
)
ForeignKeySource
.
objects
.
create
(
name
=
'source-1'
,
target
=
self
.
target
)
ForeignKeySource
.
objects
.
create
(
name
=
'source-2'
,
target
=
self
.
target
)
def
test_relation_field_callable_source
(
self
):
serializer
=
ForeignKeyTargetCallableSourceSerializer
(
self
.
target
,
context
=
{
'request'
:
request
})
expected
=
{
'url'
:
'http://testserver/foreignkeytarget/1/'
,
'name'
:
'target-1'
,
'first_source'
:
'http://testserver/foreignkeysource/1/'
,
}
with
self
.
assertNumQueries
(
1
):
self
.
assertEqual
(
serializer
.
data
,
expected
)
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