Pythonでログ出力された内容をテストする

pythonで、ある内容がログ出力されることをテストする場合どうするのが一般的なのか

調べてたらログハンドラをsetUpでStreamHandlerに差し替えてテストする方法を見つけたので、サンプルを書いて試してみました
以下のような感じです

# coding=utf-8
import unittest
import logging
from StringIO import StringIO

logger = logging.getLogger(__file__)

class SampleTest(unittest.TestCase):

    def setUp(self):
        self.original_logger = logger
        self.stream = StringIO()
        self.log_handler = logging.StreamHandler(self.stream)
        self.original_logger.setLevel(logging.INFO)
        for handler in self.original_logger.handlers:
            self.original_logger.removeHandler(handler)
        self.original_logger.addHandler(self.log_handler)

    def tearDown(self):
        self.original_logger.removeHandler(self.log_handler)
        self.log_handler.close()

    def test_logging_info(self):
        """loggingされる内容をテストする
        """

        logging_something()
        self.log_handler.flush()
        self.assertEquals(self.stream.getvalue().rstrip(), u'この味は!、、、 嘘をついている「味」だぜ、、、')

def logging_something():
    logger.info(u'この味は!、、、 嘘をついている「味」だぜ、、、')

stream.getvalue()で取り出した結果は改行コードが含まれているのでrstripで取り除いてます。


ただこの方法だと、warnとかinfoの区別できない。
やっぱloggerをmockにして確認するのがよいのかなぁ