# Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from unittest.mock import AsyncMock from unittest.mock import MagicMock from unittest.mock import patch from google.adk.agents.live_request_queue import LiveRequest from google.adk.agents.live_request_queue import LiveRequestQueue from google.genai import types import pytest @pytest.mark.asyncio async def test_close_queue(): queue = LiveRequestQueue() with patch.object(queue._queue, "put_nowait") as mock_put_nowait: queue.close() mock_put_nowait.assert_called_once_with(LiveRequest(close=True)) def test_send_content(): queue = LiveRequestQueue() content = MagicMock(spec=types.Content) with patch.object(queue._queue, "put_nowait") as mock_put_nowait: queue.send_content(content) mock_put_nowait.assert_called_once_with(LiveRequest(content=content)) def test_send_content_sets_partial(): queue = LiveRequestQueue() content = MagicMock(spec=types.Content) with patch.object(queue._queue, "put_nowait") as mock_put_nowait: queue.send_content(content, partial=True) mock_put_nowait.assert_called_once_with( LiveRequest(content=content, partial=True) ) def test_send_realtime(): queue = LiveRequestQueue() blob = MagicMock(spec=types.Blob) with patch.object(queue._queue, "put_nowait") as mock_put_nowait: queue.send_realtime(blob) mock_put_nowait.assert_called_once_with(LiveRequest(blob=blob)) def test_send(): queue = LiveRequestQueue() req = LiveRequest(content=MagicMock(spec=types.Content)) with patch.object(queue._queue, "put_nowait") as mock_put_nowait: queue.send(req) mock_put_nowait.assert_called_once_with(req) @pytest.mark.asyncio async def test_get(): queue = LiveRequestQueue() res = MagicMock(spec=types.Content) with patch.object(queue._queue, "get", return_value=res) as mock_get: result = await queue.get() assert result == res mock_get.assert_called_once()