refactor: introduce common 'ResourceNotFoundError' exception (#3032)

# What does this PR do?
1. Introduce new base custom exception class `ResourceNotFoundError`
2. All other "not found" exception classes now inherit from
`ResourceNotFoundError`

Closes #3030

Signed-off-by: Nathan Weinberg <nweinber@redhat.com>
This commit is contained in:
Nathan Weinberg 2025-08-06 13:22:55 -04:00 committed by GitHub
parent dfce05d0c5
commit e9fced773a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 33 additions and 16 deletions

View file

@ -4,9 +4,12 @@
# This source code is licensed under the terms described in the LICENSE file in
# the root directory of this source tree.
import re
import pytest
from llama_stack import LlamaStackAsLibraryClient
from llama_stack.apis.common.errors import ToolGroupNotFoundError
from tests.common.mcp import MCP_TOOLGROUP_ID, make_mcp_server
@ -48,8 +51,18 @@ def test_register_and_unregister_toolgroup(llama_stack_client):
llama_stack_client.toolgroups.unregister(toolgroup_id=test_toolgroup_id)
# Verify it is unregistered
with pytest.raises(Exception, match=f"Tool group '{test_toolgroup_id}' not found"):
with pytest.raises(
ToolGroupNotFoundError,
match=re.escape(
f"Tool Group '{test_toolgroup_id}' not found. Use 'client.toolgroups.list()' to list available Tool Groups."
),
):
llama_stack_client.toolgroups.get(toolgroup_id=test_toolgroup_id)
with pytest.raises(Exception, match=f"Tool group '{test_toolgroup_id}' not found"):
with pytest.raises(
ToolGroupNotFoundError,
match=re.escape(
f"Tool Group '{test_toolgroup_id}' not found. Use 'client.toolgroups.list()' to list available Tool Groups."
),
):
llama_stack_client.tools.list(toolgroup_id=test_toolgroup_id)