test(a2a): assert the property agent returns listings, not just non-empty text - #34515
Merged
mubashir1osmani merged 1 commit intoJul 24, 2026
Conversation
…mpty text Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Contributor
Greptile SummaryStrengthens the live property-agent end-to-end test.
Confidence Score: 5/5The PR appears safe to merge, with the test now validating actual property listings rather than merely a non-empty response. The changes are confined to the end-to-end test harness and strengthen its assertions without introducing an established behavioral, security, or build failure.
|
| Filename | Overview |
|---|---|
| tests/e2e/a2a/a2a_client.py | Adds typed models and an accessor for reading property search results from A2A task artifacts; no actionable defect was established. |
| tests/e2e/a2a/test_a2a_agent_e2e.py | Replaces a non-empty-text check with assertions that the live agent returned matching property listings. |
Reviews (1): Last reviewed commit: "test(a2a): assert the property agent ret..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
mubashir1osmani
enabled auto-merge (squash)
July 24, 2026 18:02
mubashir1osmani
approved these changes
Jul 24, 2026
mubashir1osmani
merged commit Jul 24, 2026
6a180e9
into
litellm_internal_staging
73 of 74 checks passed
Ericcwang23
pushed a commit
to Ericcwang23/litellm
that referenced
this pull request
Jul 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR
Problem this solves:
How it solves it:
search_resultsartifact and assert real listings came backsearch_propertiesreturns nothingRelevant issues
Linear ticket
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
@greptileaito re-request a review after pushing changes)Screenshots / Proof of Fix
Captured against a live proxy at commit
6fd8a68a66, driving the real movehome.org agent registered through the proxy (no mocks). The agent runs itssearch_propertiesskill and returns asearch_resultsartifactNew query the test now sends (has data), and the old query it used to send (structurally empty):
The whole live catalogue is 45 listings, all
long_term, in GB/TH locodes; there are nosalelistings and no US locodes, so the previous USSFO/sale query could never return a propertyMutation check against the live proxy: pointing the strengthened test back at the old USSFO/sale query fails on
assert results.total > 0(assert 0 > 0), where before the change it passed. With the GBLON/long_term query the full a2a suite is 9 passedType
✅ Test
Changes
test_real_world_agent_replies_to_property_queryused to register the real movehome.org agent, send asearch_propertiesinvocation for San Francisco sale listings under $2M, and assert only thatresponse.result.text.strip() != "". The agent completes the task with the text "No listings matched the search criteria." for that query, which is non-empty, so the test passed without the agent ever returning a property. It was checking that a task completed with some text, not that the tool actually ran and matchedThis changes the query to a slice of the catalogue that has data (
un_locode="GBLON",service_type="long_term") and asserts on the tool output itself.a2a_client.pygains typed models for thesearch_resultsartifact (A2AArtifact,A2ASearchResults,A2AListing,A2AListingLocation) plus asearch_resultsaccessor onA2AResult, and the test now asserts the artifact is present,total > 0, the listings are non-empty, each has araia_id, and eachlocation.un_locodematches the requested location. Ifsearch_propertiesreturns nothing the test failsQA runbook
urltohttps://movehome.org, then POST it to/v1/agentswith the master key as{"agent_name": "...", "agent_card_params": <card>}/a2a/{agent_id}with a bearer virtual key and amessage/sendwhose message carries a DataPart{"skill":"search_properties","params":{"un_locode":"GBLON","service_type":"long_term","limit":3}}artifacts[0]issearch_resultswithtotal > 0and a non-emptylistingsarray, each listing having araia_idandlocation.un_locode == "GBLON"Final Attestation
Link to Devin session: https://app.devin.ai/sessions/7d46ce10c3ba4fb2847da198d48c00ef