feat(conformance): read report's version info from the server

Co-authored-by: Liang Wu <wuliang@google.com>
PiperOrigin-RevId: 868837301
This commit is contained in:
Liang Wu
2026-02-11 14:10:57 -08:00
committed by Copybara-Service
parent 38b4869c41
commit 9dccd6a692
3 changed files with 25 additions and 7 deletions
@@ -17,22 +17,27 @@
from __future__ import annotations
from pathlib import Path
from typing import Any
from typing import Optional
from typing import TYPE_CHECKING
import click
from ... import version
if TYPE_CHECKING:
from .cli_test import _ConformanceTestSummary
def generate_markdown_report(
summary: _ConformanceTestSummary, report_dir: Optional[str]
version_data: dict[str, Any],
summary: _ConformanceTestSummary,
report_dir: Optional[str],
) -> None:
"""Generates a Markdown report of the test results."""
report_name = f"python_{'_'.join(version.__version__.split('.'))}_report.md"
server_version = version_data.get("version", "Unknown")
language = version_data.get("language", "Unknown")
language_version = version_data.get("language_version", "Unknown")
report_name = f"python_{'_'.join(server_version.split('.'))}_report.md"
if not report_dir:
report_path = Path(report_name)
else:
@@ -44,7 +49,8 @@ def generate_markdown_report(
# Summary
f.write("## Summary\n\n")
f.write(f"- **ADK Version**: {version.__version__}\n")
f.write(f"- **ADK Version**: {server_version}\n")
f.write(f"- **Language**: {language} {language_version}\n")
f.write(f"- **Total Tests**: {summary.total_tests}\n")
f.write(f"- **Passed**: {summary.passed_tests}\n")
f.write(f"- **Failed**: {summary.failed_tests}\n")
@@ -207,6 +207,17 @@ class AdkWebServerClient:
response.raise_for_status()
return Session.model_validate(response.json())
async def get_version_data(self) -> Dict[str, str]:
"""Retrieve version data from the ADK web server.
Returns:
Dictionary containing version information
"""
async with self._get_client() as client:
response = await client.get("/version")
response.raise_for_status()
return response.json()
async def run_agent(
self,
request: RunAgentRequest,
+3 -2
View File
@@ -328,8 +328,9 @@ async def run_conformance_test(
runner = ConformanceTestRunner(test_paths, client, mode)
summary = await runner.run_all_tests()
if generate_report:
generate_markdown_report(summary, report_dir)
if generate_report:
version_data = await client.get_version_data()
generate_markdown_report(version_data, summary, report_dir)
_print_test_summary(summary)