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
354fbc64
Commit
354fbc64
authored
Mar 11, 2013
by
Mjumbe Wawatu Ukweli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Group the model-inheritance-related tests together
parent
bdcecf48
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
45 deletions
+55
-45
rest_framework/tests/models.py
+0
-14
rest_framework/tests/multitable_inheritance.py
+16
-0
rest_framework/tests/serializer.py
+39
-31
No files found.
rest_framework/tests/models.py
View file @
354fbc64
...
...
@@ -166,17 +166,3 @@ class NullableOneToOneSource(RESTFrameworkModel):
name
=
models
.
CharField
(
max_length
=
100
)
target
=
models
.
OneToOneField
(
OneToOneTarget
,
null
=
True
,
blank
=
True
,
related_name
=
'nullable_source'
)
# Inherited
class
ParentModel
(
RESTFrameworkModel
):
name1
=
models
.
CharField
(
max_length
=
100
)
class
ChildModel
(
ParentModel
):
name2
=
models
.
CharField
(
max_length
=
100
)
class
AssociatedModel
(
RESTFrameworkModel
):
ref
=
models
.
OneToOneField
(
ParentModel
,
primary_key
=
True
)
name
=
models
.
CharField
(
max_length
=
100
)
rest_framework/tests/multitable_inheritance.py
0 → 100644
View file @
354fbc64
from
__future__
import
unicode_literals
from
django.db
import
models
from
rest_framework.tests.models
import
RESTFrameworkModel
class
ParentModel
(
RESTFrameworkModel
):
name1
=
models
.
CharField
(
max_length
=
100
)
class
ChildModel
(
ParentModel
):
name2
=
models
.
CharField
(
max_length
=
100
)
class
AssociatedModel
(
RESTFrameworkModel
):
ref
=
models
.
OneToOneField
(
ParentModel
,
primary_key
=
True
)
name
=
models
.
CharField
(
max_length
=
100
)
rest_framework/tests/serializer.py
View file @
354fbc64
...
...
@@ -4,8 +4,9 @@ from django.test import TestCase
from
rest_framework
import
serializers
from
rest_framework.tests.models
import
(
HasPositiveIntegerAsChoice
,
Album
,
ActionItem
,
Anchor
,
BasicModel
,
BlankFieldModel
,
BlogPost
,
Book
,
CallableDefaultValueModel
,
DefaultValueModel
,
ManyToManyModel
,
Person
,
ReadOnlyManyToManyModel
,
Photo
,
ParentModel
,
ChildModel
,
AssociatedModel
)
ManyToManyModel
,
Person
,
ReadOnlyManyToManyModel
,
Photo
)
from
rest_framework.tests.multitable_inheritance
import
(
ParentModel
,
ChildModel
,
AssociatedModel
)
import
datetime
import
pickle
...
...
@@ -181,27 +182,6 @@ class BasicTests(TestCase):
self
.
assertEqual
(
set
(
serializer
.
data
.
keys
()),
set
([
'name'
,
'age'
,
'info'
]))
def
test_multitable_inherited_model_fields_as_expected
(
self
):
"""
Assert that the parent pointer field is not included in the fields
serialized fields
"""
child
=
ChildModel
(
name1
=
'parent name'
,
name2
=
'child name'
)
serializer
=
DerivedModelSerializer
(
child
)
self
.
assertEqual
(
set
(
serializer
.
data
.
keys
()),
set
([
'name1'
,
'name2'
,
'id'
]))
def
test_onetoone_primary_key_model_fields_as_expected
(
self
):
"""
Assert that a model with a onetoone field that is the primary key is
not treated like a derived model
"""
parent
=
ParentModel
(
name1
=
'parent name'
)
associate
=
AssociatedModel
(
name
=
'hello'
,
ref
=
parent
)
serializer
=
AssociatedModelSerializer
(
associate
)
self
.
assertEqual
(
set
(
serializer
.
data
.
keys
()),
set
([
'name'
,
'ref'
]))
def
test_field_with_dictionary
(
self
):
"""
Make sure that dictionaries from fields are left intact
...
...
@@ -282,14 +262,6 @@ class ValidationTests(TestCase):
self
.
assertEqual
(
serializer
.
is_valid
(),
False
)
self
.
assertEqual
(
serializer
.
errors
,
{
'email'
:
[
'This field is required.'
]})
def
test_multitable_inherited_model
(
self
):
data
=
{
'name1'
:
'parent name'
,
'name2'
:
'child name'
,
}
serializer
=
DerivedModelSerializer
(
data
=
data
)
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
def
test_missing_bool_with_default
(
self
):
"""Make sure that a boolean value with a 'False' value is not
mistaken for not having a default."""
...
...
@@ -1150,3 +1122,39 @@ class DeserializeListTestCase(TestCase):
self
.
assertFalse
(
serializer
.
is_valid
())
expected
=
[{},
{
'email'
:
[
'This field is required.'
]},
{}]
self
.
assertEqual
(
serializer
.
errors
,
expected
)
class
IneritedModelSerializationTests
(
TestCase
):
def
test_multitable_inherited_model_fields_as_expected
(
self
):
"""
Assert that the parent pointer field is not included in the fields
serialized fields
"""
child
=
ChildModel
(
name1
=
'parent name'
,
name2
=
'child name'
)
serializer
=
DerivedModelSerializer
(
child
)
self
.
assertEqual
(
set
(
serializer
.
data
.
keys
()),
set
([
'name1'
,
'name2'
,
'id'
]))
def
test_onetoone_primary_key_model_fields_as_expected
(
self
):
"""
Assert that a model with a onetoone field that is the primary key is
not treated like a derived model
"""
parent
=
ParentModel
(
name1
=
'parent name'
)
associate
=
AssociatedModel
(
name
=
'hello'
,
ref
=
parent
)
serializer
=
AssociatedModelSerializer
(
associate
)
self
.
assertEqual
(
set
(
serializer
.
data
.
keys
()),
set
([
'name'
,
'ref'
]))
def
test_data_is_valid_without_parent_ptr
(
self
):
"""
Assert that the pointer to the parent table is not a required field
for input data
"""
data
=
{
'name1'
:
'parent name'
,
'name2'
:
'child name'
,
}
serializer
=
DerivedModelSerializer
(
data
=
data
)
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
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