import pytest from audita.core.config import ( AuditaConfig, ConfigOverrides, DEFAULT_NORMALIZE_MAX_SEGMENT_GAP, DEFAULT_WORK_DIR_RETENTION, ) from audita.core.errors import AuditaConfigError def test_default_config_allows_missing_api_key(): config = AuditaConfig.from_sources(env={}) assert config.api_key is None assert config.normalize_max_segment_gap == DEFAULT_NORMALIZE_MAX_SEGMENT_GAP assert config.work_dir_retention == DEFAULT_WORK_DIR_RETENTION def test_cli_overrides_take_precedence(): config = AuditaConfig.from_sources( env={"AUDITA_MAX_SECTION_TOKENS": "1000"}, overrides=ConfigOverrides(max_section_tokens=2000), ) assert config.max_section_tokens == 2000 def test_invalid_work_dir_retention_is_rejected(): with pytest.raises(AuditaConfigError): AuditaConfig.from_sources(env={"AUDITA_WORK_DIR_RETENTION": "sometimes"})