free-claude-code/tests/api/test_runtime_safe_logging.py
Alishahryar1 ac2c37f613
Some checks are pending
CI / checks (push) Waiting to run
Use canonical FCC server log path
2026-05-16 11:51:45 -07:00

69 lines
2.2 KiB
Python

"""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
@pytest.mark.asyncio
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
@pytest.mark.asyncio
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
@pytest.mark.asyncio
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