From d5583bccf635c933b09a5c08fb002d7756ebac5d Mon Sep 17 00:00:00 2001 From: Anna Shamray Date: Thu, 5 Sep 2024 16:03:40 +0200 Subject: [PATCH 1/5] :construction: [https://github.com/maykinmedia/commonground-api-common/pull/33] add temp git dependency for commonground-api-common --- requirements/base.in | 1 + requirements/base.txt | 6 ++++-- requirements/ci.txt | 2 +- requirements/dev.txt | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index d764f73a..9ec7b21e 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1 +1,2 @@ open-api-framework +git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination diff --git a/requirements/base.txt b/requirements/base.txt index 69045c2f..873986de 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -56,8 +56,10 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -commonground-api-common==1.13.2 - # via open-api-framework +commonground-api-common @ git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination + # via + # -r requirements/base.in + # open-api-framework coreapi==2.3.3 # via commonground-api-common coreschema==0.0.4 diff --git a/requirements/ci.txt b/requirements/ci.txt index 1bfc0503..8d95e95b 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -112,7 +112,7 @@ click-repl==0.3.0 # -c requirements/base.txt # -r requirements/base.txt # celery -commonground-api-common==1.13.2 +commonground-api-common @ git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination # via # -c requirements/base.txt # -r requirements/base.txt diff --git a/requirements/dev.txt b/requirements/dev.txt index 6384845e..b67d143a 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -129,7 +129,7 @@ click-repl==0.3.0 # -c requirements/ci.txt # -r requirements/ci.txt # celery -commonground-api-common==1.13.2 +commonground-api-common @ git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination # via # -c requirements/ci.txt # -r requirements/ci.txt From b8a1729d21b0a7f14524a8d98d62dacde850e471 Mon Sep 17 00:00:00 2001 From: Anna Shamray Date: Thu, 5 Sep 2024 16:05:35 +0200 Subject: [PATCH 2/5] :sparkles: [https://github.com/maykinmedia/commonground-api-common/pull/33] add dynamic pagination to viewsets --- .../components/contactgegevens/api/viewset.py | 6 +++--- .../klantinteracties/api/viewsets/actoren.py | 4 ++-- .../klantinteracties/api/viewsets/digitaal_adres.py | 4 ++-- .../klantinteracties/api/viewsets/internetaken.py | 4 ++-- .../klantinteracties/api/viewsets/klantcontacten.py | 12 ++++++------ .../klantinteracties/api/viewsets/partijen.py | 12 ++++++------ .../klantinteracties/api/viewsets/rekeningnummers.py | 4 ++-- src/openklant/conf/api.py | 2 +- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/openklant/components/contactgegevens/api/viewset.py b/src/openklant/components/contactgegevens/api/viewset.py index b638021b..ed7dca55 100644 --- a/src/openklant/components/contactgegevens/api/viewset.py +++ b/src/openklant/components/contactgegevens/api/viewset.py @@ -1,6 +1,6 @@ from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.contactgegevens.api.serializers import ( OrganisatieSerializer, @@ -44,7 +44,7 @@ class OrganisatieViewSet(viewsets.ModelViewSet): queryset = Organisatie.objects.order_by("-pk") serializer_class = OrganisatieSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -82,6 +82,6 @@ class PersoonViewSet(viewsets.ModelViewSet): queryset = Persoon.objects.order_by("-pk") serializer_class = PersoonSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) diff --git a/src/openklant/components/klantinteracties/api/viewsets/actoren.py b/src/openklant/components/klantinteracties/api/viewsets/actoren.py index e7dc2373..77c60e92 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/actoren.py +++ b/src/openklant/components/klantinteracties/api/viewsets/actoren.py @@ -1,6 +1,6 @@ from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.klantinteracties.api.filterset.actoren import ActorenFilterSet from openklant.components.klantinteracties.api.serializers.actoren import ( @@ -48,7 +48,7 @@ class ActorViewSet(viewsets.ModelViewSet): ) serializer_class = ActorSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filterset_class = ActorenFilterSet authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) diff --git a/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py b/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py index e6a6b23f..c632ef55 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py @@ -1,6 +1,6 @@ from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.klantinteracties.api.filterset.digitaal_adres import ( DigitaalAdresDetailFilterSet, @@ -54,7 +54,7 @@ class DigitaalAdresViewSet(ExpandMixin, viewsets.ModelViewSet): ) serializer_class = DigitaalAdresSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) diff --git a/src/openklant/components/klantinteracties/api/viewsets/internetaken.py b/src/openklant/components/klantinteracties/api/viewsets/internetaken.py index 68bda792..00fc8300 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/internetaken.py +++ b/src/openklant/components/klantinteracties/api/viewsets/internetaken.py @@ -1,6 +1,6 @@ from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.klantinteracties.api.filterset.internetaken import ( InternetaakFilterSet, @@ -50,7 +50,7 @@ class InterneTaakViewSet(viewsets.ModelViewSet): ) serializer_class = InterneTaakSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filterset_class = InternetaakFilterSet authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) diff --git a/src/openklant/components/klantinteracties/api/viewsets/klantcontacten.py b/src/openklant/components/klantinteracties/api/viewsets/klantcontacten.py index 4dd051b2..ad70459e 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/klantcontacten.py +++ b/src/openklant/components/klantinteracties/api/viewsets/klantcontacten.py @@ -1,7 +1,7 @@ from django_filters.rest_framework import DjangoFilterBackend from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.klantinteracties.api.filterset.klantcontacten import ( ActorKlantcontactFilterSet, @@ -68,7 +68,7 @@ class KlantcontactViewSet(ExpandMixin, viewsets.ModelViewSet): ) serializer_class = KlantcontactSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -127,7 +127,7 @@ class BetrokkeneViewSet(viewsets.ModelViewSet): ) serializer_class = BetrokkeneSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filterset_class = BetrokkeneFilterSet authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -167,7 +167,7 @@ class OnderwerpobjectViewSet(viewsets.ModelViewSet): ) serializer_class = OnderwerpobjectSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filter_backends = [DjangoFilterBackend] filterset_fields = [ "onderwerpobjectidentificator_object_id", @@ -210,7 +210,7 @@ class BijlageViewSet(viewsets.ModelViewSet): queryset = Bijlage.objects.order_by("-pk").select_related("klantcontact") serializer_class = BijlageSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filter_backends = [DjangoFilterBackend] filterset_fields = [ "bijlageidentificator_object_id", @@ -258,7 +258,7 @@ class ActorKlantcontactViewSet(viewsets.ModelViewSet): ) serializer_class = ActorKlantcontactSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filterset_class = ActorKlantcontactFilterSet authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) diff --git a/src/openklant/components/klantinteracties/api/viewsets/partijen.py b/src/openklant/components/klantinteracties/api/viewsets/partijen.py index 1bd39087..46624d77 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/partijen.py +++ b/src/openklant/components/klantinteracties/api/viewsets/partijen.py @@ -1,7 +1,7 @@ from django_filters.rest_framework import DjangoFilterBackend from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.klantinteracties.api.filterset.partijen import ( CategorieRelatieFilterSet, @@ -72,7 +72,7 @@ class PartijViewSet(ExpandMixin, viewsets.ModelViewSet): ) serializer_class = PartijSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -122,7 +122,7 @@ class VertegenwoordigdenViewSet(viewsets.ModelViewSet): ) serializer_class = VertegenwoordigdenSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filterset_class = VertegenwoordigdenFilterSet authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -165,7 +165,7 @@ class CategorieRelatieViewSet(viewsets.ModelViewSet): serializer_class = CategorieRelatieSerializer lookup_field = "uuid" filterset_class = CategorieRelatieFilterSet - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -203,7 +203,7 @@ class CategorieViewSet(viewsets.ModelViewSet): queryset = Categorie.objects.order_by("-pk") serializer_class = CategorieSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination authentication_classes = (TokenAuthentication,) permission_classes = (TokenPermissions,) @@ -241,7 +241,7 @@ class PartijIdentificatorViewSet(viewsets.ModelViewSet): queryset = PartijIdentificator.objects.order_by("-pk").select_related("partij") serializer_class = PartijIdentificatorSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filter_backends = [DjangoFilterBackend] filterset_fields = [ "andere_partij_identificator", diff --git a/src/openklant/components/klantinteracties/api/viewsets/rekeningnummers.py b/src/openklant/components/klantinteracties/api/viewsets/rekeningnummers.py index 82cbfe8d..d1e64475 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/rekeningnummers.py +++ b/src/openklant/components/klantinteracties/api/viewsets/rekeningnummers.py @@ -1,7 +1,7 @@ from django_filters.rest_framework import DjangoFilterBackend from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets -from rest_framework.pagination import PageNumberPagination +from vng_api_common.pagination import DynamicPageSizePagination from openklant.components.klantinteracties.api.serializers.rekeningnummers import ( RekeningnummerSerializer, @@ -44,7 +44,7 @@ class RekeningnummerViewSet(viewsets.ModelViewSet): ) serializer_class = RekeningnummerSerializer lookup_field = "uuid" - pagination_class = PageNumberPagination + pagination_class = DynamicPageSizePagination filter_backends = [DjangoFilterBackend] filterset_fields = [ "uuid", diff --git a/src/openklant/conf/api.py b/src/openklant/conf/api.py index bc504ed5..74847b22 100644 --- a/src/openklant/conf/api.py +++ b/src/openklant/conf/api.py @@ -12,7 +12,7 @@ REST_FRAMEWORK = BASE_REST_FRAMEWORK.copy() REST_FRAMEWORK["PAGE_SIZE"] = 100 REST_FRAMEWORK["DEFAULT_PAGINATION_CLASS"] = ( - "rest_framework.pagination.PageNumberPagination" + "vng_api_common.pagination.DynamicPageSizePagination" ) REST_FRAMEWORK["DEFAULT_SCHEMA_CLASS"] = "openklant.components.utils.schema.AutoSchema" From a5397c7f068c3151d9b61a288abdaf237b22c343 Mon Sep 17 00:00:00 2001 From: Anna Shamray Date: Thu, 5 Sep 2024 16:16:11 +0200 Subject: [PATCH 3/5] :memo: [https://github.com/open-zaak/open-zaak/issues/1668] update OAS with dynamic pagination --- .../components/contactgegevens/openapi.yaml | 12 +++ .../components/klantinteracties/openapi.yaml | 84 +++++++++++++++++++ 2 files changed, 96 insertions(+) diff --git a/src/openklant/components/contactgegevens/openapi.yaml b/src/openklant/components/contactgegevens/openapi.yaml index 78cfdb29..8f235237 100644 --- a/src/openklant/components/contactgegevens/openapi.yaml +++ b/src/openklant/components/contactgegevens/openapi.yaml @@ -24,6 +24,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer tags: - organisaties security: @@ -168,6 +174,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer tags: - personen security: diff --git a/src/openklant/components/klantinteracties/openapi.yaml b/src/openklant/components/klantinteracties/openapi.yaml index 7c9a53a7..26eda611 100644 --- a/src/openklant/components/klantinteracties/openapi.yaml +++ b/src/openklant/components/klantinteracties/openapi.yaml @@ -49,6 +49,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: soortActor schema: @@ -225,6 +231,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer tags: - actor klantcontacten security: @@ -404,6 +416,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: verstrektedigitaalAdres__adres schema: @@ -598,6 +616,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer tags: - bijlagen security: @@ -767,6 +791,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: partij__nummer schema: @@ -929,6 +959,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer tags: - categorieën security: @@ -1104,6 +1140,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: soortDigitaalAdres schema: @@ -1341,6 +1383,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: status schema: @@ -1588,6 +1636,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: plaatsgevondenOp schema: @@ -1806,6 +1860,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer tags: - onderwerpobjecten security: @@ -1954,6 +2014,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: partijIdentificatorCodeObjecttype schema: @@ -2187,6 +2253,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: partijIdentificator__codeObjecttype schema: @@ -2401,6 +2473,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: uuid schema: @@ -2550,6 +2628,12 @@ paths: description: Een pagina binnen de gepagineerde set resultaten. schema: type: integer + - name: pageSize + required: false + in: query + description: Het aantal resultaten terug te geven per pagina. + schema: + type: integer - in: query name: vertegenwoordigdePartij__url schema: From c407ded6f11de97d7e5ec6490b1f19ae8bc4b145 Mon Sep 17 00:00:00 2001 From: Anna Shamray Date: Thu, 5 Sep 2024 17:20:13 +0200 Subject: [PATCH 4/5] :white_check_mark: [https://github.com/open-zaak/open-zaak/issues/1668] test dynamic pagination --- .../contactgegevens/api/tests/test_apis.py | 26 +++++++++++++++++++ .../api/tests/test_actoren.py | 13 ++++++++++ .../api/tests/test_digitaal_adres.py | 13 ++++++++++ .../api/tests/test_internetaken.py | 13 ++++++++++ .../api/tests/test_klantcontacten.py | 13 ++++++++++ .../api/tests/test_partijen.py | 13 ++++++++++ .../api/tests/test_rekeningnummers.py | 13 ++++++++++ 7 files changed, 104 insertions(+) diff --git a/src/openklant/components/contactgegevens/api/tests/test_apis.py b/src/openklant/components/contactgegevens/api/tests/test_apis.py index caf65d2c..ab47d877 100644 --- a/src/openklant/components/contactgegevens/api/tests/test_apis.py +++ b/src/openklant/components/contactgegevens/api/tests/test_apis.py @@ -199,6 +199,19 @@ def test_update_partial_persoon(self): ) self.assertEqual(data["land"], "5001") + def test_list_pagination_pagesize_param(self): + list_url = reverse("contactgegevens:persoon-list") + PersoonFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + class OrganisatiesTests(APITestCase): def test_create_organisatie(self): @@ -365,3 +378,16 @@ def test_update_partial_organisatie(self): }, ) self.assertEqual(data["land"], "5001") + + def test_list_pagination_pagesize_param(self): + list_url = reverse("contactgegevens:organisatie-list") + OrganisatieFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") diff --git a/src/openklant/components/klantinteracties/api/tests/test_actoren.py b/src/openklant/components/klantinteracties/api/tests/test_actoren.py index 4e6389e9..54d73160 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_actoren.py +++ b/src/openklant/components/klantinteracties/api/tests/test_actoren.py @@ -22,6 +22,19 @@ def test_list_actor(self): data = response.json() self.assertEqual(len(data["results"]), 2) + def test_list_pagination_pagesize_param(self): + list_url = reverse("klantinteracties:actor-list") + ActorFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + def test_read_actor(self): actor = ActorFactory.create() detail_url = reverse( diff --git a/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py b/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py index 321fcf42..a922be81 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py @@ -25,6 +25,19 @@ def test_list_digitaal_adres(self): data = response.json() self.assertEqual(len(data["results"]), 2) + def test_list_pagination_pagesize_param(self): + list_url = reverse("klantinteracties:digitaaladres-list") + DigitaalAdresFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + def test_read_digitaal_adres(self): digitaal_adres = DigitaalAdresFactory.create() detail_url = reverse( diff --git a/src/openklant/components/klantinteracties/api/tests/test_internetaken.py b/src/openklant/components/klantinteracties/api/tests/test_internetaken.py index e76fac98..ce258ddb 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_internetaken.py +++ b/src/openklant/components/klantinteracties/api/tests/test_internetaken.py @@ -27,6 +27,19 @@ def test_list_internetaak(self): data = response.json() self.assertEqual(len(data["results"]), 2) + def test_list_pagination_pagesize_param(self): + list_url = reverse("klantinteracties:internetaak-list") + InterneTaakFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + def test_read_internetaak(self): internetaak = InterneTaakFactory.create() detail_url = reverse( diff --git a/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py b/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py index d9f8dd94..54e9f340 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py +++ b/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py @@ -34,6 +34,19 @@ def test_list_klantcontact(self): self.assertEqual(data["results"][0]["hadBetrokkenActoren"], []) self.assertEqual(data["results"][1]["hadBetrokkenActoren"], []) + def test_list_pagination_pagesize_param(self): + list_url = reverse("klantinteracties:klantcontact-list") + KlantcontactFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + def test_read_klantcontact(self): actor = ActorFactory.create( naam="Phil", diff --git a/src/openklant/components/klantinteracties/api/tests/test_partijen.py b/src/openklant/components/klantinteracties/api/tests/test_partijen.py index e2e07a1f..bae2e2f5 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_partijen.py +++ b/src/openklant/components/klantinteracties/api/tests/test_partijen.py @@ -54,6 +54,19 @@ def test_list_partij(self): ], ) + def test_list_pagination_pagesize_param(self): + list_url = reverse("klantinteracties:partij-list") + PartijFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + def test_read_partij(self): partij = PartijFactory.create() detail_url = reverse( diff --git a/src/openklant/components/klantinteracties/api/tests/test_rekeningnummers.py b/src/openklant/components/klantinteracties/api/tests/test_rekeningnummers.py index edb9271c..c295cc14 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_rekeningnummers.py +++ b/src/openklant/components/klantinteracties/api/tests/test_rekeningnummers.py @@ -22,6 +22,19 @@ def test_list_rekeningnummer(self): data = response.json() self.assertEqual(len(data["results"]), 2) + def test_list_pagination_pagesize_param(self): + list_url = reverse("klantinteracties:rekeningnummer-list") + RekeningnummerFactory.create_batch(10) + + response = self.client.get(list_url, {"pageSize": 5}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = response.json() + self.assertEqual(data["count"], 10) + self.assertEqual(len(data["results"]), 5) + self.assertEqual(data["next"], f"http://testserver{list_url}?page=2&pageSize=5") + def test_read_rekeningnummer(self): rekeningnummer = RekeningnummerFactory.create() detail_url = reverse( From 5f9fdad73b8923ec859db0ba470c17270a0f500f Mon Sep 17 00:00:00 2001 From: Anna Shamray Date: Fri, 6 Sep 2024 14:36:26 +0200 Subject: [PATCH 5/5] :arrow_up: [https://github.com/open-zaak/open-zaak/issues/1668] bump commonground-api-common to 1.13.3 --- requirements/base.in | 1 - requirements/base.txt | 6 ++---- requirements/ci.txt | 2 +- requirements/dev.txt | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index 9ec7b21e..d764f73a 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,2 +1 @@ open-api-framework -git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination diff --git a/requirements/base.txt b/requirements/base.txt index 873986de..2dd8328a 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -56,10 +56,8 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -commonground-api-common @ git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination - # via - # -r requirements/base.in - # open-api-framework +commonground-api-common==1.13.3 + # via open-api-framework coreapi==2.3.3 # via commonground-api-common coreschema==0.0.4 diff --git a/requirements/ci.txt b/requirements/ci.txt index 8d95e95b..f7a7eea2 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -112,7 +112,7 @@ click-repl==0.3.0 # -c requirements/base.txt # -r requirements/base.txt # celery -commonground-api-common @ git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination +commonground-api-common==1.13.3 # via # -c requirements/base.txt # -r requirements/base.txt diff --git a/requirements/dev.txt b/requirements/dev.txt index b67d143a..161d58e9 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -129,7 +129,7 @@ click-repl==0.3.0 # -c requirements/ci.txt # -r requirements/ci.txt # celery -commonground-api-common @ git+https://github.com/maykinmedia/commonground-api-common.git@feature/dynamic-pagination +commonground-api-common==1.13.3 # via # -c requirements/ci.txt # -r requirements/ci.txt