diff options
| author | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2026-05-20 12:47:02 +0200 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-05-20 08:04:44 -0400 |
| commit | 8fd29079ed1253f0cd88ccf330de30271a5d15e4 (patch) | |
| tree | 49603e8dffe0f0edf1d9f03426a612905d0a8786 /tests | |
| parent | 7c125f6a6660a70a0568448b2e40db273a456479 (diff) | |
Refs #12090 -- Aligned admin change form and list minimum permission to run action.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/admin_views/test_actions.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/tests/admin_views/test_actions.py b/tests/admin_views/test_actions.py index b723f76914..dbed3a33b6 100644 --- a/tests/admin_views/test_actions.py +++ b/tests/admin_views/test_actions.py @@ -514,7 +514,10 @@ class AdminActionsTest(TestCase): self.assertIn(r""obj\\"", output) -@override_settings(ROOT_URLCONF="admin_views.urls") +@override_settings( + ROOT_URLCONF="admin_views.urls", + MAILERS={"default": {"BACKEND": "django.core.mail.backends.locmem.EmailBackend"}}, +) class AdminActionsPermissionTests(TestCase): @classmethod def setUpTestData(cls): @@ -568,6 +571,32 @@ class AdminActionsPermissionTests(TestCase): ) self.assertEqual(response.status_code, 403) + def test_minimum_permission(self): + permission = Permission.objects.get(codename="view_externalsubscriber") + self.user.user_permissions.add(permission) + es = ExternalSubscriber.objects.create( + name="John Doe", email="john@example.org" + ) + + cl_url = reverse("admin:admin_views_externalsubscriber_changelist") + cl_post = {ACTION_CHECKBOX_NAME: [es.pk], "action": "external_mail"} + cf_url = reverse("admin:admin_views_externalsubscriber_change", args=[es.pk]) + cf_post = {ACTION_CHECKBOX_NAME: [es.pk], "CHANGE_FORM-action": "external_mail"} + + for url, post_data in [(cl_url, cl_post), (cf_url, cf_post)]: + mail.outbox = [] + with self.subTest(url=url): + response = self.client.get(url) + self.assertContains( + response, + '<option value="external_mail">' + "External mail (Another awesome action)</option>", + html=True, + ) + response = self.client.post(url, post_data) + self.assertEqual(len(mail.outbox), 1) + self.assertEqual(response.status_code, 302) + @override_settings( ROOT_URLCONF="admin_views.urls", |
