Merge lp:~ricardokirkner/django-adminaudit/no-empty-reports into lp:django-adminaudit

Proposed by Ricardo Kirkner
Status: Merged
Approved by: Ricardo Kirkner
Approved revision: 53
Merged at revision: 53
Proposed branch: lp:~ricardokirkner/django-adminaudit/no-empty-reports
Merge into: lp:django-adminaudit
Diff against target: 70 lines (+22/-10)
2 files modified
adminaudit/management/commands/adminaudit_email_report.py (+5/-0)
adminaudit/tests.py (+17/-10)
To merge this branch: bzr merge lp:~ricardokirkner/django-adminaudit/no-empty-reports
Reviewer Review Type Date Requested Status
Michael Nelson (community) Approve
Review via email: mp+200318@code.launchpad.net

Commit message

do not send out emails when no data has changed

To post a comment you must log in.
Revision history for this message
Michael Nelson (michael.nelson) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'adminaudit/management/commands/adminaudit_email_report.py'
2--- adminaudit/management/commands/adminaudit_email_report.py 2012-01-16 19:48:22 +0000
3+++ adminaudit/management/commands/adminaudit_email_report.py 2014-01-02 15:57:01 +0000
4@@ -27,8 +27,13 @@
5
6 if not recipients:
7 print "No admin audit summary recipients configured."
8+ return
9
10 context = self.context_data()
11+ if not context['users']:
12+ print "Nothing to report."
13+ return
14+
15 for recipient in recipients:
16 context['recipient'] = recipient
17 print "Sending e-email to", recipient,
18
19=== modified file 'adminaudit/tests.py'
20--- adminaudit/tests.py 2013-06-07 19:07:05 +0000
21+++ adminaudit/tests.py 2014-01-02 15:57:01 +0000
22@@ -254,7 +254,11 @@
23 class AdminAuditEmailReportTestCase(TestCase):
24
25 def setUp(self):
26- AuditLog.objects.all().delete()
27+ self.user = User.objects.create_user('user1', '1@example.com')
28+ self.auditlog = AuditLog.create(self.user, self.user, 'update',
29+ self.user)
30+ self.auditlog.created_at = self.auditlog.created_at - timedelta(days=1)
31+ self.auditlog.save()
32
33 def test_report_date_returns_yesterday(self):
34 report_date = EmailCommand().report_date()
35@@ -277,23 +281,26 @@
36
37 self.assertEquals(0, len(mail.outbox))
38
39+ def test_no_mails_are_sent_when_there_are_no_changs(self):
40+ recipients = ['{0}@example.com'.format(c) for c in 'abcdefghijk']
41+ settings.ADMINAUDIT_EMAILS_RECIPIENTS = recipients
42+
43+ AuditLog.objects.all().delete()
44+ EmailCommand().handle()
45+
46+ self.assertEquals(0, len(mail.outbox))
47+
48 def test_data_for_user(self):
49- user1 = User.objects.create_user('user1', '1@example.com')
50 user2 = User.objects.create_user('user2', '2@example.com')
51- AuditLog.create(user1, user1, 'update', user1)
52- AuditLog.create(user2, user1, 'update', user1)
53+ AuditLog.create(user2, self.user, 'update', self.user)
54
55- data = EmailCommand().data_for_user(user1.pk, AuditLog.objects.all())
56+ data = EmailCommand().data_for_user(self.user.pk,
57+ AuditLog.objects.all())
58
59 self.assertEquals(1, data['auditlogs'].count())
60 self.assertTrue('user1' in data['caption'])
61
62 def test_context_data(self):
63- user1 = User.objects.create_user('user1', '1@example.com')
64- auditlog = AuditLog.create(user1, user1, 'update', user1)
65- auditlog.created_at = auditlog.created_at - timedelta(days=1)
66- auditlog.save()
67-
68 context = EmailCommand().context_data()
69
70 self.assertEquals(1, len(context['users']))

Subscribers

People subscribed via source and target branches