Skip to content

Commit 74e5963

Browse files
authored
fix: correct _api_level_md call in file resource methods (#3266)
## Summary - Fixed incorrect `_api_level_md(**kwargs)` calls in `add_file_resource`, `remove_file_resource`, and `list_file_resources` methods - Changed to `_api_level_md(kwargs.get("context"))` to align with all other methods in `grpc_handler.py` - `_api_level_md` only accepts a single `context` parameter, passing `**kwargs` could cause `TypeError` if kwargs contains unexpected keys ## Test plan - [x] Verify `add_file_resource`, `remove_file_resource`, `list_file_resources` work correctly - [x] Confirm consistency with other grpc_handler methods --------- Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
1 parent 4297335 commit 74e5963

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed

pymilvus/client/grpc_handler.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3357,7 +3357,9 @@ def add_file_resource(
33573357
**kwargs,
33583358
):
33593359
req = Prepare.add_file_resource(name=name, path=path)
3360-
resp = self._stub.AddFileResource(req, timeout=timeout, metadata=_api_level_md(**kwargs))
3360+
resp = self._stub.AddFileResource(
3361+
req, timeout=timeout, metadata=_api_level_md(kwargs.get("context"))
3362+
)
33613363
check_status(resp)
33623364

33633365
@retry_on_rpc_failure()
@@ -3368,7 +3370,9 @@ def remove_file_resource(
33683370
**kwargs,
33693371
):
33703372
req = Prepare.remove_file_resource(name=name)
3371-
resp = self._stub.RemoveFileResource(req, timeout=timeout, metadata=_api_level_md(**kwargs))
3373+
resp = self._stub.RemoveFileResource(
3374+
req, timeout=timeout, metadata=_api_level_md(kwargs.get("context"))
3375+
)
33723376
check_status(resp)
33733377

33743378
@retry_on_rpc_failure()
@@ -3378,6 +3382,8 @@ def list_file_resources(
33783382
**kwargs,
33793383
) -> List[str]:
33803384
req = Prepare.list_file_resources()
3381-
resp = self._stub.ListFileResources(req, timeout=timeout, metadata=_api_level_md(**kwargs))
3385+
resp = self._stub.ListFileResources(
3386+
req, timeout=timeout, metadata=_api_level_md(kwargs.get("context"))
3387+
)
33823388
check_status(resp.status)
33833389
return [FileResourceInfo(info) for info in resp.resources]

tests/grpc_handler/test_utility.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,3 +546,42 @@ def test_describe_index_not_found(self, handler):
546546
# With empty index_descriptions, it raises AmbiguousIndexName
547547
with pytest.raises(AmbiguousIndexName):
548548
handler.describe_index("coll", "nonexistent")
549+
550+
551+
class TestGrpcHandlerFileResource:
552+
"""Tests for file resource operations."""
553+
554+
def test_add_file_resource(self, handler):
555+
mock_resp = MagicMock()
556+
mock_resp.code = 0
557+
mock_resp.error_code = 0
558+
mock_resp.reason = ""
559+
handler._stub.AddFileResource.return_value = mock_resp
560+
561+
handler.add_file_resource("test_resource", "/path/to/file")
562+
handler._stub.AddFileResource.assert_called_once()
563+
564+
def test_remove_file_resource(self, handler):
565+
mock_resp = MagicMock()
566+
mock_resp.code = 0
567+
mock_resp.error_code = 0
568+
mock_resp.reason = ""
569+
handler._stub.RemoveFileResource.return_value = mock_resp
570+
571+
handler.remove_file_resource("test_resource")
572+
handler._stub.RemoveFileResource.assert_called_once()
573+
574+
def test_list_file_resources(self, handler):
575+
mock_info = MagicMock()
576+
mock_info.name = "res1"
577+
mock_info.path = "/path/to/res1"
578+
mock_resp = MagicMock()
579+
mock_resp.status.code = 0
580+
mock_resp.status.error_code = 0
581+
mock_resp.status.reason = ""
582+
mock_resp.resources = [mock_info]
583+
handler._stub.ListFileResources.return_value = mock_resp
584+
585+
result = handler.list_file_resources()
586+
assert len(result) == 1
587+
handler._stub.ListFileResources.assert_called_once()

0 commit comments

Comments
 (0)