Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/google/adk/evaluation/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ class EvalBaseModel(pydantic.BaseModel):
model_config = pydantic.ConfigDict(
alias_generator=alias_generators.to_camel,
populate_by_name=True,
extra="forbid",
extra="allow",
arbitrary_types_allowed=True,
)
28 changes: 28 additions & 0 deletions tests/unittests/evaluation/test_eval_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,38 @@
from google.adk.evaluation.eval_case import IntermediateData
from google.adk.evaluation.eval_case import InvocationEvent
from google.adk.evaluation.eval_case import InvocationEvents
from google.adk.evaluation.eval_case import SessionInput
from google.genai import types as genai_types
import pytest


def test_eval_models_preserve_extra_metadata():
session_input = SessionInput(
app_name='app',
user_id='user',
eval_group='retrieval',
source='nightly',
)

assert session_input.model_extra == {
'eval_group': 'retrieval',
'source': 'nightly',
}
assert session_input.model_dump()['eval_group'] == 'retrieval'

eval_case = EvalCase(
eval_id='case_1',
conversation=[],
session_input=session_input,
owner='platform',
)

assert eval_case.model_extra == {'owner': 'platform'}
dumped = eval_case.model_dump()
assert dumped['owner'] == 'platform'
assert dumped['session_input']['source'] == 'nightly'


def test_get_all_tool_calls_with_none_input():
"""Tests that an empty list is returned when intermediate_data is None."""
assert get_all_tool_calls(None) == []
Expand Down