Add a test to cover DJANGO_ADMIN_FORCE_ALLAUTH (#4790)

* Add a test to cover `DJANGO_ADMIN_FORCE_ALLAUTH`

* Remove unused fixtures

* Test redirect url
This commit is contained in:
Matthew Foster Walsh 2024-01-17 02:18:54 -07:00 committed by GitHub
parent 5665b617fc
commit bc06b0da59
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,4 +1,10 @@
from importlib import reload
import pytest
from django.contrib import admin
from django.contrib.auth.models import AnonymousUser
from django.urls import reverse
from pytest_django.asserts import assertRedirects
from {{ cookiecutter.project_slug }}.users.models import User
@ -47,3 +53,25 @@ 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
@pytest.mark.usefixtures("force_allauth")
def test_allauth_login(self, rf, settings):
request = rf.get("/fake-url")
request.user = AnonymousUser()
response = admin.site.login(request)
# The `admin` login view should redirect to the `allauth` login view
target_url = reverse(settings.LOGIN_URL) + "?next=" + request.path
assertRedirects(response, target_url, fetch_redirect_response=False)