Files
049-snack-and-lift/tests/unit/test_console_recorder.py
Tirsvad 08ba464ec9 Add class card parsing, booking and state checks (steps 3 and 4)
Day label and time parsing, next Tuesday 6pm lookup without list-position
tricks, decision on Book Class / Join Waitlist / Booked / Waitlisted,
confirmed clicks, console recorder and text screenshots, unit tests and
container tests against local fixtures.

Task: MIL-004#1
Task: MIL-004#2
Task: MIL-004#3
Task: MIL-004#4
2026-10-28 17:49:06 +08:00

31 lines
795 B
Python

"""@file test_console_recorder.py
@brief The recorder keeps the formatted lines of the log.
"""
import logging
from snack_and_lift.infrastructure.console_recorder import ConsoleRecorder
def test_recorder_keeps_formatted_messages() -> None:
logger = logging.getLogger("test_console_recorder")
logger.setLevel(logging.INFO)
recorder = ConsoleRecorder()
logger.addHandler(recorder)
try:
logger.info("✓ Logged %s", "in")
logger.warning("careful")
finally:
logger.removeHandler(recorder)
assert recorder.lines == ["✓ Logged in", "careful"]
assert recorder.text == "✓ Logged in\ncareful"
def test_recorder_lines_are_a_copy() -> None:
recorder = ConsoleRecorder()
recorder.lines.append("x")
assert recorder.lines == []