summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorBecky Smith <rebkwok@gmail.com>2017-03-30 10:13:15 +0100
committerTim Graham <timograham@gmail.com>2018-02-24 20:41:43 -0500
commit8116e588dbdd17171a322da589b691bdf01f7041 (patch)
treec46f319b831339ec9ee665e850f89bc3f3a169e0 /tests/admin_views
parent9822d88ca0dd855a668f9c33447aeac45a9768ac (diff)
Fixed #17962 -- Added ModelAdmin.get_deleted_objects().
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/customadmin.py6
-rw-r--r--tests/admin_views/test_actions.py14
-rw-r--r--tests/admin_views/tests.py7
3 files changed, 26 insertions, 1 deletions
diff --git a/tests/admin_views/customadmin.py b/tests/admin_views/customadmin.py
index 5ee8c0c159..9331918b37 100644
--- a/tests/admin_views/customadmin.py
+++ b/tests/admin_views/customadmin.py
@@ -46,9 +46,15 @@ class CustomPwdTemplateUserAdmin(UserAdmin):
change_user_password_template = ['admin/auth/user/change_password.html'] # a list, to test fix for #18697
+class BookAdmin(admin.ModelAdmin):
+ def get_deleted_objects(self, objs, request):
+ return ['a deletable object'], {'books': 1}, set(), []
+
+
site = Admin2(name="admin2")
site.register(models.Article, base_admin.ArticleAdmin)
+site.register(models.Book, BookAdmin)
site.register(models.Section, inlines=[base_admin.ArticleInline], search_fields=['name'])
site.register(models.Thing, base_admin.ThingAdmin)
site.register(models.Fabric, base_admin.FabricAdmin)
diff --git a/tests/admin_views/test_actions.py b/tests/admin_views/test_actions.py
index 4823316e3e..423c2f927f 100644
--- a/tests/admin_views/test_actions.py
+++ b/tests/admin_views/test_actions.py
@@ -12,7 +12,7 @@ from django.urls import reverse
from .admin import SubscriberAdmin
from .forms import MediaActionForm
from .models import (
- Actor, Answer, ExternalSubscriber, Question, Subscriber,
+ Actor, Answer, Book, ExternalSubscriber, Question, Subscriber,
UnchangeableObject,
)
@@ -153,6 +153,18 @@ class AdminActionsTest(TestCase):
self.assertIs(SubscriberAdmin.overridden, True)
self.assertEqual(Subscriber.objects.all().count(), 0)
+ def test_delete_selected_uses_get_deleted_objects(self):
+ """The delete_selected action uses ModelAdmin.get_deleted_objects()."""
+ book = Book.objects.create(name='Test Book')
+ data = {
+ ACTION_CHECKBOX_NAME: [book.pk],
+ 'action': 'delete_selected',
+ 'index': 0,
+ }
+ response = self.client.post(reverse('admin2:admin_views_book_changelist'), data)
+ # BookAdmin.get_deleted_objects() returns custom text.
+ self.assertContains(response, 'a deletable object')
+
def test_custom_function_mail_action(self):
"""A custom action may be defined in a function."""
action_data = {
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 011bb2897a..3985e16b47 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -2357,6 +2357,13 @@ class AdminViewDeletedObjectsTest(TestCase):
response = self.client.get(reverse('admin:admin_views_bookmark_delete', args=(bookmark.pk,)))
self.assertContains(response, should_contain)
+ def test_delete_view_uses_get_deleted_objects(self):
+ """The delete view uses ModelAdmin.get_deleted_objects()."""
+ book = Book.objects.create(name='Test Book')
+ response = self.client.get(reverse('admin2:admin_views_book_delete', args=(book.pk,)))
+ # BookAdmin.get_deleted_objects() returns custom text.
+ self.assertContains(response, 'a deletable object')
+
@override_settings(ROOT_URLCONF='admin_views.urls')
class TestGenericRelations(TestCase):