From 49a63f0d9a31cb06618096aed1a3d96e8d2231b9 Mon Sep 17 00:00:00 2001 From: Matthew Foster Walsh <15671892+mfosterw@users.noreply.github.com> Date: Mon, 15 Jan 2024 22:10:00 -0700 Subject: [PATCH] Add a test to cover `DJANGO_ADMIN_FORCE_ALLAUTH` --- .../users/tests/test_admin.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_admin.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_admin.py index 2991d18a9..868ca344c 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_admin.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_admin.py @@ -1,3 +1,8 @@ +from importlib import reload + +import pytest +from django.contrib import admin +from django.contrib.auth.models import AnonymousUser from django.urls import reverse from {{ cookiecutter.project_slug }}.users.models import User @@ -47,3 +52,23 @@ class TestUserAdmin: url = reverse("admin:users_user_change", kwargs={"object_id": user.pk}) response = admin_client.get(url) assert response.status_code == 200 + + @pytest.fixture + def force_allauth(self, settings): + settings.DJANGO_ADMIN_FORCE_ALLAUTH = True + # Reload the admin module to apply the setting change + import {{ cookiecutter.project_slug }}.users.admin as users_admin # pylint: disable=import-outside-toplevel + + try: + reload(users_admin) + except admin.sites.AlreadyRegistered: + pass + + @pytest.mark.django_db + def test_allauth_login(self, rf, settings, force_allauth): # pylint: disable=unused-argument + request = rf.get("/fake-url") + request.user = AnonymousUser() + response = admin.site.login(request) + + # The `admin` login view should redirect to the `allauth` login view + assert response.status_code == 302