aboutsummaryrefslogtreecommitdiffstats
path: root/pyblackbird_cc/users/tests/test_views.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyblackbird_cc/users/tests/test_views.py')
-rw-r--r--pyblackbird_cc/users/tests/test_views.py101
1 files changed, 0 insertions, 101 deletions
diff --git a/pyblackbird_cc/users/tests/test_views.py b/pyblackbird_cc/users/tests/test_views.py
deleted file mode 100644
index 5ca13fc..0000000
--- a/pyblackbird_cc/users/tests/test_views.py
+++ /dev/null
@@ -1,101 +0,0 @@
-from http import HTTPStatus
-
-import pytest
-from django.conf import settings
-from django.contrib import messages
-from django.contrib.auth.models import AnonymousUser
-from django.contrib.messages.middleware import MessageMiddleware
-from django.contrib.sessions.middleware import SessionMiddleware
-from django.http import HttpRequest
-from django.http import HttpResponseRedirect
-from django.test import RequestFactory
-from django.urls import reverse
-from django.utils.translation import gettext_lazy as _
-
-from pyblackbird_cc.users.forms import UserAdminChangeForm
-from pyblackbird_cc.users.models import User
-from pyblackbird_cc.users.tests.factories import UserFactory
-from pyblackbird_cc.users.views import UserRedirectView
-from pyblackbird_cc.users.views import UserUpdateView
-from pyblackbird_cc.users.views import user_detail_view
-
-pytestmark = pytest.mark.django_db
-
-
-class TestUserUpdateView:
- """
- TODO:
- extracting view initialization code as class-scoped fixture
- would be great if only pytest-django supported non-function-scoped
- fixture db access -- this is a work-in-progress for now:
- https://github.com/pytest-dev/pytest-django/pull/258
- """
-
- def dummy_get_response(self, request: HttpRequest):
- return None
-
- def test_get_success_url(self, user: User, rf: RequestFactory):
- view = UserUpdateView()
- request = rf.get("/fake-url/")
- request.user = user
-
- view.request = request
- assert view.get_success_url() == f"/users/{user.pk}/"
-
- def test_get_object(self, user: User, rf: RequestFactory):
- view = UserUpdateView()
- request = rf.get("/fake-url/")
- request.user = user
-
- view.request = request
-
- assert view.get_object() == user
-
- def test_form_valid(self, user: User, rf: RequestFactory):
- view = UserUpdateView()
- request = rf.get("/fake-url/")
-
- # Add the session/message middleware to the request
- SessionMiddleware(self.dummy_get_response).process_request(request)
- MessageMiddleware(self.dummy_get_response).process_request(request)
- request.user = user
-
- view.request = request
-
- # Initialize the form
- form = UserAdminChangeForm()
- form.cleaned_data = {}
- form.instance = user
- view.form_valid(form)
-
- messages_sent = [m.message for m in messages.get_messages(request)]
- assert messages_sent == [_("Information successfully updated")]
-
-
-class TestUserRedirectView:
- def test_get_redirect_url(self, user: User, rf: RequestFactory):
- view = UserRedirectView()
- request = rf.get("/fake-url")
- request.user = user
-
- view.request = request
- assert view.get_redirect_url() == f"/users/{user.pk}/"
-
-
-class TestUserDetailView:
- def test_authenticated(self, user: User, rf: RequestFactory):
- request = rf.get("/fake-url/")
- request.user = UserFactory()
- response = user_detail_view(request, pk=user.pk)
-
- assert response.status_code == HTTPStatus.OK
-
- def test_not_authenticated(self, user: User, rf: RequestFactory):
- request = rf.get("/fake-url/")
- request.user = AnonymousUser()
- response = user_detail_view(request, pk=user.pk)
- login_url = reverse(settings.LOGIN_URL)
-
- assert isinstance(response, HttpResponseRedirect)
- assert response.status_code == HTTPStatus.FOUND
- assert response.url == f"{login_url}?next=/fake-url/"