refactor(search): change default limit from None to 1

Change the default limit parameter for search_objects from None to 1
to optimize for single object searches. This makes the API more
intuitive for common use cases where users want to find a specific
object without specifying pagination parameters.

Changes:
- Update limit parameter type from `int | None = None` to `int = 1`
- Remove conditional logic handling None values
- Update documentation to reflect new default
- Update all tests to expect new default behavior

This improves usability for exploratory searches while maintaining
full pagination functionality when larger limits are specified.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Daniel Bauer
2025-07-05 12:37:40 +02:00
parent dec0b7702a
commit 64c625dcb9
2 changed files with 11 additions and 13 deletions

View File

@@ -311,7 +311,7 @@ class TestSearchObjects:
assert parsed_result[1]["id"] == "people/jane-smith"
# Verify the client was called with correct parameters
mock_client.find.assert_called_once_with("name:John", object_type=None, page_size=20, page_num=0)
mock_client.find.assert_called_once_with("name:John", object_type=None, page_size=1, page_num=0)
@patch('cordra_mcp.server.cordra_client')
async def test_search_objects_with_type_filter(self, mock_client):
@@ -334,7 +334,7 @@ class TestSearchObjects:
assert parsed_result[0]["type"] == "Person"
# Verify the client was called with type filter
mock_client.find.assert_called_once_with("name:John", object_type="Person", page_size=20, page_num=0)
mock_client.find.assert_called_once_with("name:John", object_type="Person", page_size=1, page_num=0)
@patch('cordra_mcp.server.cordra_client')
async def test_search_objects_with_limit(self, mock_client):
@@ -398,7 +398,7 @@ class TestSearchObjects:
parsed_result = json.loads(result)
assert parsed_result == []
mock_client.find.assert_called_once_with("nonexistent:data", object_type=None, page_size=20, page_num=0)
mock_client.find.assert_called_once_with("nonexistent:data", object_type=None, page_size=1, page_num=0)
@patch('cordra_mcp.server.cordra_client')
async def test_search_objects_client_error(self, mock_client):
@@ -409,7 +409,7 @@ class TestSearchObjects:
await search_objects("test:query")
assert "Search failed:" in str(exc_info.value)
mock_client.find.assert_called_once_with("test:query", object_type=None, page_size=20, page_num=0)
mock_client.find.assert_called_once_with("test:query", object_type=None, page_size=1, page_num=0)
@patch('cordra_mcp.server.cordra_client')
async def test_search_objects_value_error(self, mock_client):
@@ -420,7 +420,7 @@ class TestSearchObjects:
await search_objects("invalid:query")
assert "Invalid search parameters:" in str(exc_info.value)
mock_client.find.assert_called_once_with("invalid:query", object_type=None, page_size=20, page_num=0)
mock_client.find.assert_called_once_with("invalid:query", object_type=None, page_size=1, page_num=0)
@patch('cordra_mcp.server.cordra_client')
async def test_search_objects_json_formatting(self, mock_client):
@@ -463,9 +463,9 @@ class TestSearchObjects:
mock_client.find = AsyncMock(return_value=mock_search_result)
await search_objects("type:Document", page_num=1)
# Verify the client was called with correct page number
mock_client.find.assert_called_once_with("type:Document", object_type=None, page_size=20, page_num=1)
mock_client.find.assert_called_once_with("type:Document", object_type=None, page_size=1, page_num=1)
@patch('cordra_mcp.server.cordra_client')
async def test_search_objects_with_all_pagination_params(self, mock_client):