123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- from rest_framework.decorators import api_view
- from django.contrib.auth import get_user_model
- from django.core.exceptions import PermissionDenied
- from django.http import Http404, HttpResponse
- from misago.core import errorpages, mail
- from misago.core.decorators import require_POST
- from misago.core.exceptions import Banned
- from misago.core.shortcuts import paginate, paginated_response, validate_slug
- from misago.core.views import home_redirect
- from misago.users.models import Ban
- from .models import Model
- from .serializers import MockSerializer
- UserModel = get_user_model()
- def test_mail_user(request):
- test_user = UserModel.objects.all().first()
- mail.mail_user(request, test_user, "Misago Test Mail", "misago/emails/base")
- return HttpResponse("Mailed user!")
- def test_mail_users(request):
- mail.mail_users(request, UserModel.objects.iterator(), "Misago Test Spam", "misago/emails/base")
- return HttpResponse("Mailed users!")
- def test_pagination(request, page=None):
- items = range(15)
- page = paginate(items, page, 5)
- 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)
- return HttpResponse("Allright!")
- def raise_misago_banned(request):
- ban = Ban(user_message="Banned for test!")
- raise Banned(ban)
- def raise_misago_403(request):
- raise PermissionDenied('Misago 403')
- def raise_misago_404(request):
- raise Http404('Misago 404')
- def raise_misago_405(request):
- return errorpages.not_allowed(request)
- def raise_403(request):
- raise PermissionDenied()
- def raise_404(request):
- raise Http404()
- def test_redirect(request):
- return home_redirect(request)
- @require_POST
- def test_require_post(request):
- return HttpResponse("Request method: %s" % request.method)
- @errorpages.shared_403_exception_handler
- def mock_custom_403_error_page(request):
- return HttpResponse("Custom 403", status=403)
- @errorpages.shared_404_exception_handler
- def mock_custom_404_error_page(request):
- return HttpResponse("Custom 404", status=404)
|