Skip to content

Commit 979e5b6

Browse files
committed
test: added negative case for cascade delete permission
1 parent 5242e19 commit 979e5b6

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

tests/test_project/tests/test_admin.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,25 @@ def test_readonlyadmin_has_delete_permission(self):
152152
).wsgi_request
153153
request.resolver_match = None
154154
self.assertTrue(modeladmin.has_delete_permission(request))
155+
156+
with self.subTest("cascade delete without child permission returns False"):
157+
request = self.client.get(
158+
reverse("admin:test_project_radiusaccounting_changelist")
159+
).wsgi_request
160+
161+
mock_resolver = MagicMock()
162+
mock_resolver.url_name = "index"
163+
request.resolver_match = mock_resolver
164+
165+
# Mock a staff user who lacks the specific delete permission
166+
request.user = MagicMock()
167+
request.user.is_active = True
168+
request.user.is_staff = True
169+
request.user.is_superuser = False
170+
request.user.has_perm.return_value = False # Explicitly deny perm
171+
172+
# It should fall back to super().has_delete_permission and return False
173+
self.assertFalse(modeladmin.has_delete_permission(request))
155174

156175
def test_context_processor(self):
157176
url = reverse("admin:index")

0 commit comments

Comments
 (0)