def test_on_timeout(self): class MockLogger(object): def __init__(self): self.warnings = [] self.errors = [] def warning(self, msg, *args, **kwargs): self.warnings.append(msg % args) def error(self, msg, *args, **kwargs): self.errors.append(msg % args) tw = TaskRequest(mytask.name, uuid(), [1], {"f": "x"}) tw.logger = MockLogger() tw.on_timeout(soft=True, timeout=1337) self.assertIn("Soft time limit (1337s) exceeded", tw.logger.warnings[0]) tw.on_timeout(soft=False, timeout=1337) self.assertIn("Hard time limit (1337s) exceeded", tw.logger.errors[0]) self.assertEqual(mytask.backend.get_status(tw.task_id), states.FAILURE) mytask.ignore_result = True try: tw = TaskRequest(mytask.name, uuid(), [1], {"f": "x"}) tw.logger = MockLogger() finally: tw.on_timeout(soft=True, timeout=1336) self.assertEqual(mytask.backend.get_status(tw.task_id), states.PENDING) mytask.ignore_result = False
def test_on_timeout(self): class MockLogger(object): def __init__(self): self.warnings = [] self.errors = [] def warning(self, msg, *args, **kwargs): self.warnings.append(msg % args) def error(self, msg, *args, **kwargs): self.errors.append(msg % args) tw = TaskRequest(mytask.name, uuid(), [1], {"f": "x"}) tw.logger = MockLogger() tw.on_timeout(soft=True, timeout=1337) self.assertIn("Soft time limit (1337s) exceeded", tw.logger.warnings[0]) tw.on_timeout(soft=False, timeout=1337) self.assertIn("Hard time limit (1337s) exceeded", tw.logger.errors[0]) self.assertEqual(mytask.backend.get_status(tw.id), states.FAILURE) mytask.ignore_result = True try: tw = TaskRequest(mytask.name, uuid(), [1], {"f": "x"}) tw.logger = MockLogger() finally: tw.on_timeout(soft=True, timeout=1336) self.assertEqual(mytask.backend.get_status(tw.id), states.PENDING) mytask.ignore_result = False
def test_on_timeout(self): class MockLogger(object): def __init__(self): self.warnings = [] self.errors = [] def warning(self, msg, *args, **kwargs): self.warnings.append(msg) def error(self, msg, *args, **kwargs): self.errors.append(msg) tw = TaskRequest(mytask.name, gen_unique_id(), [1], {"f": "x"}) tw.logger = MockLogger() tw.on_timeout(soft=True) self.assertIn("Soft time limit exceeded", tw.logger.warnings[0]) tw.on_timeout(soft=False) self.assertIn("Hard time limit exceeded", tw.logger.errors[0])
def _test_on_failure(self, exception): app = app_or_default() tid = uuid() tw = TaskRequest(mytask.name, tid, [4], {"f": "x"}) try: raise exception except Exception: exc_info = ExceptionInfo(sys.exc_info()) logfh = WhateverIO() tw.logger.handlers = [] tw.logger = app.log.setup_logger("INFO", logfh, root=False) app.conf.CELERY_SEND_TASK_ERROR_EMAILS = True tw.on_failure(exc_info) logvalue = logfh.getvalue() self.assertIn(mytask.name, logvalue) self.assertIn(tid, logvalue) self.assertIn("ERROR", logvalue) app.conf.CELERY_SEND_TASK_ERROR_EMAILS = False
def _test_on_failure(self, exception): tid = gen_unique_id() tw = TaskRequest(mytask.name, tid, [4], {"f": "x"}) try: raise exception except Exception: exc_info = ExceptionInfo(sys.exc_info()) logfh = StringIO() tw.logger.handlers = [] tw.logger = setup_logger(logfile=logfh, loglevel=logging.INFO) from celery import conf conf.CELERY_SEND_TASK_ERROR_EMAILS = True tw.on_failure(exc_info) logvalue = logfh.getvalue() self.assertIn(mytask.name, logvalue) self.assertIn(tid, logvalue) self.assertIn("ERROR", logvalue) conf.CELERY_SEND_TASK_ERROR_EMAILS = False
def _test_on_failure(self, exception): app = app_or_default() tid = uuid() tw = TaskRequest(mytask.name, tid, [4], {"f": "x"}) try: raise exception except Exception: exc_info = ExceptionInfo(sys.exc_info()) logfh = WhateverIO() tw.logger.handlers = [] tw.logger = setup_logger(logfile=logfh, loglevel=logging.INFO, root=False) app.conf.CELERY_SEND_TASK_ERROR_EMAILS = True tw.on_failure(exc_info) logvalue = logfh.getvalue() self.assertIn(mytask.name, logvalue) self.assertIn(tid, logvalue) self.assertIn("ERROR", logvalue) app.conf.CELERY_SEND_TASK_ERROR_EMAILS = False