def handle(self, *args, **kw): wait = getattr(settings, 'DELAYED_MAILER_WAIT', None) if wait is None: print 'No DELAYED_MAILER_WAIT setting, using value of 2 seconds.' else: print ('DELAYED_MAILER_WAIT setting being changed temporarily ' 'to 2 seconds from %s seconds.' % wait) settings.DELAYED_MAILER_WAIT = 2 self.record = Record() self.record.levelname = logging.DEBUG self.record.request = RequestFactory().get('/') self.record.msg = 'This error should have occured 2x' self.record.exc_info = zero_error() for x in xrange(2): self.handler = DelayedEmailHandler() self.handler.emit(self.record) self.record.msg = 'This error should occur 1x' self.record.exc_info = attribute_error() self.handler = DelayedEmailHandler() self.handler.emit(self.record) print 'You should have 2 emails for 3 errors.'
class Command(BaseCommand): help = ('Simulate using the delayed mailer so you can check queues ' 'caches and so on are set up correctly.') def handle(self, *args, **kw): wait = getattr(settings, 'DELAYED_MAILER_WAIT', None) if wait is None: print 'No DELAYED_MAILER_WAIT setting, using value of 2 seconds.' else: print ('DELAYED_MAILER_WAIT setting being changed temporarily ' 'to 2 seconds from %s seconds.' % wait) settings.DELAYED_MAILER_WAIT = 2 self.record = Record() self.record.levelname = logging.DEBUG self.record.request = RequestFactory().get('/') self.record.msg = 'This error should have occured 2x' self.record.exc_info = zero_error() for x in xrange(2): self.handler = DelayedEmailHandler() self.handler.emit(self.record) self.record.msg = 'This error should occur 1x' self.record.exc_info = attribute_error() self.handler = DelayedEmailHandler() self.handler.emit(self.record) print 'You should have 2 emails for 3 errors.'
def setUp(self): cache.clear() mail.outbox = [] self.record = Record() self.record.levelname = logging.DEBUG self.record.request = RequestFactory().get('/') self.record.msg = 'oops' self.record.exc_info = zero_error() self.handler = DelayedEmailHandler()
class TestDelayedMailer(unittest.TestCase): def setUp(self): cache.clear() mail.outbox = [] self.record = Record() self.record.levelname = logging.DEBUG self.record.request = RequestFactory().get('/') self.record.msg = 'oops' self.record.exc_info = zero_error() self.handler = DelayedEmailHandler() def test_group_same(self, celery): args = [ self.record.levelname, self.record.exc_info[0], self.record.exc_info[1] ] gr1 = Group.find_group(*args) gr2 = Group.find_group(*args) assert gr1.hash == gr2.hash @mock.patch('delayed_mailer.log.Group.send') def test_single_emit(self, celery, send): self.handler.emit(self.record) assert send.called def test_single_delayed(self, celery): self.handler.emit(self.record) assert 'countdown' in celery.call_args[1] def test_count(self, celery): self.handler.emit(self.record) self.handler.emit(self.record) assert len(mail.outbox) == 0 assert self.handler._group.count() == 2 def test_reset(self, celery): self.handler.emit(self.record) self.handler._group.send() assert self.handler._group.count() == 0 def test_mail_count(self, celery): self.handler.emit(self.record) self.handler._group.send() assert 'Error occurred:' not in mail.outbox[0].body def test_mail_count_multiple(self, celery): self.handler.emit(self.record) self.handler.emit(self.record) assert self.handler._group.count() == 2 self.handler._group.send() assert len(mail.outbox) == 1 assert 'Error occurred: 2' in mail.outbox[0].body
class TestDelayedMailer(unittest.TestCase): def setUp(self): cache.clear() mail.outbox = [] self.record = Record() self.record.levelname = logging.DEBUG self.record.request = RequestFactory().get('/') self.record.msg = 'oops' self.record.exc_info = zero_error() self.handler = DelayedEmailHandler() def test_group_same(self, celery): args = [self.record.levelname, self.record.exc_info[0], self.record.exc_info[1]] gr1 = Group.find_group(*args) gr2 = Group.find_group(*args) assert gr1.hash == gr2.hash @mock.patch('delayed_mailer.log.Group.send') def test_single_emit(self, celery, send): self.handler.emit(self.record) assert send.called def test_single_delayed(self, celery): self.handler.emit(self.record) assert 'countdown' in celery.call_args[1] def test_count(self, celery): self.handler.emit(self.record) self.handler.emit(self.record) assert len(mail.outbox) == 0 assert self.handler._group.count() == 2 def test_reset(self, celery): self.handler.emit(self.record) self.handler._group.send() assert self.handler._group.count() == 0 def test_mail_count(self, celery): self.handler.emit(self.record) self.handler._group.send() assert 'Error occurred:' not in mail.outbox[0].body def test_mail_count_multiple(self, celery): self.handler.emit(self.record) self.handler.emit(self.record) assert self.handler._group.count() == 2 self.handler._group.send() assert len(mail.outbox) == 1 assert 'Error occurred: 2' in mail.outbox[0].body