Skip to content

Commit 81b4b90

Browse files
author
Radovan Fuchs
committed
added unit tests for the extra logic
1 parent c36dfd1 commit 81b4b90

2 files changed

Lines changed: 118 additions & 0 deletions

File tree

tests/unit/app/endpoints/test_query.py

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2261,3 +2261,108 @@ async def test_get_topic_summary_create_turn_parameters(mocker: MockerFixture) -
22612261
stream=False,
22622262
toolgroups=None,
22632263
)
2264+
2265+
2266+
@pytest.mark.asyncio
2267+
async def test_query_endpoint_generate_topic_summary_default_true(
2268+
mocker: MockerFixture, dummy_request: Request
2269+
) -> None:
2270+
"""Test that topic summary is generated by default for new conversations."""
2271+
mock_client = mocker.AsyncMock()
2272+
mock_lsc = mocker.patch("client.AsyncLlamaStackClientHolder.get_client")
2273+
mock_lsc.return_value = mock_client
2274+
mock_client.models.list.return_value = [
2275+
mocker.Mock(identifier="model1", model_type="llm", provider_id="provider1"),
2276+
]
2277+
2278+
mock_config = mocker.Mock()
2279+
mock_config.quota_limiters = []
2280+
mocker.patch("app.endpoints.query.configuration", mock_config)
2281+
2282+
summary = TurnSummary(llm_response="Test response", tool_calls=[])
2283+
mocker.patch(
2284+
"app.endpoints.query.retrieve_response",
2285+
return_value=(
2286+
summary,
2287+
"00000000-0000-0000-0000-000000000000",
2288+
[],
2289+
TokenCounter(),
2290+
),
2291+
)
2292+
2293+
mocker.patch(
2294+
"app.endpoints.query.select_model_and_provider_id",
2295+
return_value=("test_model", "test_model", "test_provider"),
2296+
)
2297+
mocker.patch("app.endpoints.query.is_transcripts_enabled", return_value=False)
2298+
2299+
# Mock get_topic_summary - this SHOULD be called
2300+
mock_get_topic_summary = mocker.patch(
2301+
"app.endpoints.query.get_topic_summary", return_value="Generated topic"
2302+
)
2303+
2304+
# Mock database operations
2305+
mock_database_operations(mocker)
2306+
2307+
# Call without specifying generate_topic_summary (defaults to True)
2308+
await query_endpoint_handler(
2309+
request=dummy_request,
2310+
query_request=QueryRequest(query="test query"),
2311+
auth=("user123", "username", False, "auth_token_123"),
2312+
mcp_headers={},
2313+
)
2314+
2315+
mock_get_topic_summary.assert_called_once()
2316+
2317+
2318+
@pytest.mark.asyncio
2319+
async def test_query_endpoint_generate_topic_summary_explicit_false(
2320+
mocker: MockerFixture, dummy_request: Request
2321+
) -> None:
2322+
"""Test that topic summary is NOT generated when explicitly set to False."""
2323+
mock_client = mocker.AsyncMock()
2324+
mock_lsc = mocker.patch("client.AsyncLlamaStackClientHolder.get_client")
2325+
mock_lsc.return_value = mock_client
2326+
mock_client.models.list.return_value = [
2327+
mocker.Mock(identifier="model1", model_type="llm", provider_id="provider1"),
2328+
]
2329+
2330+
mock_config = mocker.Mock()
2331+
mock_config.quota_limiters = []
2332+
mocker.patch("app.endpoints.query.configuration", mock_config)
2333+
2334+
summary = TurnSummary(llm_response="Test response", tool_calls=[])
2335+
mocker.patch(
2336+
"app.endpoints.query.retrieve_response",
2337+
return_value=(
2338+
summary,
2339+
"00000000-0000-0000-0000-000000000000",
2340+
[],
2341+
TokenCounter(),
2342+
),
2343+
)
2344+
2345+
mocker.patch(
2346+
"app.endpoints.query.select_model_and_provider_id",
2347+
return_value=("test_model", "test_model", "test_provider"),
2348+
)
2349+
mocker.patch("app.endpoints.query.is_transcripts_enabled", return_value=False)
2350+
2351+
# Mock get_topic_summary - this should NOT be called
2352+
mock_get_topic_summary = mocker.patch(
2353+
"app.endpoints.query.get_topic_summary", return_value="Generated topic"
2354+
)
2355+
2356+
# Mock database operations
2357+
mock_database_operations(mocker)
2358+
2359+
# Call with generate_topic_summary=False
2360+
await query_endpoint_handler(
2361+
request=dummy_request,
2362+
query_request=QueryRequest(query="test query", generate_topic_summary=False),
2363+
auth=("user123", "username", False, "auth_token_123"),
2364+
mcp_headers={},
2365+
)
2366+
2367+
# Verify get_topic_summary was NOT called
2368+
mock_get_topic_summary.assert_not_called()

tests/unit/models/requests/test_query_request.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,16 @@ def test_validate_media_type(self, mocker: MockerFixture) -> None:
154154

155155
# Media type is now fully supported, no warning expected
156156
mock_logger.warning.assert_not_called()
157+
158+
159+
def test_generate_topic_summary_explicit_false(self) -> None:
160+
"""Test that generate_topic_summary can be explicitly set to False."""
161+
qr = QueryRequest(
162+
query="Tell me about Kubernetes", generate_topic_summary=False
163+
)
164+
assert qr.generate_topic_summary is False
165+
166+
def test_generate_topic_summary_explicit_true(self) -> None:
167+
"""Test that generate_topic_summary can be explicitly set to True."""
168+
qr = QueryRequest(query="Tell me about Kubernetes", generate_topic_summary=True)
169+
assert qr.generate_topic_summary is True

0 commit comments

Comments
 (0)