| """Safe default logging tests for the application runtime owner.""" |
|
|
| import logging |
| from unittest.mock import patch |
|
|
| import pytest |
|
|
| from free_claude_code.config.settings import Settings |
| from free_claude_code.runtime.application import ApplicationRuntime, best_effort |
| from free_claude_code.runtime.provider_manager import ProviderRuntimeManager |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_messaging_start_failure_default_logs_exclude_traceback(caplog): |
| settings = Settings().model_copy( |
| update={ |
| "messaging_platform": "telegram", |
| "telegram_bot_token": "t", |
| "allowed_telegram_user_id": "1", |
| "log_api_error_tracebacks": False, |
| } |
| ) |
| runtime = ApplicationRuntime( |
| ProviderRuntimeManager(settings), |
| transcriber=None, |
| ) |
|
|
| with ( |
| patch( |
| "free_claude_code.runtime.application.messaging_platform_factory.create_messaging_components", |
| side_effect=RuntimeError("SECRET_RUNTIME_DETAIL"), |
| ), |
| caplog.at_level(logging.ERROR), |
| ): |
| await runtime._start_messaging_if_configured() |
|
|
| blob = " | ".join(record.getMessage() for record in caplog.records) |
| assert "SECRET_RUNTIME_DETAIL" not in blob |
| assert "exc_type=RuntimeError" in blob |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_best_effort_default_logs_exclude_exception_text(caplog): |
| async def boom(): |
| raise ValueError("SECRET_SHUTDOWN") |
|
|
| with caplog.at_level(logging.WARNING): |
| await best_effort("test_step", boom(), log_verbose_errors=False) |
|
|
| blob = " | ".join(record.getMessage() for record in caplog.records) |
| assert "SECRET_SHUTDOWN" not in blob |
| assert "exc_type=ValueError" in blob |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_best_effort_verbose_includes_exception_text(caplog): |
| async def boom(): |
| raise ValueError("VISIBLE_SHUTDOWN") |
|
|
| with caplog.at_level(logging.WARNING): |
| await best_effort("test_step", boom(), log_verbose_errors=True) |
|
|
| blob = " | ".join(record.getMessage() for record in caplog.records) |
| assert "VISIBLE_SHUTDOWN" in blob |
|
|