From 1635c15914072aecff30ce42fd95a6ca7437767d Mon Sep 17 00:00:00 2001 From: Casey Rollins Date: Wed, 10 Jan 2018 12:00:44 -0500 Subject: [PATCH] Increase provider taxonomies list max_page_size to 1000 --- api/base/pagination.py | 3 +++ api/preprint_providers/views.py | 3 ++- .../views/test_preprint_provider_subjects_list.py | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/api/base/pagination.py b/api/base/pagination.py index ea9ddeaf7ba..29d42819238 100644 --- a/api/base/pagination.py +++ b/api/base/pagination.py @@ -168,6 +168,9 @@ class MaxSizePagination(JSONAPIPagination): class NoMaxPageSizePagination(JSONAPIPagination): max_page_size = None +class IncreasedPageSizePagination(JSONAPIPagination): + max_page_size = 1000 + class CommentPagination(JSONAPIPagination): def get_paginated_response(self, data): diff --git a/api/preprint_providers/views.py b/api/preprint_providers/views.py index e54917258e3..39ee17c039a 100644 --- a/api/preprint_providers/views.py +++ b/api/preprint_providers/views.py @@ -15,7 +15,7 @@ from api.base.exceptions import InvalidFilterValue, InvalidFilterOperator, Conflict from api.base.filters import PreprintFilterMixin, ListFilterMixin from api.base.views import JSONAPIBaseView -from api.base.pagination import MaxSizePagination +from api.base.pagination import MaxSizePagination, IncreasedPageSizePagination from api.base.utils import get_object_or_error, get_user_auth, is_truthy from api.licenses.views import LicenseList from api.taxonomies.serializers import TaxonomySerializer @@ -301,6 +301,7 @@ class PreprintProviderTaxonomies(JSONAPIBaseView, generics.ListAPIView): required_write_scopes = [CoreScopes.NULL] serializer_class = TaxonomySerializer + pagination_class = IncreasedPageSizePagination ordering = ('-id',) diff --git a/api_tests/preprint_providers/views/test_preprint_provider_subjects_list.py b/api_tests/preprint_providers/views/test_preprint_provider_subjects_list.py index 7f8241de459..06c3adde4a2 100644 --- a/api_tests/preprint_providers/views/test_preprint_provider_subjects_list.py +++ b/api_tests/preprint_providers/views/test_preprint_provider_subjects_list.py @@ -64,6 +64,21 @@ def setUp(self): self.lawless_url = '/{}preprint_providers/{}/taxonomies/?page[size]=15&'.format(API_BASE, self.lawless_preprint_provider._id) self.ruled_url = '/{}preprint_providers/{}/taxonomies/?page[size]=15&'.format(API_BASE, self.ruled_preprint_provider._id) + def test_max_page_size(self): + base_url = '/{}preprint_providers/{}/taxonomies/'.format(API_BASE, self.lawless_preprint_provider._id) + + res = self.app.get(base_url) + assert_equal(res.status_code, 200) + assert_equal(res.json['links']['meta']['per_page'], 10) + + res = self.app.get(base_url + '?page[size]=150') + assert_equal(res.status_code, 200) + assert_equal(res.json['links']['meta']['per_page'], 150) + + res = self.app.get(base_url + '?page[size]=2018') + assert_equal(res.status_code, 200) + assert_equal(res.json['links']['meta']['per_page'], 1000) + def test_no_rules_grabs_all(self): res = self.app.get(self.lawless_url)