wip config + logging tests

Adds tests for VeritextSettings defaults, env var overrides, and the
get_logger/configure_logging functions.
This commit is contained in:
2025-05-24 10:14:26 +00:00
parent 9e9558b937
commit 3c8d599897
2 changed files with 103 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
"""Tests for configuration module."""
from pathlib import Path
import pytest
from veritext.core.config import VeritextSettings, get_settings
class TestVeritextSettings:
def test_default_log_level(self) -> None:
settings = VeritextSettings()
assert settings.log_level == "INFO"
def test_default_log_format(self) -> None:
settings = VeritextSettings()
assert settings.log_format == "console"
def test_default_benchmark_path(self) -> None:
settings = VeritextSettings()
assert settings.benchmark_storage_path == Path("benchmarks")
def test_default_tokeniser_lowercase(self) -> None:
settings = VeritextSettings()
assert settings.tokeniser_lowercase is True
def test_default_remove_punctuation(self) -> None:
settings = VeritextSettings()
assert settings.tokeniser_remove_punctuation is True
def test_default_semantic_model(self) -> None:
settings = VeritextSettings()
assert settings.semantic_model == "all-MiniLM-L6-v2"
def test_default_semantic_cache_enabled(self) -> None:
settings = VeritextSettings()
assert settings.semantic_cache_embeddings is True
def test_env_var_override(self, monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("VERITEXT_LOG_LEVEL", "DEBUG")
settings = VeritextSettings()
assert settings.log_level == "DEBUG"
def test_env_var_override_log_format(self, monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("VERITEXT_LOG_FORMAT", "json")
settings = VeritextSettings()
assert settings.log_format == "json"
class TestGetSettings:
def test_get_settings_returns_instance(self) -> None:
settings = get_settings()
assert isinstance(settings, VeritextSettings)
def test_get_settings_returns_valid_defaults(self) -> None:
settings = get_settings()
assert settings.log_level in ("DEBUG", "INFO", "WARNING", "ERROR")
assert settings.log_format in ("console", "json")

View File

@@ -0,0 +1,45 @@
"""Tests for logging module."""
from veritext.core.logging import configure_logging, get_logger
class TestGetLogger:
def test_get_logger_returns_logger(self) -> None:
logger = get_logger()
assert logger is not None
def test_get_logger_default_name(self) -> None:
logger = get_logger()
# The logger should be a bound logger from structlog
assert hasattr(logger, "info")
assert hasattr(logger, "debug")
assert hasattr(logger, "warning")
assert hasattr(logger, "error")
def test_get_logger_custom_name(self) -> None:
logger = get_logger("custom.module")
assert logger is not None
assert hasattr(logger, "info")
class TestConfigureLogging:
def test_configure_logging_console_format(self) -> None:
configure_logging(level="INFO", log_format="console")
logger = get_logger()
assert logger is not None
def test_configure_logging_json_format(self) -> None:
configure_logging(level="DEBUG", log_format="json")
logger = get_logger()
assert logger is not None
def test_configure_logging_uses_defaults(self) -> None:
configure_logging()
logger = get_logger()
assert logger is not None
def test_configure_logging_different_levels(self) -> None:
for level in ("DEBUG", "INFO", "WARNING", "ERROR"):
configure_logging(level=level)
logger = get_logger()
assert logger is not None