2026-07-15 09:37:43 +03:30
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
|
|
from daena.config import DaenaConfig, load_config
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_minimal_config_has_defaults() -> None:
|
|
|
|
|
config = DaenaConfig()
|
|
|
|
|
assert config.data_dir == "/var/lib/daena"
|
|
|
|
|
assert config.logging.level == "info"
|
2026-07-15 10:48:18 +03:30
|
|
|
assert config.api.grpc.port == 8642
|
2026-07-15 09:37:43 +03:30
|
|
|
assert config.pipeline.batch_size == 100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_load_config_from_file(config_file: Path) -> None:
|
|
|
|
|
config = load_config(str(config_file))
|
|
|
|
|
assert config.data_dir == "/tmp/daena_data"
|
|
|
|
|
assert config.logging.level == "debug"
|
|
|
|
|
assert len(config.sources) == 1
|
|
|
|
|
assert config.sources[0].name == "test"
|
|
|
|
|
assert config.sources[0].type == "dummy"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_load_config_nonexistent_file() -> None:
|
|
|
|
|
try:
|
|
|
|
|
load_config("/nonexistent/daena.yaml")
|
|
|
|
|
raise AssertionError("Expected FileNotFoundError") # noqa: B011
|
|
|
|
|
except FileNotFoundError:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_config_can_set_persistence_backend() -> None:
|
|
|
|
|
config = DaenaConfig()
|
|
|
|
|
assert config.persistence.backend == "lmdb"
|
|
|
|
|
assert config.persistence.lmdb.map_size == 104_857_600
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_config_source_options(minimal_config: DaenaConfig) -> None:
|
|
|
|
|
cfg = minimal_config
|
|
|
|
|
assert cfg.sources == []
|
|
|
|
|
assert cfg.processors == []
|
|
|
|
|
assert cfg.sinks == []
|