tests/test_app_error_summaries.py
Rama main · réplica de lectura del repositorio original.
import pytest
from dm.app.errors import safe_error_summary
def test_safe_error_summary_redacts_exception_text():
message = safe_error_summary("加载数据", RuntimeError("postgres://user:secret@host/db"))
assert message == "加载数据失败(RuntimeError)"
assert "secret" not in message
def test_safe_error_summary_normalizes_operation_text():
assert safe_error_summary(" 模块\n渲染 ", ValueError("x")) == "模块 渲染失败(ValueError)"
def test_safe_error_summary_neutralizes_hidden_unicode_controls():
message = safe_error_summary("模块\u200d渲染\ud800", ValueError("x"))
assert message == "模块 渲染失败(ValueError)"
assert "\u200d" not in message
assert "\ud800" not in message
def test_safe_error_summary_rejects_empty_operation():
with pytest.raises(ValueError):
safe_error_summary(" ", RuntimeError())
with pytest.raises(ValueError):
safe_error_summary("\u200d\ud800", RuntimeError())