|
@@ -2,14 +2,17 @@ from django.contrib.auth import get_user_model
|
|
|
from django.core.exceptions import PermissionDenied
|
|
|
from django.http import Http404, HttpResponse
|
|
|
|
|
|
+from rest_framework.decorators import api_view
|
|
|
+
|
|
|
from misago.users.models import Ban
|
|
|
|
|
|
from .. import errorpages, mail
|
|
|
from ..decorators import require_POST
|
|
|
from ..exceptions import Banned
|
|
|
-from ..shortcuts import paginate, validate_slug
|
|
|
+from ..shortcuts import paginate, paginated_response, validate_slug
|
|
|
from ..views import home_redirect
|
|
|
from .models import Model
|
|
|
+from .serializers import MockSerializer
|
|
|
|
|
|
|
|
|
def test_mail_user(request):
|
|
@@ -41,6 +44,57 @@ def test_pagination(request, page=None):
|
|
|
return HttpResponse(",".join([str(x) for x in page.object_list]))
|
|
|
|
|
|
|
|
|
+@api_view()
|
|
|
+def test_paginated_response(request):
|
|
|
+ data = range(100)
|
|
|
+ page = paginate(data, 2, 10)
|
|
|
+
|
|
|
+ return paginated_response(page)
|
|
|
+
|
|
|
+
|
|
|
+@api_view()
|
|
|
+def test_paginated_response_data(request):
|
|
|
+ data = range(100)
|
|
|
+ page = paginate(data, 2, 10)
|
|
|
+
|
|
|
+ return paginated_response(page, data=['a', 'b', 'c', 'd', 'e'])
|
|
|
+
|
|
|
+
|
|
|
+@api_view()
|
|
|
+def test_paginated_response_serializer(request):
|
|
|
+ data = [0, 1, 2, 3]
|
|
|
+ page = paginate(data, 0, 10)
|
|
|
+
|
|
|
+ return paginated_response(page, serializer=MockSerializer)
|
|
|
+
|
|
|
+
|
|
|
+@api_view()
|
|
|
+def test_paginated_response_data_serializer(request):
|
|
|
+ data = [0, 1, 2, 3]
|
|
|
+ page = paginate(data, 0, 10)
|
|
|
+
|
|
|
+ return paginated_response(
|
|
|
+ page,
|
|
|
+ data=['a', 'b', 'c', 'd'],
|
|
|
+ serializer=MockSerializer
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+@api_view()
|
|
|
+def test_paginated_response_data_extra(request):
|
|
|
+ data = [0, 1, 2, 3]
|
|
|
+ page = paginate(data, 0, 10)
|
|
|
+
|
|
|
+ return paginated_response(
|
|
|
+ page,
|
|
|
+ data=['a', 'b', 'c', 'd'],
|
|
|
+ extra={
|
|
|
+ 'next': 'EXTRA',
|
|
|
+ 'lorem': 'ipsum'
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
def validate_slug_view(request, pk, slug):
|
|
|
model = Model(int(pk), 'eric-the-fish')
|
|
|
validate_slug(model, slug)
|