aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_converter.py
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-28 13:51:01 -0400
committerhistoria <historiavg@proton.me>2026-08-28 13:51:01 -0400
commitafb2c2d5b297c5aa28bcced0e3f90e207d799c2a (patch)
tree80e6c336736a7c441160db8f52c9e3403497610a /app/tests/test_converter.py
parent5ed31309b6d0db94ccd566914653d367f4577c64 (diff)
downloadtts-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.py29
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)."""