import pytest from cpl.core.console.foreground_color_enum import ForegroundColorEnum from cpl.core.console.background_color_enum import BackgroundColorEnum from cpl.core.console.console import Console # --- ForegroundColorEnum --- def test_foreground_color_enum_has_expected_values(): values = [e.value for e in ForegroundColorEnum] assert "default" in values assert "grey" in values assert "red" in values assert "green" in values assert "yellow" in values assert "blue" in values assert "magenta" in values assert "cyan" in values assert "white" in values def test_foreground_color_enum_count(): assert len(ForegroundColorEnum) >= 9 def test_foreground_color_enum_by_name(): assert ForegroundColorEnum["red"] == ForegroundColorEnum.red assert ForegroundColorEnum["green"] == ForegroundColorEnum.green # --- BackgroundColorEnum --- def test_background_color_enum_has_expected_values(): values = [e.value for e in BackgroundColorEnum] assert "on_default" in values assert "on_red" in values assert "on_green" in values assert "on_blue" in values def test_background_color_enum_count(): assert len(BackgroundColorEnum) >= 9 def test_background_color_enum_by_name(): assert BackgroundColorEnum["red"] == BackgroundColorEnum.red # --- Console basic methods (non-interactive, no terminal required) --- def test_console_write_does_not_raise(capsys): Console.write("test") captured = capsys.readouterr() assert "test" in captured.out def test_console_write_line_does_not_raise(capsys): Console.write_line("hello world") captured = capsys.readouterr() assert "hello world" in captured.out def test_console_write_line_multiple_args(capsys): Console.write_line("a", "b", "c") captured = capsys.readouterr() assert "a" in captured.out def test_console_error_does_not_raise(capsys): Console.error("something went wrong") captured = capsys.readouterr() assert "something went wrong" in captured.out or "something went wrong" in captured.err def test_console_set_foreground_color_does_not_raise(): Console.set_foreground_color(ForegroundColorEnum.red) Console.set_foreground_color(ForegroundColorEnum.default) def test_console_set_background_color_does_not_raise(): Console.set_background_color(BackgroundColorEnum.blue) Console.set_background_color(BackgroundColorEnum.default) def test_console_color_reset_does_not_raise(): Console.color_reset() def test_console_banner_does_not_raise(capsys): # banner() renders text as ASCII art, not verbatim Console.banner("Test Banner") captured = capsys.readouterr() assert len(captured.out) > 0 def test_console_divider_does_not_raise(capsys): Console.divider() captured = capsys.readouterr() assert len(captured.out) > 0