Просмотр исходного кода

added unit for require_POST decorator

Rafał Pitoń 10 лет назад
Родитель
Сommit
dc9378d322

+ 1 - 0
misago/core/testproject/urls.py

@@ -17,4 +17,5 @@ urlpatterns += patterns('misago.core.testproject.views',
     url(r'^test-403/$', 'raise_403', name='raise_403'),
     url(r'^test-404/$', 'raise_404', name='raise_404'),
     url(r'^test-noscript/$', 'test_noscript', name='test_noscript'),
+    url(r'^test-require-post/$', 'test_require_post', name='test_require_post'),
 )

+ 6 - 0
misago/core/testproject/views.py

@@ -3,6 +3,7 @@ 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.shortcuts import paginate, validate_slug
 from misago.core.testproject.models import Model
 from misago.core.views import noscript
@@ -67,6 +68,11 @@ def test_noscript(request):
     return noscript(request, **request.POST)
 
 
+@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)

+ 7 - 14
misago/core/tests/test_decorators.py

@@ -4,23 +4,16 @@ from django.test import TestCase
 
 
 class RequirePostTests(TestCase):
+    urls = 'misago.core.testproject.urls'
+
     def test_require_POST_success(self):
         """require_POST decorator allowed POST request"""
-        User = get_user_model()
-        test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
-        self.client.login(username=test_user.username, password='Pass.123')
-
-        response = self.client.post(reverse('misago:logout'))
-
-        self.assertEqual(response.status_code, 302)
+        response = self.client.post(reverse('test_require_post'))
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.content, 'Request method: POST')
 
-    def test_require_POST_fail(self):
+    def test_require_POST_fail_GET(self):
         """require_POST decorator failed on GET request"""
-        User = get_user_model()
-        test_user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
-        self.client.login(username=test_user.username, password='Pass.123')
-
-        response = self.client.get(reverse('misago:logout'))
-
+        response = self.client.get(reverse('test_require_post'))
         self.assertEqual(response.status_code, 405)
         self.assertIn("Wrong way", response.content)