"""日志系统完整测试."""
import pytest
import logging
from unittest.mock import Mock, MagicMock, patch
from src.logger import setup_logger, default_logger
class TestLoggerComplete:
"""日志系统完整测试类."""
def test_setup_logger_default(self):
"""测试设置默认日志记录器."""
logger = setup_logger()
assert logger is not None
assert isinstance(logger, logging.Logger)
assert logger.name == "graphitiace"
def test_setup_logger_custom_name(self):
"""测试设置自定义名称的日志记录器."""
logger = setup_logger(name="test_logger")
assert logger is not None
assert isinstance(logger, logging.Logger)
assert logger.name == "test_logger"
def test_setup_logger_level(self):
"""测试设置日志级别."""
logger = setup_logger(level=logging.DEBUG)
assert logger is not None
assert logger.level == logging.DEBUG
def test_default_logger_exists(self):
"""测试默认日志记录器存在."""
assert default_logger is not None
assert isinstance(default_logger, logging.Logger)
def test_default_logger_name(self):
"""测试默认日志记录器名称."""
assert default_logger.name == "graphitiace"
def test_logger_handlers(self):
"""测试日志记录器处理器."""
logger = setup_logger()
assert len(logger.handlers) > 0
def test_logger_logging_levels(self):
"""测试日志记录器不同级别."""
logger = setup_logger()
# 测试不同级别的日志记录
logger.debug("Debug message")
logger.info("Info message")
logger.warning("Warning message")
logger.error("Error message")
logger.critical("Critical message")
# 验证日志记录器正常工作
assert logger.isEnabledFor(logging.DEBUG) or logger.level > logging.DEBUG
assert logger.isEnabledFor(logging.INFO) or logger.level > logging.INFO
def test_logger_file_handler(self):
"""测试日志文件处理器."""
import tempfile
import os
with tempfile.TemporaryDirectory() as temp_dir:
log_file = os.path.join(temp_dir, "test.log")
logger = setup_logger(name="file_logger")
# 验证日志记录器可以记录到文件
logger.info("Test log message")
# 验证日志文件可能被创建(取决于配置)
# 注意:这取决于实际的日志配置
def test_logger_exception_handling(self):
"""测试日志记录器异常处理."""
logger = setup_logger()
try:
# 尝试记录一个可能引发异常的消息
logger.info("Normal message")
logger.error("Error message", exc_info=True)
except Exception as e:
pytest.fail(f"日志记录器不应该抛出异常: {e}")