| 118 | |
| 119 | |
| 120 | class AdminEmailHandlerTest(TestCase): |
| 121 | def test_accepts_args(self): |
| 122 | from django.conf import settings |
| 123 | from django.core import mail |
| 124 | from django.utils.log import getLogger, logging |
| 125 | |
| 126 | old_admins = settings.ADMINS |
| 127 | settings.ADMINS = (('whatever admin', 'admin@example.com'),) |
| 128 | |
| 129 | message = "this is my message, and it says '%s'" |
| 130 | token = 'token' |
| 131 | |
| 132 | logger = getLogger('django.request') |
| 133 | # taken from regressiontests/views/views.py: send_log |
| 134 | # ensuring the AdminEmailHandler does not get filtered out |
| 135 | # even with DEBUG=True. |
| 136 | admin_email_handler = [ |
| 137 | h for h in logger.handlers |
| 138 | if h.__class__.__name__ == "AdminEmailHandler" |
| 139 | ][0] |
| 140 | orig_filters = admin_email_handler.filters |
| 141 | admin_email_handler.filters = [] |
| 142 | |
| 143 | logger.error(message, token) |
| 144 | |
| 145 | self.assertEqual(len(mail.outbox), 1) |
| 146 | self.assertTrue('token' in mail.outbox[0].subject, |
| 147 | "Subject should contain the token") |
| 148 | |
| 149 | admin_email_handler.filters = orig_filters |
| 150 | settings.ADMINS = old_admin |