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>
This commit is contained in:
0
test/core/console/__init__.py
Normal file
0
test/core/console/__init__.py
Normal file
101
test/core/console/console_test.py
Normal file
101
test/core/console/console_test.py
Normal file
@@ -0,0 +1,101 @@
|
||||
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
|
||||
Reference in New Issue
Block a user