diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2010-11-21 19:00:40 +0000 |
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2010-11-21 19:00:40 +0000 |
| commit | 274aba3b9b8c48012a2d842790cb3df04dc9ae80 (patch) | |
| tree | c7986494f0b0e22060f6c53644fb9e352a72aafe /tests/regressiontests/admin_views | |
| parent | 0cf1c96d062f64275c5babc7687b301f0bfa3bc6 (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.py | 19 | ||||
| -rw-r--r-- | tests/regressiontests/admin_views/tests.py | 7 |
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'] |
