fix: accept default /tmp/chroma path in ChromaDbConfig validator (#4179)
This commit is contained in:
@@ -32,8 +32,8 @@ class ChromaDbConfig(BaseModel):
|
|||||||
values.pop("path", None)
|
values.pop("path", None)
|
||||||
return values
|
return values
|
||||||
|
|
||||||
# Check if local/server configuration is provided (excluding default tmp path for cloud config)
|
# Check if local/server configuration is provided
|
||||||
local_config = bool(path and path != "/tmp/chroma") or bool(host and port)
|
local_config = bool(path) or bool(host and port)
|
||||||
|
|
||||||
if not cloud_config and not local_config:
|
if not cloud_config and not local_config:
|
||||||
raise ValueError("Either ChromaDB Cloud configuration (api_key, tenant) or local configuration (path or host/port) must be provided.")
|
raise ValueError("Either ChromaDB Cloud configuration (api_key, tenant) or local configuration (path or host/port) must be provided.")
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from unittest.mock import Mock, patch
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mem0.vector_stores.chroma import ChromaDB
|
from mem0.vector_stores.chroma import ChromaDB
|
||||||
|
from mem0.configs.vector_stores.chroma import ChromaDbConfig
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@@ -249,3 +250,15 @@ def test_generate_where_clause_non_string_values():
|
|||||||
# ChromaDB accepts non-string values in filters
|
# ChromaDB accepts non-string values in filters
|
||||||
expected = {"$and": [{"user_id": {"$eq": "alice"}}, {"count": {"$eq": 5}}, {"active": {"$eq": True}}]}
|
expected = {"$and": [{"user_id": {"$eq": "alice"}}, {"count": {"$eq": 5}}, {"active": {"$eq": True}}]}
|
||||||
assert result == expected
|
assert result == expected
|
||||||
|
|
||||||
|
|
||||||
|
def test_chroma_config_accepts_default_tmp_path():
|
||||||
|
"""Test that ChromaDbConfig accepts the default /tmp/chroma path."""
|
||||||
|
config = ChromaDbConfig(path="/tmp/chroma")
|
||||||
|
assert config.path == "/tmp/chroma"
|
||||||
|
|
||||||
|
|
||||||
|
def test_chroma_config_rejects_no_config():
|
||||||
|
"""Test that ChromaDbConfig rejects when no connection config is provided."""
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
ChromaDbConfig()
|
||||||
|
|||||||
Reference in New Issue
Block a user