test(15-01): add failing test for enable_semantic_segmentation field
- Test KBSettings has enable_semantic_segmentation field with bool type - Test default value is True - Test environment variable override (KB_ENABLE_SEMANTIC_SEGMENTATION) - Test boolean string parsing (true/false, yes/no, 1/0) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -148,3 +148,69 @@ class TestKBSettingsEnvFile:
|
|||||||
def test_kbsettings_model_config_ignores_extra(self):
|
def test_kbsettings_model_config_ignores_extra(self):
|
||||||
"""Test KBSettings model_config ignores extra fields"""
|
"""Test KBSettings model_config ignores extra fields"""
|
||||||
assert KBSettings.model_config.get("extra") == "ignore"
|
assert KBSettings.model_config.get("extra") == "ignore"
|
||||||
|
|
||||||
|
|
||||||
|
class TestEnableSemanticSegmentationField:
|
||||||
|
"""Tests for enable_semantic_segmentation field (CONFIG-01)"""
|
||||||
|
|
||||||
|
def test_kbsettings_has_enable_semantic_segmentation_field(self):
|
||||||
|
"""Test KBSettings has enable_semantic_segmentation field"""
|
||||||
|
settings = KBSettings(
|
||||||
|
base_path="/tmp/kb",
|
||||||
|
archive_path="/tmp/archive"
|
||||||
|
)
|
||||||
|
assert hasattr(settings, "enable_semantic_segmentation"), \
|
||||||
|
"KBSettings should have enable_semantic_segmentation field"
|
||||||
|
assert isinstance(settings.enable_semantic_segmentation, bool), \
|
||||||
|
"enable_semantic_segmentation should be bool type"
|
||||||
|
|
||||||
|
def test_enable_semantic_segmentation_default_value(self):
|
||||||
|
"""Test default value is True"""
|
||||||
|
with patch.dict(os.environ, {}, clear=True):
|
||||||
|
settings = KBSettings(
|
||||||
|
base_path="/tmp/kb",
|
||||||
|
archive_path="/tmp/archive",
|
||||||
|
_env_file=None
|
||||||
|
)
|
||||||
|
assert settings.enable_semantic_segmentation is True, \
|
||||||
|
"enable_semantic_segmentation should default to True"
|
||||||
|
|
||||||
|
def test_enable_semantic_segmentation_from_env(self):
|
||||||
|
"""Test KB_ENABLE_SEMANTIC_SEGMENTATION env var is respected"""
|
||||||
|
with patch.dict(os.environ, {
|
||||||
|
"KB_ENABLE_SEMANTIC_SEGMENTATION": "false"
|
||||||
|
}, clear=False):
|
||||||
|
get_settings.cache_clear()
|
||||||
|
settings = KBSettings(
|
||||||
|
base_path="/tmp/kb",
|
||||||
|
archive_path="/tmp/archive"
|
||||||
|
)
|
||||||
|
assert settings.enable_semantic_segmentation is False, \
|
||||||
|
"enable_semantic_segmentation should be False when env var is 'false'"
|
||||||
|
|
||||||
|
def test_enable_semantic_segmentation_boolean_parsing(self):
|
||||||
|
"""Test boolean string parsing (true/false, yes/no, 1/0)"""
|
||||||
|
test_cases = [
|
||||||
|
("true", True),
|
||||||
|
("True", True),
|
||||||
|
("TRUE", True),
|
||||||
|
("yes", True),
|
||||||
|
("1", True),
|
||||||
|
("false", False),
|
||||||
|
("False", False),
|
||||||
|
("FALSE", False),
|
||||||
|
("no", False),
|
||||||
|
("0", False),
|
||||||
|
]
|
||||||
|
|
||||||
|
for env_value, expected in test_cases:
|
||||||
|
with patch.dict(os.environ, {
|
||||||
|
"KB_ENABLE_SEMANTIC_SEGMENTATION": env_value
|
||||||
|
}, clear=False):
|
||||||
|
get_settings.cache_clear()
|
||||||
|
settings = KBSettings(
|
||||||
|
base_path="/tmp/kb",
|
||||||
|
archive_path="/tmp/archive"
|
||||||
|
)
|
||||||
|
assert settings.enable_semantic_segmentation is expected, \
|
||||||
|
f"Failed for env_value={env_value}, expected={expected}"
|
||||||
|
|||||||
Reference in New Issue
Block a user