Add opt-in debug logging across the CLI pipeline
Thread RP_DEBUG-driven logging through input, detection, rendering, and pager decisions so CLI behavior is inspectable without polluting stdout. Add focused coverage for debug wiring, env parsing, and stderr-only output.
This commit is contained in:
@@ -35,6 +35,10 @@ class TestRenderOptions:
|
||||
assert opts.line_numbers is True
|
||||
assert opts.pager is False
|
||||
|
||||
def test_default_debug_is_none(self) -> None:
|
||||
opts = RenderOptions()
|
||||
assert opts.debug is None
|
||||
|
||||
|
||||
class TestRenderMarkdown:
|
||||
"""Markdown rendering."""
|
||||
@@ -238,6 +242,18 @@ class TestPagerBehavior:
|
||||
assert len(capture_console.file.getvalue()) > 0
|
||||
mock_pager.assert_not_called()
|
||||
|
||||
def test_logs_auto_pager_decision(
|
||||
self, capture_console, sample_python: str
|
||||
) -> None:
|
||||
messages: list[str] = []
|
||||
opts = RenderOptions(pager=None, debug=messages.append)
|
||||
|
||||
with patch("sys.stdout.isatty", return_value=False):
|
||||
render(sample_python, "python", capture_console, opts)
|
||||
|
||||
assert "pager: auto-detected disabled because stdout is not a TTY" in messages
|
||||
assert "pager: writing directly to the console" in messages
|
||||
|
||||
|
||||
class TestPadding:
|
||||
"""Rendered output is wrapped in padding."""
|
||||
|
||||
Reference in New Issue
Block a user