Files
cpl/test/core/console/console_test.py
clu 27205022a5
Some checks failed
Test before pr merge / test-lint (pull_request) Successful in 8s
Test before pr merge / test (pull_request) Failing after 36s
test(core): extend coverage — console, errors, log, service, time, benchmark
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>
2026-04-13 19:34:52 +02:00

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