diff options
| author | historia <historiavg@proton.me> | 2026-08-28 13:51:01 -0400 |
|---|---|---|
| committer | historia <historiavg@proton.me> | 2026-08-28 13:51:01 -0400 |
| commit | afb2c2d5b297c5aa28bcced0e3f90e207d799c2a (patch) | |
| tree | 80e6c336736a7c441160db8f52c9e3403497610a /app/tests/test_converter.py | |
| parent | 5ed31309b6d0db94ccd566914653d367f4577c64 (diff) | |
| download | tts-audiobook-generator-afb2c2d5b297c5aa28bcced0e3f90e207d799c2a.tar.gz | |
fix: remove backtrace from console output when using incorrect/incomplete cli flags
Diffstat (limited to 'app/tests/test_converter.py')
| -rw-r--r-- | app/tests/test_converter.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/app/tests/test_converter.py b/app/tests/test_converter.py index e04d3fe..4d7a064 100644 --- a/app/tests/test_converter.py +++ b/app/tests/test_converter.py @@ -2,10 +2,12 @@ import io import logging +import logging_kit import tempfile import time import unittest from contextlib import redirect_stdout +from datetime import datetime from pathlib import Path from unittest.mock import MagicMock, patch @@ -391,6 +393,33 @@ class SetupLoggingTests(unittest.TestCase): "Chunk 1/1 request text", None, None) self.assertTrue(console.filter(chunk_record)) + def test_traceback_logger_filtered_from_console_only(self): + setup_logging(debug=True) + console = self._console_handler() + traceback_record = logging.LogRecord( + logging_kit.TRACEBACK_LOGGER, logging.ERROR, "app", 1, + "Traceback (most recent call last): ...", None, None) + self.assertFalse(console.filter(traceback_record)) + + def test_log_traceback_reaches_file_but_not_console(self): + setup_logging() + console = self._console_handler() + console_stream = io.StringIO() + original = console.setStream(console_stream) + try: + try: + raise RuntimeError("boom") + except RuntimeError: + logging_kit.log_traceback() + finally: + console.setStream(original) + self.assertNotIn("Traceback", console_stream.getvalue()) + self.assertNotIn("boom", console_stream.getvalue()) + log_text = (Path(self._tmp.name) / "audiobook_" + f"{datetime.now():%Y%m%d}.log").read_text(encoding="utf-8") + self.assertIn("Traceback (most recent call last):", log_text) + self.assertIn("RuntimeError: boom", log_text) + class SynthesizeChunkLoggingTests(unittest.TestCase): """Chunk failures surface as a single ERROR record (no print echo).""" |
