diff options
author | Henk Kahlfuß <kahlfuss@descript.de> | 2018-05-26 15:00:16 +0200 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2018-06-15 10:31:08 -0400 |
commit | 3eb9127678e292ef2645b632199f3e9c876ad999 (patch) | |
tree | 2445fa30c705542906a0d14b4b61689eba3471b4 /tests/modeladmin | |
parent | ec2c9c353113bb1db6e32ed3f0b6c28bc06ca2eb (diff) | |
download | django-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.py | 23 |
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): |