Skip to content

Commit 93bd7d7

Browse files
[Backport 2.6] fix: unpack _get_schema tuple return in _list_vector_indexes (#3275) (#3276)
Backport of #3275 to `2.6`. Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: zhuwenxing <wenxing.zhu@zilliz.com>
1 parent c1200a4 commit 93bd7d7

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

pymilvus/milvus_client/milvus_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2344,7 +2344,7 @@ def _is_collection_loaded(self, collection_name: str, timeout: Optional[float] =
23442344
def _list_vector_indexes(
23452345
self, collection_name: str, timeout: Optional[float] = None, **kwargs
23462346
) -> List[str]:
2347-
schema_dict = self._get_connection()._get_schema(
2347+
schema_dict, _ = self._get_connection()._get_schema(
23482348
collection_name,
23492349
timeout=timeout,
23502350
context=self._generate_call_context(**kwargs),

tests/test_milvus_client.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,58 @@ def test_list_indexes(self):
436436

437437
assert result == ["index1", "index2"]
438438

439+
def test_list_vector_indexes(self):
440+
"""Test _list_vector_indexes correctly unpacks _get_schema tuple return."""
441+
mock_handler = MagicMock()
442+
mock_handler.get_server_type.return_value = "milvus"
443+
444+
schema_dict = {
445+
"fields": [
446+
{"name": "id", "type": DataType.INT64},
447+
{"name": "vector", "type": DataType.FLOAT_VECTOR},
448+
]
449+
}
450+
mock_handler._get_schema.return_value = (schema_dict, 12345)
451+
452+
mock_index = MagicMock()
453+
mock_index.field_name = "vector"
454+
mock_index.index_name = "vec_index"
455+
mock_handler.list_indexes.return_value = [mock_index]
456+
mock_handler.describe_index.return_value = {
457+
"field_name": "vector",
458+
"index_name": "vec_index",
459+
}
460+
461+
with patch(
462+
"pymilvus.milvus_client.milvus_client.create_connection", return_value="test"
463+
), patch("pymilvus.orm.connections.Connections._fetch_handler", return_value=mock_handler):
464+
client = MilvusClient()
465+
result = client._list_vector_indexes("test_collection")
466+
467+
assert result == ["vec_index"]
468+
mock_handler._get_schema.assert_called_once()
469+
470+
def test_list_vector_indexes_no_vector_fields(self):
471+
"""Test _list_vector_indexes returns empty list when no vector fields."""
472+
mock_handler = MagicMock()
473+
mock_handler.get_server_type.return_value = "milvus"
474+
475+
schema_dict = {
476+
"fields": [
477+
{"name": "id", "type": DataType.INT64},
478+
{"name": "text", "type": DataType.VARCHAR},
479+
]
480+
}
481+
mock_handler._get_schema.return_value = (schema_dict, 12345)
482+
483+
with patch(
484+
"pymilvus.milvus_client.milvus_client.create_connection", return_value="test"
485+
), patch("pymilvus.orm.connections.Connections._fetch_handler", return_value=mock_handler):
486+
client = MilvusClient()
487+
result = client._list_vector_indexes("test_collection")
488+
489+
assert result == []
490+
439491

440492
# ============================================================
441493
# MilvusClient Alias Operations Tests

0 commit comments

Comments
 (0)