diff --git a/packages/toolbox-core/src/toolbox_core/client.py b/packages/toolbox-core/src/toolbox_core/client.py index 08182743..64497b80 100644 --- a/packages/toolbox-core/src/toolbox_core/client.py +++ b/packages/toolbox-core/src/toolbox_core/client.py @@ -171,7 +171,7 @@ async def load_tool( async def load_toolset( self, - name: str, + name: Optional[str] = None, auth_token_getters: dict[str, Callable[[], str]] = {}, bound_params: Mapping[str, Union[Callable[[], Any], Any]] = {}, ) -> list[ToolboxTool]: @@ -192,7 +192,7 @@ async def load_toolset( in the toolset. """ # Request the definition of the tool from the server - url = f"{self.__base_url}/api/toolset/{name}" + url = f"{self.__base_url}/api/toolset/{name or ''}" async with self.__session.get(url) as response: json = await response.json() manifest: ManifestSchema = ManifestSchema(**json) diff --git a/packages/toolbox-core/tests/test_e2e.py b/packages/toolbox-core/tests/test_e2e.py index 5e744ae1..68fffa75 100644 --- a/packages/toolbox-core/tests/test_e2e.py +++ b/packages/toolbox-core/tests/test_e2e.py @@ -61,6 +61,20 @@ async def test_load_toolset_specific( tool_names = {tool.__name__ for tool in toolset} assert tool_names == set(expected_tools) + async def test_load_toolset_default(self, toolbox: ToolboxClient): + """Load the default toolset, i.e. all tools.""" + toolset = await toolbox.load_toolset() + assert len(toolset) == 5 + tool_names = {tool.__name__ for tool in toolset} + expected_tools = [ + "get-row-by-content-auth", + "get-row-by-email-auth", + "get-row-by-id-auth", + "get-row-by-id", + "get-n-rows", + ] + assert tool_names == set(expected_tools) + async def test_run_tool(self, get_n_rows_tool: ToolboxTool): """Invoke a tool.""" response = await get_n_rows_tool(num_rows="2")