79 lines
2.5 KiB
Python
79 lines
2.5 KiB
Python
import logging
|
|
from logging import handlers
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
from src.util.logger import Logger
|
|
|
|
|
|
class TestLogger:
|
|
|
|
def test_constructor_loglevel_test(self, caplog, monkeypatch):
|
|
"""
|
|
Cases:
|
|
ログレベルに対象外の文字列を指定した場合、デフォルトであるInfoが指定されること
|
|
Arranges:
|
|
- LOG_LEVELの変数を想定外の文字列に置き換える
|
|
- loggerインスタンスの生成
|
|
- ログ出力
|
|
Expects:
|
|
- 期待値通りのログが出力されること
|
|
- ログレベルがInfoで設定されていること
|
|
"""
|
|
|
|
# Arranges
|
|
monkeypatch.setattr('src.util.logger.LOG_LEVEL', "test")
|
|
|
|
sut = Logger()
|
|
logger = sut.get_logger()
|
|
logger.info('infoログ出力')
|
|
|
|
# Expects
|
|
assert ("root", logging.INFO, "infoログ出力") in caplog.record_tuples
|
|
assert logger.getEffectiveLevel() == logging.INFO
|
|
|
|
def test_constructor_hashandlers(self, monkeypatch):
|
|
"""
|
|
Cases:
|
|
生成したloggerインスタンスを利用し、期待値通りのログが出力されること
|
|
Arranges:
|
|
- `if not self.__logger.hasHandlers():`の分岐に入るようにモックを準備
|
|
- loggerインスタンスの生成
|
|
- ログ出力
|
|
Expects:
|
|
- loggerインスタンスに1件以上のハンドラーが存在すること
|
|
- loggerインスタンスにStreamHandlerが含まれていること
|
|
"""
|
|
|
|
# Arranges
|
|
def dummy_method(arg):
|
|
return False
|
|
|
|
monkeypatch.setattr("logging.Logger.hasHandlers", dummy_method)
|
|
|
|
sut = Logger()
|
|
logger = sut.get_logger()
|
|
logger.warning('warningログ出力')
|
|
|
|
# Expects
|
|
assert len(logger.handlers) >= 1
|
|
assert "StreamHandler" in str(logger.handlers)
|
|
|
|
def test_get_logger(self, caplog):
|
|
"""
|
|
Cases:
|
|
生成したloggerインスタンスを利用し、期待値通りのログが出力されること
|
|
Arranges:
|
|
- loggerインスタンスの生成
|
|
- ログ出力
|
|
Expects:
|
|
- 期待値通りのログが出力されること
|
|
"""
|
|
|
|
# Arranges
|
|
sut = Logger()
|
|
logger = sut.get_logger()
|
|
logger.warning('warningログ出力')
|
|
|
|
# Expects
|
|
assert ("root", logging.WARNING, "warningログ出力") in caplog.record_tuples
|