fix(python): validate query field names (#612)

This commit is contained in:
Hosni Belfeki 2026-07-27 10:41:23 +01:00 committed by GitHub
parent 016866b218
commit d59d9a48f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 5 deletions

View File

@ -408,9 +408,10 @@ class TestQuery:
with pytest.raises(ValueError):
Query(field_name="embedding", id="doc123", vector=[0.1])._validate()
def test_init_without_field_name_raises_error(self):
with pytest.raises(ValueError):
Query(field_name=None)._validate()
@pytest.mark.parametrize("field_name", [None, "", " ", 123])
def test_init_without_valid_field_name_raises_error(self, field_name):
with pytest.raises(ValueError, match="Field name must be a non-empty string"):
Query(field_name=field_name)._validate()
def test_has_id_returns_true_when_id_set(self):
vq = Query(field_name="embedding", id="doc123")

View File

@ -115,8 +115,8 @@ class Query:
return False
def _validate(self) -> None:
if self.field_name is None:
raise ValueError("Field name cannot be empty")
if not isinstance(self.field_name, str) or not self.field_name.strip():
raise ValueError("Field name must be a non-empty string")
if self.has_id() and self.has_vector():
raise ValueError("Cannot provide both id and vector")
if self.has_fts() and (self.has_vector() or self.has_id()):