left4me/l4d2host/tests/test_logging.py

30 lines
967 B
Python

import sys
from io import StringIO
from l4d2host.logging import emit_step
def test_emit_step_uses_callback() -> None:
calls: list[str] = []
emit_step("test step", on_stdout=calls.append, passthrough=False)
assert calls == ["Step: test step"]
def test_emit_step_uses_passthrough_stdout(monkeypatch) -> None:
fake_out = StringIO()
monkeypatch.setattr(sys, "stdout", fake_out)
emit_step("passthrough step", on_stdout=None, passthrough=True)
assert fake_out.getvalue() == "Step: passthrough step\n"
def test_emit_step_does_nothing_if_no_target() -> None:
emit_step("silent step", on_stdout=None, passthrough=False)
def test_emit_step_does_both(monkeypatch) -> None:
calls: list[str] = []
fake_out = StringIO()
monkeypatch.setattr(sys, "stdout", fake_out)
emit_step("both step", on_stdout=calls.append, passthrough=True)
assert calls == ["Step: both step"]
assert fake_out.getvalue() == "Step: both step\n"