aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/pagination.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/tests/pagination.py')
-rw-r--r--rest_framework/tests/pagination.py85
1 files changed, 12 insertions, 73 deletions
diff --git a/rest_framework/tests/pagination.py b/rest_framework/tests/pagination.py
index 8aae2147..3062007d 100644
--- a/rest_framework/tests/pagination.py
+++ b/rest_framework/tests/pagination.py
@@ -36,25 +36,17 @@ if django_filters:
class DefaultPageSizeKwargView(generics.ListAPIView):
"""
- View for testing default page_size usage
+ View for testing default paginate_by_param usage
"""
model = BasicModel
-class CustomPageSizeKwargView(generics.ListAPIView):
+class PaginateByParamView(generics.ListAPIView):
"""
- View for testing custom page_size usage
+ View for testing custom paginate_by_param usage
"""
model = BasicModel
- page_size_kwarg = 'ps'
-
-
-class NonePageSizeKwargView(generics.ListAPIView):
- """
- View for testing None page_size usage
- """
- model = BasicModel
- page_size_kwarg = None
+ paginate_by_param = 'page_size'
class IntegrationTestPagination(TestCase):
@@ -181,9 +173,9 @@ class UnitTestPagination(TestCase):
self.assertEquals(serializer.data['results'], self.objects[20:])
-class TestDefaultPageSizeKwarg(TestCase):
+class TestUnpaginated(TestCase):
"""
- Tests for list views with default page size kwarg
+ Tests for list views without pagination.
"""
def setUp(self):
@@ -199,26 +191,17 @@ class TestDefaultPageSizeKwarg(TestCase):
]
self.view = DefaultPageSizeKwargView.as_view()
- def test_default_page_size(self):
+ def test_unpaginated(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()
+ response = self.view(request)
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):
+class TestCustomPaginateByParam(TestCase):
"""
Tests for list views with default page size kwarg
"""
@@ -234,7 +217,7 @@ class TestCustomPageSizeKwarg(TestCase):
{'id': obj.id, 'text': obj.text}
for obj in self.objects.all()
]
- self.view = CustomPageSizeKwargView.as_view()
+ self.view = PaginateByParamView.as_view()
def test_default_page_size(self):
"""
@@ -245,55 +228,11 @@ class TestCustomPageSizeKwarg(TestCase):
response = self.view(request).render()
self.assertEquals(response.data, self.data)
- def test_disabled_default_page_size_kwarg(self):
+ def test_paginate_by_param(self):
"""
- If page_size_kwarg is set set, the default page_size kwarg should not work.
+ If paginate_by_param is set, the new kwarg should limit per view requests.
"""
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)