Implemented a --modules CLI flag to allow runtime selection of the modules to be run
This commit is contained in:
@@ -9,12 +9,14 @@ from audita.core.config import (
|
||||
DEFAULT_WORK_DIR_RETENTION,
|
||||
)
|
||||
from audita.core.errors import AuditaConfigError
|
||||
from audita.modules import DEFAULT_MODULE_KEYS
|
||||
|
||||
|
||||
def test_default_config_allows_missing_api_key():
|
||||
config = AuditaConfig.from_sources(env={})
|
||||
|
||||
assert config.api_key is None
|
||||
assert config.module_keys == DEFAULT_MODULE_KEYS
|
||||
assert config.glossary_confidence_threshold == DEFAULT_GLOSSARY_CONFIDENCE_THRESHOLD
|
||||
assert config.homophones_confidence_threshold == DEFAULT_HOMOPHONES_CONFIDENCE_THRESHOLD
|
||||
assert config.normalize_max_segment_gap == DEFAULT_NORMALIZE_MAX_SEGMENT_GAP
|
||||
@@ -30,6 +32,21 @@ def test_cli_overrides_take_precedence():
|
||||
assert config.max_section_tokens == 2000
|
||||
|
||||
|
||||
def test_module_key_overrides_take_precedence():
|
||||
config = AuditaConfig.from_sources(
|
||||
env={"AUDITA_MODULES": "grammar"},
|
||||
overrides=ConfigOverrides(module_keys="homophones,grammar"),
|
||||
)
|
||||
|
||||
assert config.module_keys == ("homophones", "grammar")
|
||||
|
||||
|
||||
def test_module_key_env_is_parsed_and_trimmed():
|
||||
config = AuditaConfig.from_sources(env={"AUDITA_MODULES": " glossary , grammar "})
|
||||
|
||||
assert config.module_keys == ("glossary", "grammar")
|
||||
|
||||
|
||||
def test_invalid_work_dir_retention_is_rejected():
|
||||
with pytest.raises(AuditaConfigError):
|
||||
AuditaConfig.from_sources(env={"AUDITA_WORK_DIR_RETENTION": "sometimes"})
|
||||
@@ -51,6 +68,19 @@ def test_threshold_overrides_take_precedence():
|
||||
assert config.homophones_confidence_threshold == 0.9
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"value",
|
||||
[
|
||||
"",
|
||||
"grammar,,homophones",
|
||||
"bogus",
|
||||
],
|
||||
)
|
||||
def test_invalid_module_sequences_are_rejected(value):
|
||||
with pytest.raises(AuditaConfigError, match="AUDITA_MODULES"):
|
||||
AuditaConfig.from_sources(env={"AUDITA_MODULES": value})
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"env_name",
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user