"""日志器边界情况测试."""
import pytest
import logging
from pathlib import Path
from src.logger import setup_logger
class TestLoggerEdgeCases:
"""日志器边界情况测试类."""
def test_setup_logger_with_custom_name(self):
"""测试使用自定义名称设置日志器."""
logger = setup_logger("custom_logger")
assert logger is not None
assert logger.name == "custom_logger"
def test_setup_logger_multiple_times(self):
"""测试多次设置日志器."""
logger1 = setup_logger("test_logger")
logger2 = setup_logger("test_logger")
# 应该返回同一个日志器实例
assert logger1 is logger2
def test_get_logger_without_setup(self):
"""测试未设置时获取日志器."""
# 直接使用 setup_logger,它会返回日志器
logger = setup_logger("default_logger")
assert logger is not None
assert isinstance(logger, logging.Logger)
def test_logger_logging_levels(self):
"""测试不同日志级别."""
logger = setup_logger("test_levels", level=logging.DEBUG)
# 测试不同级别的日志
logger.debug("Debug message")
logger.info("Info message")
logger.warning("Warning message")
logger.error("Error message")
logger.critical("Critical message")
# 验证日志级别设置正确
assert logger.level <= logging.DEBUG
def test_logger_with_exception(self):
"""测试记录异常."""
logger = setup_logger("test_exception")
try:
raise ValueError("Test exception")
except Exception as e:
logger.exception("Exception occurred", exc_info=True)
assert logger is not None