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
a897eb54
Commit
a897eb54
authored
Jan 07, 2013
by
Mark Aaron Shirley
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Create separate *NullableOneToOneTests TestCase
parent
213981ce
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
88 additions
and
20 deletions
+88
-20
rest_framework/tests/models.py
+7
-1
rest_framework/tests/relations_hyperlink.py
+31
-7
rest_framework/tests/relations_nested.py
+22
-11
rest_framework/tests/relations_pk.py
+28
-1
No files found.
rest_framework/tests/models.py
View file @
a897eb54
...
@@ -206,7 +206,13 @@ class NullableForeignKeySource(RESTFrameworkModel):
...
@@ -206,7 +206,13 @@ class NullableForeignKeySource(RESTFrameworkModel):
target
=
models
.
ForeignKey
(
ForeignKeyTarget
,
null
=
True
,
blank
=
True
,
target
=
models
.
ForeignKey
(
ForeignKeyTarget
,
null
=
True
,
blank
=
True
,
related_name
=
'nullable_sources'
)
related_name
=
'nullable_sources'
)
# OneToOne
class
OneToOneTarget
(
RESTFrameworkModel
):
name
=
models
.
CharField
(
max_length
=
100
)
class
NullableOneToOneSource
(
RESTFrameworkModel
):
class
NullableOneToOneSource
(
RESTFrameworkModel
):
name
=
models
.
CharField
(
max_length
=
100
)
name
=
models
.
CharField
(
max_length
=
100
)
target
=
models
.
OneToOneField
(
ForeignKey
Target
,
null
=
True
,
blank
=
True
,
target
=
models
.
OneToOneField
(
OneToOne
Target
,
null
=
True
,
blank
=
True
,
related_name
=
'nullable_source'
)
related_name
=
'nullable_source'
)
rest_framework/tests/relations_hyperlink.py
View file @
a897eb54
...
@@ -2,7 +2,7 @@ from django.db import models
...
@@ -2,7 +2,7 @@ from django.db import models
from
django.test
import
TestCase
from
django.test
import
TestCase
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
rest_framework.compat
import
patterns
,
url
from
rest_framework.compat
import
patterns
,
url
from
rest_framework.tests.models
import
ManyToManyTarget
,
ManyToManySource
,
ForeignKeyTarget
,
ForeignKeySource
from
rest_framework.tests.models
import
ManyToManyTarget
,
ManyToManySource
,
ForeignKeyTarget
,
ForeignKeySource
,
NullableForeignKeySource
,
OneToOneTarget
,
NullableOneToOneSource
def
dummy_view
(
request
,
pk
):
def
dummy_view
(
request
,
pk
):
pass
pass
...
@@ -13,6 +13,8 @@ urlpatterns = patterns('',
...
@@ -13,6 +13,8 @@ urlpatterns = patterns('',
url
(
r'^foreignkeysource/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'foreignkeysource-detail'
),
url
(
r'^foreignkeysource/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'foreignkeysource-detail'
),
url
(
r'^foreignkeytarget/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'foreignkeytarget-detail'
),
url
(
r'^foreignkeytarget/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'foreignkeytarget-detail'
),
url
(
r'^nullableforeignkeysource/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'nullableforeignkeysource-detail'
),
url
(
r'^nullableforeignkeysource/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'nullableforeignkeysource-detail'
),
url
(
r'^onetoonetarget/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'onetoonetarget-detail'
),
url
(
r'^nullableonetoonesource/(?P<pk>[0-9]+)/$'
,
dummy_view
,
name
=
'nullableonetoonesource-detail'
),
)
)
class
ManyToManyTargetSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
ManyToManyTargetSerializer
(
serializers
.
HyperlinkedModelSerializer
):
...
@@ -40,16 +42,17 @@ class ForeignKeySourceSerializer(serializers.HyperlinkedModelSerializer):
...
@@ -40,16 +42,17 @@ class ForeignKeySourceSerializer(serializers.HyperlinkedModelSerializer):
# Nullable ForeignKey
# Nullable ForeignKey
class
NullableForeignKeySourceSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
NullableForeignKeySource
class
NullableForeignKeySource
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
100
)
target
=
models
.
ForeignKey
(
ForeignKeyTarget
,
null
=
True
,
blank
=
True
,
related_name
=
'nullable_sources'
)
# OneToOne
class
NullableOneToOneTargetSerializer
(
serializers
.
HyperlinkedModelSerializer
):
nullable_source
=
serializers
.
HyperlinkedRelatedField
(
view_name
=
'nullableonetoonesource-detail'
)
class
NullableForeignKeySourceSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
class
Meta
:
model
=
NullableForeignKeySource
model
=
OneToOneTarget
# TODO: Add test that .data cannot be accessed prior to .is_valid
# TODO: Add test that .data cannot be accessed prior to .is_valid
...
@@ -409,3 +412,24 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
...
@@ -409,3 +412,24 @@ class HyperlinkedNullableForeignKeyTests(TestCase):
# {'id': 2, 'name': u'target-2', 'sources': []},
# {'id': 2, 'name': u'target-2', 'sources': []},
# ]
# ]
# self.assertEquals(serializer.data, expected)
# self.assertEquals(serializer.data, expected)
class
HyperlinkedNullableOneToOneTests
(
TestCase
):
urls
=
'rest_framework.tests.relations_hyperlink'
def
setUp
(
self
):
target
=
OneToOneTarget
(
name
=
'target-1'
)
target
.
save
()
new_target
=
OneToOneTarget
(
name
=
'target-2'
)
new_target
.
save
()
source
=
NullableOneToOneSource
(
name
=
'source-1'
,
target
=
target
)
source
.
save
()
def
test_reverse_foreign_key_retrieve_with_null
(
self
):
queryset
=
OneToOneTarget
.
objects
.
all
()
serializer
=
NullableOneToOneTargetSerializer
(
queryset
)
expected
=
[
{
'url'
:
'/onetoonetarget/1/'
,
'name'
:
u'target-1'
,
'nullable_source'
:
'/nullableonetoonesource/1/'
},
{
'url'
:
'/onetoonetarget/2/'
,
'name'
:
u'target-2'
,
'nullable_source'
:
None
},
]
self
.
assertEquals
(
serializer
.
data
,
expected
)
rest_framework/tests/relations_nested.py
View file @
a897eb54
from
django.db
import
models
from
django.db
import
models
from
django.test
import
TestCase
from
django.test
import
TestCase
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
rest_framework.tests.models
import
ForeignKeyTarget
,
ForeignKeySource
,
NullableForeignKeySource
,
NullableOneToOneSource
from
rest_framework.tests.models
import
ForeignKeyTarget
,
ForeignKeySource
,
NullableForeignKeySource
,
OneToOneTarget
,
NullableOneToOneSource
class
ForeignKeySourceSerializer
(
serializers
.
ModelSerializer
):
class
ForeignKeySourceSerializer
(
serializers
.
ModelSerializer
):
...
@@ -28,11 +28,16 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer):
...
@@ -28,11 +28,16 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer):
model
=
NullableForeignKeySource
model
=
NullableForeignKeySource
class
NullableForeignKeyTargetSerializer
(
serializers
.
ModelSerializer
):
class
NullableOneToOneSourceSerializer
(
serializers
.
ModelSerializer
):
nullable_source
=
serializers
.
PrimaryKeyRelatedField
()
class
Meta
:
model
=
NullableOneToOneSource
class
NullableOneToOneTargetSerializer
(
serializers
.
ModelSerializer
):
nullable_source
=
NullableOneToOneSourceSerializer
()
class
Meta
:
class
Meta
:
model
=
ForeignKey
Target
model
=
OneToOne
Target
class
ReverseForeignKeyTests
(
TestCase
):
class
ReverseForeignKeyTests
(
TestCase
):
...
@@ -74,10 +79,6 @@ class NestedNullableForeignKeyTests(TestCase):
...
@@ -74,10 +79,6 @@ class NestedNullableForeignKeyTests(TestCase):
def
setUp
(
self
):
def
setUp
(
self
):
target
=
ForeignKeyTarget
(
name
=
'target-1'
)
target
=
ForeignKeyTarget
(
name
=
'target-1'
)
target
.
save
()
target
.
save
()
new_target
=
ForeignKeyTarget
(
name
=
'target-2'
)
new_target
.
save
()
one_source
=
NullableOneToOneSource
(
name
=
'one-source-1'
,
target
=
target
)
one_source
.
save
()
for
idx
in
range
(
1
,
4
):
for
idx
in
range
(
1
,
4
):
if
idx
==
3
:
if
idx
==
3
:
target
=
None
target
=
None
...
@@ -94,11 +95,21 @@ class NestedNullableForeignKeyTests(TestCase):
...
@@ -94,11 +95,21 @@ class NestedNullableForeignKeyTests(TestCase):
]
]
self
.
assertEquals
(
serializer
.
data
,
expected
)
self
.
assertEquals
(
serializer
.
data
,
expected
)
class
NestedNullableOneToOneTests
(
TestCase
):
def
setUp
(
self
):
target
=
OneToOneTarget
(
name
=
'target-1'
)
target
.
save
()
new_target
=
OneToOneTarget
(
name
=
'target-2'
)
new_target
.
save
()
source
=
NullableOneToOneSource
(
name
=
'source-1'
,
target
=
target
)
source
.
save
()
def
test_reverse_foreign_key_retrieve_with_null
(
self
):
def
test_reverse_foreign_key_retrieve_with_null
(
self
):
queryset
=
ForeignKey
Target
.
objects
.
all
()
queryset
=
OneToOne
Target
.
objects
.
all
()
serializer
=
Nullable
ForeignKey
TargetSerializer
(
queryset
)
serializer
=
Nullable
OneToOne
TargetSerializer
(
queryset
)
expected
=
[
expected
=
[
{
'id'
:
1
,
'name'
:
u'target-1'
,
'nullable_source'
:
1
},
{
'id'
:
1
,
'name'
:
u'target-1'
,
'nullable_source'
:
{
'id'
:
1
,
'name'
:
u'source-1'
,
'target'
:
1
}
},
{
'id'
:
2
,
'name'
:
u'target-2'
,
'nullable_source'
:
None
},
{
'id'
:
2
,
'name'
:
u'target-2'
,
'nullable_source'
:
None
},
]
]
self
.
assertEquals
(
serializer
.
data
,
expected
)
self
.
assertEquals
(
serializer
.
data
,
expected
)
rest_framework/tests/relations_pk.py
View file @
a897eb54
from
django.db
import
models
from
django.db
import
models
from
django.test
import
TestCase
from
django.test
import
TestCase
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
rest_framework.tests.models
import
ManyToManyTarget
,
ManyToManySource
,
ForeignKeyTarget
,
ForeignKeySource
,
NullableForeignKeySource
from
rest_framework.tests.models
import
ManyToManyTarget
,
ManyToManySource
,
ForeignKeyTarget
,
ForeignKeySource
,
NullableForeignKeySource
,
OneToOneTarget
,
NullableOneToOneSource
class
ManyToManyTargetSerializer
(
serializers
.
ModelSerializer
):
class
ManyToManyTargetSerializer
(
serializers
.
ModelSerializer
):
...
@@ -33,6 +33,14 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer):
...
@@ -33,6 +33,14 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer):
model
=
NullableForeignKeySource
model
=
NullableForeignKeySource
# OneToOne
class
NullableOneToOneTargetSerializer
(
serializers
.
ModelSerializer
):
nullable_source
=
serializers
.
PrimaryKeyRelatedField
()
class
Meta
:
model
=
OneToOneTarget
# TODO: Add test that .data cannot be accessed prior to .is_valid
# TODO: Add test that .data cannot be accessed prior to .is_valid
class
PKManyToManyTests
(
TestCase
):
class
PKManyToManyTests
(
TestCase
):
...
@@ -383,3 +391,22 @@ class PKNullableForeignKeyTests(TestCase):
...
@@ -383,3 +391,22 @@ class PKNullableForeignKeyTests(TestCase):
# {'id': 2, 'name': u'target-2', 'sources': []},
# {'id': 2, 'name': u'target-2', 'sources': []},
# ]
# ]
# self.assertEquals(serializer.data, expected)
# self.assertEquals(serializer.data, expected)
class
PKNullableOneToOneTests
(
TestCase
):
def
setUp
(
self
):
target
=
OneToOneTarget
(
name
=
'target-1'
)
target
.
save
()
new_target
=
OneToOneTarget
(
name
=
'target-2'
)
new_target
.
save
()
source
=
NullableOneToOneSource
(
name
=
'source-1'
,
target
=
target
)
source
.
save
()
def
test_reverse_foreign_key_retrieve_with_null
(
self
):
queryset
=
OneToOneTarget
.
objects
.
all
()
serializer
=
NullableOneToOneTargetSerializer
(
queryset
)
expected
=
[
{
'id'
:
1
,
'name'
:
u'target-1'
,
'nullable_source'
:
1
},
{
'id'
:
2
,
'name'
:
u'target-2'
,
'nullable_source'
:
None
},
]
self
.
assertEquals
(
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