linter cleanup

This commit is contained in:
Kirill Markin 2024-12-17 14:41:42 +01:00
parent 0cba3592f2
commit 5f283feefd
No known key found for this signature in database
GPG key ID: 03AB9530E15B9C1C
9 changed files with 295 additions and 191 deletions

View file

@ -1,6 +1,10 @@
"""Test the utils module."""
import logging
import pytest
from typing import Generator
import io
import pytest
from repo_to_text.utils.utils import setup_logging
@pytest.fixture(autouse=True)
@ -20,7 +24,7 @@ def test_setup_logging_debug() -> None:
root_logger = logging.getLogger()
root_logger.handlers.clear() # Clear existing handlers
root_logger.setLevel(logging.WARNING) # Reset to default
setup_logging(debug=True)
assert len(root_logger.handlers) > 0
assert root_logger.level == logging.DEBUG
@ -30,7 +34,7 @@ def test_setup_logging_info() -> None:
root_logger = logging.getLogger()
root_logger.handlers.clear() # Clear existing handlers
root_logger.setLevel(logging.WARNING) # Reset to default
setup_logging(debug=False)
assert len(root_logger.handlers) > 0
assert root_logger.level == logging.INFO
@ -40,14 +44,14 @@ def test_setup_logging_formatter() -> None:
setup_logging(debug=True)
logger = logging.getLogger()
handlers = logger.handlers
# Check if there's at least one handler
assert len(handlers) > 0
# Check formatter
formatter = handlers[0].formatter
assert formatter is not None
# Test format string
test_record = logging.LogRecord(
name='test',
@ -66,26 +70,27 @@ def test_setup_logging_multiple_calls() -> None:
"""Test that multiple calls to setup_logging don't create duplicate handlers."""
root_logger = logging.getLogger()
root_logger.handlers.clear()
setup_logging(debug=True)
initial_handler_count = len(root_logger.handlers)
# Call setup_logging again
setup_logging(debug=True)
assert len(root_logger.handlers) == initial_handler_count, "Should not create duplicate handlers"
assert len(root_logger.handlers) == \
initial_handler_count, "Should not create duplicate handlers"
def test_setup_logging_level_change() -> None:
"""Test changing log levels between setup_logging calls."""
root_logger = logging.getLogger()
root_logger.handlers.clear()
# Start with debug
setup_logging(debug=True)
assert root_logger.level == logging.DEBUG
# Clear handlers before next setup
root_logger.handlers.clear()
# Switch to info
setup_logging(debug=False)
assert root_logger.level == logging.INFO
@ -94,24 +99,25 @@ def test_setup_logging_message_format() -> None:
"""Test the actual format of logged messages."""
setup_logging(debug=True)
logger = logging.getLogger()
# Create a temporary handler to capture output
import io
log_capture = io.StringIO()
handler = logging.StreamHandler(log_capture)
# Use formatter that includes pathname
handler.setFormatter(logging.Formatter('%(levelname)s %(name)s:%(pathname)s:%(lineno)d %(message)s'))
handler.setFormatter(
logging.Formatter('%(levelname)s %(name)s:%(pathname)s:%(lineno)d %(message)s')
)
logger.addHandler(handler)
# Ensure debug level is set
logger.setLevel(logging.DEBUG)
handler.setLevel(logging.DEBUG)
# Log a test message
test_message = "Test log message"
logger.debug(test_message)
log_output = log_capture.getvalue()
# Verify format components
assert test_message in log_output
assert "DEBUG" in log_output
@ -121,22 +127,21 @@ def test_setup_logging_error_messages() -> None:
"""Test logging of error messages."""
setup_logging(debug=False)
logger = logging.getLogger()
# Create a temporary handler to capture output
import io
log_capture = io.StringIO()
handler = logging.StreamHandler(log_capture)
handler.setFormatter(logger.handlers[0].formatter)
logger.addHandler(handler)
# Log an error message
error_message = "Test error message"
logger.error(error_message)
log_output = log_capture.getvalue()
# Error messages should always be logged regardless of debug setting
assert error_message in log_output
assert "ERROR" in log_output
if __name__ == "__main__":
pytest.main([__file__])
pytest.main([__file__])