| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import logging |
|
|
| import pytest |
| from google.adk.events.event import Event |
|
|
| from app.agent_runtime_app import AgentEngineApp |
|
|
|
|
| @pytest.fixture |
| def agent_app(monkeypatch: pytest.MonkeyPatch) -> AgentEngineApp: |
| """Fixture to create and set up AgentEngineApp instance""" |
| |
| monkeypatch.setenv("INTEGRATION_TEST", "TRUE") |
|
|
| from app.agent_runtime_app import agent_runtime |
|
|
| agent_runtime.set_up() |
| return agent_runtime |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_agent_stream_query(agent_app: AgentEngineApp) -> None: |
| """ |
| Integration test for the agent stream query functionality. |
| Tests that the agent returns valid streaming responses. |
| """ |
| |
| message = "Hi!" |
| events = [] |
| async for event in agent_app.async_stream_query(message=message, user_id="test"): |
| events.append(event) |
| assert len(events) > 0, "Expected at least one chunk in response" |
|
|
| |
| has_text_content = False |
| for event in events: |
| validated_event = Event.model_validate(event) |
| content = validated_event.content |
| if ( |
| content is not None |
| and content.parts |
| and any(part.text for part in content.parts) |
| ): |
| has_text_content = True |
| break |
|
|
| assert has_text_content, "Expected at least one event with text content" |
|
|
|
|
| def test_agent_feedback(agent_app: AgentEngineApp) -> None: |
| """ |
| Integration test for the agent feedback functionality. |
| Tests that feedback can be registered successfully. |
| """ |
| feedback_data = { |
| "score": 5, |
| "text": "Great response!", |
| "user_id": "test-user-456", |
| "session_id": "test-session-456", |
| } |
|
|
| |
| agent_app.register_feedback(feedback_data) |
|
|
| |
| with pytest.raises(ValueError): |
| invalid_feedback = { |
| "score": "invalid", |
| "text": "Bad feedback", |
| "user_id": "test-user-789", |
| "session_id": "test-session-789", |
| } |
| agent_app.register_feedback(invalid_feedback) |
|
|
| logging.info("All assertions passed for agent feedback test") |
|
|