Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fed2f1b

Browse files
author
Oliver Sauder
committed
Convert non paginated response test to use APIClient
1 parent 2567515 commit fed2f1b

File tree

5 files changed

+15
-33
lines changed

5 files changed

+15
-33
lines changed

‎example/tests/conftest.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytest
22
from pytest_factoryboy import register
3-
from rest_framework.test import APIClient, APIRequestFactory
3+
from rest_framework.test import APIClient
44

55
from example.factories import (
66
ArtProjectFactory,
@@ -62,8 +62,3 @@ def single_art_project(art_project_factory):
6262
@pytest.fixture
6363
def client():
6464
return APIClient()
65-
66-
67-
@pytest.fixture
68-
def rf():
69-
return APIRequestFactory()

‎example/tests/integration/test_non_paginated_responses.py

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import pytest
22
from django.core.urlresolvers import reverse
33

4-
from rest_framework_json_api.pagination import PageNumberPagination
5-
6-
from example.tests.utils import load_json
7-
from example.views import EntryViewSet
8-
94
try:
105
from unittest import mock
116
except ImportError:
@@ -14,12 +9,11 @@
149
pytestmark = pytest.mark.django_db
1510

1611

17-
# rf == request_factory
1812
@mock.patch(
1913
'rest_framework_json_api.utils'
2014
'.get_default_included_resources_from_serializer',
2115
new=lambda s: [])
22-
def test_multiple_entries_no_pagination(multiple_entries, rf):
16+
def test_multiple_entries_no_pagination(multiple_entries, client):
2317

2418
expected = {
2519
"data": [
@@ -102,17 +96,6 @@ def test_multiple_entries_no_pagination(multiple_entries, rf):
10296
]
10397
}
10498

105-
class NoPagination(PageNumberPagination):
106-
page_size = None
107-
108-
class NonPaginatedEntryViewSet(EntryViewSet):
109-
pagination_class = NoPagination
110-
111-
request = rf.get(reverse("entry-list"))
112-
view = NonPaginatedEntryViewSet.as_view({'get': 'list'})
113-
response = view(request)
114-
response.render()
115-
116-
parsed_content = load_json(response.content)
99+
response = client.get(reverse("nopage-entry-list"))
117100

118-
assert expected == parsed_content
101+
assert expected == response.json()

‎example/tests/utils.py

Lines changed: 0 additions & 7 deletions
This file was deleted.

‎example/urls_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
CompanyViewset,
1313
EntryRelationshipView,
1414
EntryViewSet,
15+
NonPaginatedEntryViewSet,
1516
ProjectViewset
1617
)
1718

1819
router = routers.DefaultRouter(trailing_slash=False)
1920

2021
router.register(r'blogs', BlogViewSet)
2122
router.register(r'entries', EntryViewSet)
23+
router.register(r'nopage-entries', NonPaginatedEntryViewSet, 'nopage-entry')
2224
router.register(r'authors', AuthorViewSet)
2325
router.register(r'comments', CommentViewSet)
2426
router.register(r'companies', CompanyViewset)

‎example/views.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import rest_framework_json_api.metadata
66
import rest_framework_json_api.parsers
77
import rest_framework_json_api.renderers
8+
from rest_framework_json_api.pagination import PageNumberPagination
89
from rest_framework_json_api.utils import format_drf_errors
910
from rest_framework_json_api.views import ModelViewSet, RelationshipView
1011

@@ -68,6 +69,14 @@ def get_serializer_class(self):
6869
return EntrySerializer
6970

7071

72+
class NoPagination(PageNumberPagination):
73+
page_size = None
74+
75+
76+
class NonPaginatedEntryViewSet(EntryViewSet):
77+
pagination_class = NoPagination
78+
79+
7180
class AuthorViewSet(ModelViewSet):
7281
queryset = Author.objects.all()
7382
serializer_class = AuthorSerializer

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /