"""Tests for flow.core.console.""" from flow.core.console import ConsoleLogger def test_console_info(capsys): c = ConsoleLogger() c.info("hello") out = capsys.readouterr().out assert "[INFO]" in out assert "hello" in out def test_console_warn(capsys): c = ConsoleLogger() c.warn("caution") out = capsys.readouterr().out assert "[WARN]" in out assert "caution" in out def test_console_error(capsys): c = ConsoleLogger() c.error("bad thing") out = capsys.readouterr().out assert "[ERROR]" in out assert "bad thing" in out def test_console_success(capsys): c = ConsoleLogger() c.success("done") out = capsys.readouterr().out assert "[SUCCESS]" in out assert "done" in out def test_console_step_lifecycle(capsys): c = ConsoleLogger() c.step_start(1, 3, "Test step") c.step_command("echo hi") c.step_output("hi") c.step_complete("Done") out = capsys.readouterr().out assert "Step 1/3" in out assert "$ echo hi" in out assert "Done" in out def test_console_step_skip(capsys): c = ConsoleLogger() c.start_time = 0 c.step_skip("not needed") out = capsys.readouterr().out assert "Skipped" in out def test_console_step_fail(capsys): c = ConsoleLogger() c.start_time = 0 c.step_fail("exploded") out = capsys.readouterr().out assert "Failed" in out def test_console_table(capsys): c = ConsoleLogger() c.table(["NAME", "VALUE"], [["foo", "bar"], ["baz", "qux"]]) out = capsys.readouterr().out assert "NAME" in out assert "foo" in out assert "baz" in out def test_console_table_empty(capsys): c = ConsoleLogger() c.table(["NAME"], []) out = capsys.readouterr().out assert out == "" def test_console_section_header(capsys): c = ConsoleLogger() c.section_header("Test", "sub") out = capsys.readouterr().out assert "TEST" in out assert "sub" in out def test_console_plan_header(capsys): c = ConsoleLogger() c.plan_header("My Plan", 5) out = capsys.readouterr().out assert "MY PLAN" in out assert "5 actions" in out