예제 #1
0
    def test_queue_debug(self):
        out = StringIO()
        name = '%s.test_queue_debug' % self.__class__.__name__
        logger = logging.getLogger(name)
        logger.setLevel(logging.DEBUG)
        handler =  ConfigureOutputHandler(out, out, maxlen=3)
        handler.setFormatter(logging.Formatter('%(levelname)s:%(message)s'))
        logger.addHandler(handler)

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.info('yes')
            logger.info('qux')

        self.assertEqual(
            out.getvalue(),
            'checking bar... yes\n'
            'qux\n'
        )

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.info('no')
            logger.error('fail')

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:do foo\n'
            'ERROR:fail\n'
        )

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.debug('do bar')
            logger.debug('do baz')
            logger.info('no')
            logger.error('fail')

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:do foo\n'
            'DEBUG:do bar\n'
            'DEBUG:do baz\n'
            'ERROR:fail\n'
        )

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.debug('do bar')
            logger.debug('do baz')
            logger.debug('do qux')
            logger.debug('do hoge')
            logger.info('no')
            logger.error('fail')

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:<truncated - see config.log for full output>\n'
            'DEBUG:do baz\n'
            'DEBUG:do qux\n'
            'DEBUG:do hoge\n'
            'ERROR:fail\n'
        )
예제 #2
0
    def test_queue_debug(self):
        out = StringIO()
        name = '%s.test_queue_debug' % self.__class__.__name__
        logger = logging.getLogger(name)
        logger.setLevel(logging.DEBUG)
        handler = ConfigureOutputHandler(out, out, maxlen=3)
        handler.setFormatter(logging.Formatter('%(levelname)s:%(message)s'))
        logger.addHandler(handler)

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.info('yes')
            logger.info('qux')

        self.assertEqual(
            out.getvalue(),
            'checking bar... yes\n'
            'qux\n'
        )

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.info('no')
            logger.error('fail')

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:do foo\n'
            'ERROR:fail\n'
        )

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.debug('do bar')
            logger.debug('do baz')
            logger.info('no')
            logger.error('fail')

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:do foo\n'
            'DEBUG:do bar\n'
            'DEBUG:do baz\n'
            'ERROR:fail\n'
        )

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('checking bar... ')
            logger.debug('do foo')
            logger.debug('do bar')
            logger.debug('do baz')
            logger.debug('do qux')
            logger.debug('do hoge')
            logger.info('no')
            logger.error('fail')

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:<truncated - see config.log for full output>\n'
            'DEBUG:do baz\n'
            'DEBUG:do qux\n'
            'DEBUG:do hoge\n'
            'ERROR:fail\n'
        )

        out.seek(0)
        out.truncate()

        try:
            with handler.queue_debug():
                logger.info('checking bar... ')
                logger.debug('do foo')
                logger.debug('do bar')
                logger.info('no')
                e = Exception('fail')
                raise e
        except Exception as caught:
            self.assertIs(caught, e)

        self.assertEqual(
            out.getvalue(),
            'checking bar... no\n'
            'DEBUG:do foo\n'
            'DEBUG:do bar\n'
        )
예제 #3
0
    def test_queue_debug_reentrant(self):
        out = StringIO()
        name = '%s.test_queue_debug_reentrant' % self.__class__.__name__
        logger = logging.getLogger(name)
        logger.setLevel(logging.DEBUG)
        handler = ConfigureOutputHandler(out, out, maxlen=10)
        handler.setFormatter(logging.Formatter('%(levelname)s| %(message)s'))
        logger.addHandler(handler)

        try:
            with handler.queue_debug():
                logger.info('outer info')
                logger.debug('outer debug')
                with handler.queue_debug():
                    logger.info('inner info')
                    logger.debug('inner debug')
                    e = Exception('inner exception')
                    raise e
        except Exception as caught:
            self.assertIs(caught, e)

        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n')

        out.seek(0)
        out.truncate()

        try:
            with handler.queue_debug():
                logger.info('outer info')
                logger.debug('outer debug')
                with handler.queue_debug():
                    logger.info('inner info')
                    logger.debug('inner debug')
                e = Exception('outer exception')
                raise e
        except Exception as caught:
            self.assertIs(caught, e)

        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n')

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('outer info')
            logger.debug('outer debug')
            with handler.queue_debug():
                logger.info('inner info')
                logger.debug('inner debug')
                logger.error('inner error')
        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n'
                         'ERROR| inner error\n')

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('outer info')
            logger.debug('outer debug')
            with handler.queue_debug():
                logger.info('inner info')
                logger.debug('inner debug')
            logger.error('outer error')
        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n'
                         'ERROR| outer error\n')
예제 #4
0
    def test_queue_debug_reentrant(self):
        out = StringIO()
        name = '%s.test_queue_debug_reentrant' % self.__class__.__name__
        logger = logging.getLogger(name)
        logger.setLevel(logging.DEBUG)
        handler =  ConfigureOutputHandler(out, out, maxlen=10)
        handler.setFormatter(logging.Formatter('%(levelname)s| %(message)s'))
        logger.addHandler(handler)

        try:
            with handler.queue_debug():
                logger.info('outer info')
                logger.debug('outer debug')
                with handler.queue_debug():
                    logger.info('inner info')
                    logger.debug('inner debug')
                    e = Exception('inner exception')
                    raise e
        except Exception as caught:
            self.assertIs(caught, e)

        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n')

        out.seek(0)
        out.truncate()

        try:
            with handler.queue_debug():
                logger.info('outer info')
                logger.debug('outer debug')
                with handler.queue_debug():
                    logger.info('inner info')
                    logger.debug('inner debug')
                e = Exception('outer exception')
                raise e
        except Exception as caught:
            self.assertIs(caught, e)

        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n')

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('outer info')
            logger.debug('outer debug')
            with handler.queue_debug():
                logger.info('inner info')
                logger.debug('inner debug')
                logger.error('inner error')
        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n'
                         'ERROR| inner error\n')

        out.seek(0)
        out.truncate()

        with handler.queue_debug():
            logger.info('outer info')
            logger.debug('outer debug')
            with handler.queue_debug():
                logger.info('inner info')
                logger.debug('inner debug')
            logger.error('outer error')
        self.assertEqual(out.getvalue(),
                         'outer info\n'
                         'inner info\n'
                         'DEBUG| outer debug\n'
                         'DEBUG| inner debug\n'
                         'ERROR| outer error\n')