summaryrefslogtreecommitdiff
path: root/tests/regressiontests/admin_views
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2010-11-21 19:00:40 +0000
committerAlex Gaynor <alex.gaynor@gmail.com>2010-11-21 19:00:40 +0000
commit274aba3b9b8c48012a2d842790cb3df04dc9ae80 (patch)
treec7986494f0b0e22060f6c53644fb9e352a72aafe /tests/regressiontests/admin_views
parent0cf1c96d062f64275c5babc7687b301f0bfa3bc6 (diff)
Fixed #11108 -- added ModelAdmin.delete_model, a hook with which to perform custom pre-post delete behavior. Thanks to Florian Apolloner for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14673 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/admin_views')
-rw-r--r--tests/regressiontests/admin_views/models.py19
-rw-r--r--tests/regressiontests/admin_views/tests.py7
2 files changed, 24 insertions, 2 deletions
diff --git a/tests/regressiontests/admin_views/models.py b/tests/regressiontests/admin_views/models.py
index b25a9b9a96..ee0f5d51a1 100644
--- a/tests/regressiontests/admin_views/models.py
+++ b/tests/regressiontests/admin_views/models.py
@@ -107,6 +107,25 @@ class ArticleAdmin(admin.ModelAdmin):
modeladmin_year.admin_order_field = 'date'
modeladmin_year.short_description = None
+ def delete_model(self, request, obj):
+ EmailMessage(
+ 'Greetings from a deleted object',
+ 'I hereby inform you that some user deleted me',
+ 'from@example.com',
+ ['to@example.com']
+ ).send()
+ return super(ArticleAdmin, self).delete_model(request, obj)
+
+ def save_model(self, request, obj, form, change=True):
+ EmailMessage(
+ 'Greetings from a created object',
+ 'I hereby inform you that some user created me',
+ 'from@example.com',
+ ['to@example.com']
+ ).send()
+ return super(ArticleAdmin, self).save_model(request, obj, form, change)
+
+
class CustomArticle(models.Model):
content = models.TextField()
date = models.DateTimeField()
diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py
index 4c96306332..a3fe34f0bf 100644
--- a/tests/regressiontests/admin_views/tests.py
+++ b/tests/regressiontests/admin_views/tests.py
@@ -3,6 +3,7 @@
import re
import datetime
from django.conf import settings
+from django.core import mail
from django.core.files import temp as tempfile
from django.contrib.auth import admin # Register auth models with the admin.
from django.contrib.auth.models import User, Permission, UNUSABLE_PASSWORD
@@ -540,6 +541,8 @@ class AdminViewPermissionsTest(TestCase):
post = self.client.post('/test_admin/admin/admin_views/article/add/', add_dict)
self.assertRedirects(post, '/test_admin/admin/')
self.failUnlessEqual(Article.objects.all().count(), 4)
+ self.assertEquals(len(mail.outbox), 1)
+ self.assertEquals(mail.outbox[0].subject, 'Greetings from a created object')
self.client.get('/test_admin/admin/logout/')
# Super can add too, but is redirected to the change list view
@@ -695,6 +698,8 @@ class AdminViewPermissionsTest(TestCase):
post = self.client.post('/test_admin/admin/admin_views/article/1/delete/', delete_dict)
self.assertRedirects(post, '/test_admin/admin/')
self.failUnlessEqual(Article.objects.all().count(), 2)
+ self.assertEquals(len(mail.outbox), 1)
+ self.assertEquals(mail.outbox[0].subject, 'Greetings from a deleted object')
article_ct = ContentType.objects.get_for_model(Article)
logged = LogEntry.objects.get(content_type=article_ct, action_flag=DELETION)
self.failUnlessEqual(logged.object_id, u'1')
@@ -1440,8 +1445,6 @@ class AdminInheritedInlinesTest(TestCase):
self.failUnlessEqual(BarAccount.objects.all()[0].username, "%s-1" % bar_user)
self.failUnlessEqual(Persona.objects.all()[0].accounts.count(), 2)
-from django.core import mail
-
class AdminActionsTest(TestCase):
fixtures = ['admin-views-users.xml', 'admin-views-actions.xml']