#35265: Add test for AdminSite with custom headers.
-------------------------------------+-------------------------------------
Reporter: Kasun Herath | Owner: Kasun
Type: | Herath
Cleanup/optimization | Status: assigned
Component: contrib.admin | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):
* stage: Unreviewed => Accepted
* summary: Adjust unit tests on admin custom site titles => Add test for
AdminSite with custom headers.
* type: Bug => Cleanup/optimization
Comment:
Thanks for the ticket, there is no need to adjust existing tests, I'd
rather add a new one, e.g.
{{{#!diff
diff --git a/tests/admin_views/test_adminsite.py
b/tests/admin_views/test_adminsite.py
index 68a32567d8..cb1da92003 100644
--- a/tests/admin_views/test_adminsite.py
+++ b/tests/admin_views/test_adminsite.py
@@ -1,6 +1,6 @@
from django.contrib import admin
from django.contrib.admin.actions import delete_selected
-from django.contrib.auth.models import User
+from django.contrib.auth.models import Group, User
from django.test import SimpleTestCase, TestCase, override_settings
from django.test.client import RequestFactory
from django.urls import path, reverse
@@ -11,8 +11,18 @@ site = admin.AdminSite(name="test_adminsite")
site.register(User)
site.register(Article)
+
+class CustomAdminSite(admin.AdminSite):
+ site_title = "My title"
+ site_header = "My admin site"
+
+
+custom_site = CustomAdminSite(name="test_custom_adminsite")
+custom_site.register(Group)
+
urlpatterns = [
path("test_admin/admin/", site.urls),
+ path("test_custom_admin/admin/", custom_site.urls),
]
@@ -43,6 +53,13 @@ class SiteEachContextTest(TestCase):
self.assertEqual(ctx["site_url"], "/")
self.assertIs(ctx["has_permission"], True)
+ def test_admin_custom_headers(self):
+ request =
self.request_factory.get(reverse("test_custom_adminsite:index"))
+ request.user = self.u1
+ ctx = custom_site.each_context(request)
+ self.assertEqual(ctx["site_title"], "My title")
+ self.assertEqual(ctx["site_header"], "My admin site")
+
def test_each_context_site_url_with_script_name(self):
request = self.request_factory.get(
reverse("test_adminsite:index"), SCRIPT_NAME="/my-script-
name/"
}}}
For the future, extra test coverage doesn't require a ticket.
--
Ticket URL: <
https://code.djangoproject.com/ticket/35265#comment:3>
Django <
https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.