diff options
Diffstat (limited to 'pyblackbird_cc/users/tests/test_views.py')
-rw-r--r-- | pyblackbird_cc/users/tests/test_views.py | 101 |
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/" |