Add missing test modules for previously untested core areas: - console: ForegroundColorEnum, BackgroundColorEnum, Console methods - errors: dependency_error, module_dependency_error - log: LogLevel ordering/values, LogSettings, Logger (should_log, format, file write, fatal) - service: HostedService, StartupTask, CronjobABC (start/stop/loop/task cancellation) - time: TimeFormatSettings properties and setters - utils: Benchmark.time / .memory / .all call-count and output Also fix existing test files: environment cleanup, cron exception specificity, json_processor kwargs bug doc, configuration_model_abc to_dict bug doc. All 199 tests pass, black clean. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
102 lines
2.8 KiB
Python
102 lines
2.8 KiB
Python
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
|