fix(cli): reject invalid int config values without traceback (#5956)
This commit is contained in:
@@ -235,7 +235,10 @@ def set_nested_value(config: Mem0Config, dotted_key: str, value: str) -> bool:
|
|||||||
if isinstance(current, bool):
|
if isinstance(current, bool):
|
||||||
value = value.lower() in ("true", "1", "yes") # type: ignore[assignment]
|
value = value.lower() in ("true", "1", "yes") # type: ignore[assignment]
|
||||||
elif isinstance(current, int):
|
elif isinstance(current, int):
|
||||||
value = int(value) # type: ignore[assignment]
|
try:
|
||||||
|
value = int(value) # type: ignore[assignment]
|
||||||
|
except ValueError:
|
||||||
|
return False
|
||||||
|
|
||||||
setattr(obj, final_key, value)
|
setattr(obj, final_key, value)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -139,6 +139,11 @@ class TestNestedAccess:
|
|||||||
assert set_nested_value(config, "platform.api_key", "new-key")
|
assert set_nested_value(config, "platform.api_key", "new-key")
|
||||||
assert config.platform.api_key == "new-key"
|
assert config.platform.api_key == "new-key"
|
||||||
|
|
||||||
|
def test_set_int_value_rejects_invalid_input(self):
|
||||||
|
config = Mem0Config()
|
||||||
|
assert set_nested_value(config, "version", "abc") is False
|
||||||
|
assert config.version == 1
|
||||||
|
|
||||||
def test_set_nonexistent_key(self):
|
def test_set_nonexistent_key(self):
|
||||||
config = Mem0Config()
|
config = Mem0Config()
|
||||||
assert set_nested_value(config, "nonexistent.key", "val") is False
|
assert set_nested_value(config, "nonexistent.key", "val") is False
|
||||||
|
|||||||
Reference in New Issue
Block a user