Spaces:
Running
Running
| """ | |
| Tests for logging configuration (backward compatibility tests). | |
| These tests verify the core logging functionality works correctly | |
| without using mocks - testing real behavior with Loguru. | |
| """ | |
| from pathlib import Path | |
| from loguru import logger | |
| class TestLoggingSetup: | |
| """Test logging setup functionality.""" | |
| def test_setup_logging_initializes_without_error(self): | |
| """Test logging setup runs without errors.""" | |
| from app.core.logging import setup_logging | |
| # Should not raise any exceptions | |
| setup_logging() | |
| def test_get_logger_returns_valid_logger(self): | |
| """Test get_logger function returns valid logger instance.""" | |
| from app.core.logging import get_logger | |
| test_logger = get_logger("test_module") | |
| # Should be a Loguru logger with standard methods | |
| assert test_logger is not None | |
| assert hasattr(test_logger, "info") | |
| assert hasattr(test_logger, "error") | |
| assert hasattr(test_logger, "warning") | |
| assert hasattr(test_logger, "debug") | |
| assert hasattr(test_logger, "bind") | |
| def test_get_logger_can_log_messages(self, tmp_path: Path): | |
| """Test logger can actually log messages.""" | |
| from app.core.logging import get_logger | |
| log_file = tmp_path / "test.log" | |
| logger.remove() | |
| logger.add(log_file, format="{message}", level="INFO") | |
| test_logger = get_logger("test_module") | |
| test_logger.info("Test log message") | |
| content = log_file.read_text() | |
| assert "Test log message" in content | |
| def test_request_logger_class_works(self, tmp_path: Path): | |
| """Test RequestLogger class functionality.""" | |
| from app.core.logging import RequestLogger | |
| log_file = tmp_path / "request.log" | |
| logger.remove() | |
| logger.add(log_file, format="{message}", level="INFO") | |
| req_logger = RequestLogger() | |
| # Test log_request | |
| req_logger.log_request("GET", "/api/test", "req-123") | |
| # Test log_response | |
| req_logger.log_response("req-123", 200, 45.6) | |
| # Test log_error | |
| req_logger.log_error("req-123", "Test error") | |
| content = log_file.read_text() | |
| assert "GET /api/test" in content | |
| assert "200" in content | |
| assert "Test error" in content | |
| def test_multiple_loggers_with_different_names(self): | |
| """Test creating multiple loggers with different names.""" | |
| from app.core.logging import get_logger | |
| logger1 = get_logger("module1") | |
| logger2 = get_logger("module2") | |
| assert logger1 is not None | |
| assert logger2 is not None | |
| # Both should be able to log | |
| logger1.info("Logger 1 message") | |
| logger2.info("Logger 2 message") | |