Spaces:
Running
Running
| """Tests for safe default logging in :mod:`api.runtime`.""" | |
| import importlib | |
| import logging | |
| from unittest.mock import MagicMock, patch | |
| import pytest | |
| from tests.api.test_app_lifespan_and_errors import _app_settings | |
| async def test_messaging_start_failure_default_logs_exclude_traceback(caplog): | |
| api_runtime_mod = importlib.import_module("api.runtime") | |
| settings = _app_settings( | |
| messaging_platform="telegram", | |
| telegram_bot_token="t", | |
| allowed_telegram_user_id="1", | |
| discord_bot_token=None, | |
| allowed_discord_channels=None, | |
| allowed_dir="", | |
| claude_workspace="./agent_workspace", | |
| host="127.0.0.1", | |
| port=8082, | |
| log_api_error_tracebacks=False, | |
| ) | |
| runtime = api_runtime_mod.AppRuntime(app=MagicMock(), settings=settings) | |
| with ( | |
| patch( | |
| "messaging.platforms.factory.create_messaging_platform", | |
| side_effect=RuntimeError("SECRET_RUNTIME_DETAIL"), | |
| ), | |
| caplog.at_level(logging.ERROR), | |
| ): | |
| await runtime._start_messaging_if_configured() | |
| blob = " | ".join(r.getMessage() for r in caplog.records) | |
| assert "SECRET_RUNTIME_DETAIL" not in blob | |
| assert "exc_type=RuntimeError" in blob | |
| async def test_best_effort_default_logs_exclude_exception_text(caplog): | |
| api_runtime_mod = importlib.import_module("api.runtime") | |
| async def boom(): | |
| raise ValueError("SECRET_SHUTDOWN") | |
| with caplog.at_level(logging.WARNING): | |
| await api_runtime_mod.best_effort("test_step", boom(), log_verbose_errors=False) | |
| blob = " | ".join(r.getMessage() for r in caplog.records) | |
| assert "SECRET_SHUTDOWN" not in blob | |
| assert "exc_type=ValueError" in blob | |
| async def test_best_effort_verbose_includes_exception_text(caplog): | |
| api_runtime_mod = importlib.import_module("api.runtime") | |
| async def boom(): | |
| raise ValueError("VISIBLE_SHUTDOWN") | |
| with caplog.at_level(logging.WARNING): | |
| await api_runtime_mod.best_effort("test_step", boom(), log_verbose_errors=True) | |
| blob = " | ".join(r.getMessage() for r in caplog.records) | |
| assert "VISIBLE_SHUTDOWN" in blob | |