@@ -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 ()
0 commit comments