summaryrefslogtreecommitdiff
path: root/tests/modeladmin
diff options
context:
space:
mode:
authorHenk Kahlfuß <kahlfuss@descript.de>2018-05-26 15:00:16 +0200
committerTim Graham <timograham@gmail.com>2018-06-15 10:31:08 -0400
commit3eb9127678e292ef2645b632199f3e9c876ad999 (patch)
tree2445fa30c705542906a0d14b4b61689eba3471b4 /tests/modeladmin
parentec2c9c353113bb1db6e32ed3f0b6c28bc06ca2eb (diff)
downloaddjango-3eb9127678e292ef2645b632199f3e9c876ad999.tar.gz
Fixed #23869 -- Made ModelAdmin.get_deleted_objects() use has_delete_permission() for permissions checking.
Diffstat (limited to 'tests/modeladmin')
-rw-r--r--tests/modeladmin/tests.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py
index 03fd5ef2be..de216cbb11 100644
--- a/tests/modeladmin/tests.py
+++ b/tests/modeladmin/tests.py
@@ -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):