Skip to content

Commit

Permalink
feat(pagination): Pagination support for articles:
Browse files Browse the repository at this point in the history
  - Create pagination for articles
[Finishes #164798214]
  • Loading branch information
ezrogha committed Apr 9, 2019
1 parent 1f02b39 commit 8932c5f
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 9 deletions.
4 changes: 4 additions & 0 deletions authors/apps/articles/pagination.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from rest_framework.pagination import PageNumberPagination

class ArticlePageNumberPagination(PageNumberPagination):
page_size = 10
24 changes: 16 additions & 8 deletions authors/apps/articles/tests/test_articles.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@ def test_get_article_not_authenticated(self):
user_token = self.create_user(test_data.test_user_data)
resp =self.client.post('/api/articles/', article_data, HTTP_AUTHORIZATION=user_token, format='json')
response = self.client.get('/api/articles/', format='json')
self.assertEqual(response.data[0]["title"], article_data.get("title"))
self.assertEqual(response.data[0]["description"], article_data.get("description"))
self.assertEqual(response.data[0]["body"], article_data.get("body"))
title = response.data.get('results')[0].get('title')
descr = response.data.get('results')[0].get('description')
body = response.data.get('results')[0].get('body')
self.assertEqual(title, article_data.get("title"))
self.assertEqual(descr, article_data.get("description"))
self.assertEqual(body, article_data.get("body"))

def test_create_article(self):
user_token = self.create_user(test_data.test_user_data)
resp =self.client.post('/api/articles/', article_data, HTTP_AUTHORIZATION=user_token, format='json')
resp = self.client.post('/api/articles/', article_data, HTTP_AUTHORIZATION=user_token, format='json')
self.assertEqual(resp.data["article"]["title"], article_data.get("title"))
self.assertEqual(resp.data["article"]["description"], article_data.get("description"))
self.assertEqual(resp.data["article"]["body"], article_data.get("body"))
Expand All @@ -35,17 +38,22 @@ def test_get_article_authenticated(self):
user_tkn = self.create_user(test_data.test_user_data)
resp =self.client.post('/api/articles/', article_data, HTTP_AUTHORIZATION=user_tkn, format='json')
response = self.client.get('/api/articles/', HTTP_AUTHORIZATION=user_tkn, format='json')
self.assertEqual(response.data[0]["title"], article_data.get("title"))
self.assertEqual(response.data[0]["description"], article_data.get("description"))
self.assertEqual(response.data[0]["body"], article_data.get("body"))
title = response.data.get('results')[0].get('title')
body = response.data.get('results')[0].get('body')
descr = response.data.get('results')[0].get('description')
self.assertEqual(title, article_data.get("title"))
self.assertEqual(descr, article_data.get("description"))
self.assertEqual(body, article_data.get("body"))

def test_get_article_by_id(self):
user1_token = self.create_user(test_user_data)
self.client.post('/api/articles/', article_data, HTTP_AUTHORIZATION=user1_token, format='json')
self.client.post('/api/articles/', article_data, HTTP_AUTHORIZATION=user1_token, format='json')

all_articles = self.client.get('/api/articles/', HTTP_AUTHORIZATION=user1_token, format='json')
response =self.client.get(f'/api/articles/{all_articles.data[0]["id"]}', HTTP_AUTHORIZATION=user1_token, format='json')
id = all_articles.data.get('results')[0].get('id')

response =self.client.get(f'/api/articles/{id}', HTTP_AUTHORIZATION=user1_token, format='json')

self.assertEqual(response.data["title"], article_data["title"])
self.assertEqual(response.data["description"], article_data.get("description"))
Expand Down
2 changes: 2 additions & 0 deletions authors/apps/articles/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from rest_framework.permissions import (IsAuthenticatedOrReadOnly,
IsAuthenticated)
from .serializers import ArticleSerializer
from .pagination import ArticlePageNumberPagination

class ListCreateArticle(generics.ListCreateAPIView):
"""
Expand All @@ -18,6 +19,7 @@ class ListCreateArticle(generics.ListCreateAPIView):

queryset = Article.objects.all()
serializer_class = serializers.ArticleSerializer
pagination_class = ArticlePageNumberPagination

def create(self,request):
article=request.data
Expand Down
5 changes: 4 additions & 1 deletion authors/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,10 @@
'EXCEPTION_HANDLER': 'authors.apps.core.exceptions.core_exception_handler',
'NON_FIELD_ERRORS_KEY': 'error',

#Register custom backend to rest_framework
# Enable LimitOffsetPagination
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',

# Register custom backend to rest_framework
'DEFAULT_AUTHENTICATION_CLASSES': (
'authors.apps.authentication.backends.JWTAuthentication',
),
Expand Down

0 comments on commit 8932c5f

Please sign in to comment.