mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #23869 -- Made ModelAdmin.get_deleted_objects() use has_delete_permission() for permissions checking.
This commit is contained in:
@@ -669,13 +669,34 @@ class ModelAdminTests(TestCase):
|
||||
def test_get_deleted_objects(self):
|
||||
mock_request = MockRequest()
|
||||
mock_request.user = User.objects.create_superuser(username='bob', email='bob@test.com', password='test')
|
||||
ma = ModelAdmin(Band, self.site)
|
||||
self.site.register(Band, ModelAdmin)
|
||||
ma = self.site._registry[Band]
|
||||
deletable_objects, model_count, perms_needed, protected = ma.get_deleted_objects([self.band], request)
|
||||
self.assertEqual(deletable_objects, ['Band: The Doors'])
|
||||
self.assertEqual(model_count, {'bands': 1})
|
||||
self.assertEqual(perms_needed, set())
|
||||
self.assertEqual(protected, [])
|
||||
|
||||
def test_get_deleted_objects_with_custom_has_delete_permission(self):
|
||||
"""
|
||||
ModelAdmin.get_deleted_objects() uses ModelAdmin.has_delete_permission()
|
||||
for permissions checking.
|
||||
"""
|
||||
mock_request = MockRequest()
|
||||
mock_request.user = User.objects.create_superuser(username='bob', email='bob@test.com', password='test')
|
||||
|
||||
class TestModelAdmin(ModelAdmin):
|
||||
def has_delete_permission(self, request, obj=None):
|
||||
return False
|
||||
|
||||
self.site.register(Band, TestModelAdmin)
|
||||
ma = self.site._registry[Band]
|
||||
deletable_objects, model_count, perms_needed, protected = ma.get_deleted_objects([self.band], request)
|
||||
self.assertEqual(deletable_objects, ['Band: The Doors'])
|
||||
self.assertEqual(model_count, {'bands': 1})
|
||||
self.assertEqual(perms_needed, {'band'})
|
||||
self.assertEqual(protected, [])
|
||||
|
||||
|
||||
class ModelAdminPermissionTests(SimpleTestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user