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
a701a215
Commit
a701a215
authored
Nov 15, 2012
by
Stephan Groß
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added page_size_kwarg tests
parent
3ae203a0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
142 additions
and
1 deletions
+142
-1
rest_framework/tests/pagination.py
+142
-1
No files found.
rest_framework/tests/pagination.py
View file @
a701a215
...
@@ -34,6 +34,29 @@ if django_filters:
...
@@ -34,6 +34,29 @@ if django_filters:
filter_backend
=
filters
.
DjangoFilterBackend
filter_backend
=
filters
.
DjangoFilterBackend
class
DefaultPageSizeKwargView
(
generics
.
ListAPIView
):
"""
View for testing default page_size usage
"""
model
=
BasicModel
class
CustomPageSizeKwargView
(
generics
.
ListAPIView
):
"""
View for testing custom page_size usage
"""
model
=
BasicModel
page_size_kwarg
=
'ps'
class
NonePageSizeKwargView
(
generics
.
ListAPIView
):
"""
View for testing None page_size usage
"""
model
=
BasicModel
page_size_kwarg
=
None
class
IntegrationTestPagination
(
TestCase
):
class
IntegrationTestPagination
(
TestCase
):
"""
"""
Integration tests for paginated list views.
Integration tests for paginated list views.
...
@@ -135,7 +158,7 @@ class IntegrationTestPaginationAndFiltering(TestCase):
...
@@ -135,7 +158,7 @@ class IntegrationTestPaginationAndFiltering(TestCase):
class
UnitTestPagination
(
TestCase
):
class
UnitTestPagination
(
TestCase
):
"""
"""
Unit tests for pagination of prim
a
tive objects.
Unit tests for pagination of prim
i
tive objects.
"""
"""
def
setUp
(
self
):
def
setUp
(
self
):
...
@@ -156,3 +179,121 @@ class UnitTestPagination(TestCase):
...
@@ -156,3 +179,121 @@ class UnitTestPagination(TestCase):
self
.
assertEquals
(
serializer
.
data
[
'next'
],
None
)
self
.
assertEquals
(
serializer
.
data
[
'next'
],
None
)
self
.
assertEquals
(
serializer
.
data
[
'previous'
],
'?page=2'
)
self
.
assertEquals
(
serializer
.
data
[
'previous'
],
'?page=2'
)
self
.
assertEquals
(
serializer
.
data
[
'results'
],
self
.
objects
[
20
:])
self
.
assertEquals
(
serializer
.
data
[
'results'
],
self
.
objects
[
20
:])
class
TestDefaultPageSizeKwarg
(
TestCase
):
"""
Tests for list views with default page size kwarg
"""
def
setUp
(
self
):
"""
Create 13 BasicModel instances.
"""
for
i
in
range
(
13
):
BasicModel
(
text
=
i
)
.
save
()
self
.
objects
=
BasicModel
.
objects
self
.
data
=
[
{
'id'
:
obj
.
id
,
'text'
:
obj
.
text
}
for
obj
in
self
.
objects
.
all
()
]
self
.
view
=
DefaultPageSizeKwargView
.
as_view
()
def
test_default_page_size
(
self
):
"""
Tests the default page size for this view.
no page size --> no limit --> no meta data
"""
request
=
factory
.
get
(
'/'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
,
self
.
data
)
def
test_default_page_size_kwarg
(
self
):
"""
If page_size_kwarg is set not set, the default page_size kwarg should limit per view requests.
"""
request
=
factory
.
get
(
'/?page_size=5'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
[
'count'
],
13
)
self
.
assertEquals
(
response
.
data
[
'results'
],
self
.
data
[:
5
])
class
TestCustomPageSizeKwarg
(
TestCase
):
"""
Tests for list views with default page size kwarg
"""
def
setUp
(
self
):
"""
Create 13 BasicModel instances.
"""
for
i
in
range
(
13
):
BasicModel
(
text
=
i
)
.
save
()
self
.
objects
=
BasicModel
.
objects
self
.
data
=
[
{
'id'
:
obj
.
id
,
'text'
:
obj
.
text
}
for
obj
in
self
.
objects
.
all
()
]
self
.
view
=
CustomPageSizeKwargView
.
as_view
()
def
test_default_page_size
(
self
):
"""
Tests the default page size for this view.
no page size --> no limit --> no meta data
"""
request
=
factory
.
get
(
'/'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
,
self
.
data
)
def
test_disabled_default_page_size_kwarg
(
self
):
"""
If page_size_kwarg is set set, the default page_size kwarg should not work.
"""
request
=
factory
.
get
(
'/?page_size=5'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
,
self
.
data
)
def
test_custom_page_size_kwarg
(
self
):
"""
If page_size_kwarg is set set, the new kwarg should limit per view requests.
"""
request
=
factory
.
get
(
'/?ps=5'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
[
'count'
],
13
)
self
.
assertEquals
(
response
.
data
[
'results'
],
self
.
data
[:
5
])
class
TestNonePageSizeKwarg
(
TestCase
):
"""
Tests for list views with default page size kwarg
"""
def
setUp
(
self
):
"""
Create 13 BasicModel instances.
"""
for
i
in
range
(
13
):
BasicModel
(
text
=
i
)
.
save
()
self
.
objects
=
BasicModel
.
objects
self
.
data
=
[
{
'id'
:
obj
.
id
,
'text'
:
obj
.
text
}
for
obj
in
self
.
objects
.
all
()
]
self
.
view
=
NonePageSizeKwargView
.
as_view
()
def
test_default_page_size
(
self
):
"""
Tests the default page size for this view.
no page size --> no limit --> no meta data
"""
request
=
factory
.
get
(
'/'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
,
self
.
data
)
def
test_none_page_size_kwarg
(
self
):
"""
If page_size_kwarg is set to None, custom page_size per request should be disabled.
"""
request
=
factory
.
get
(
'/?page_size=5'
)
response
=
self
.
view
(
request
)
.
render
()
self
.
assertEquals
(
response
.
data
,
self
.
data
)
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