Skip to content

fix(sdk-py): reject malformed falsey response data - #1243

Open
MohammedThowfiq wants to merge 1 commit into
TencentCloud:feat/server_teamfrom
MohammedThowfiq:codex/strict-response-data
Open

fix(sdk-py): reject malformed falsey response data#1243
MohammedThowfiq wants to merge 1 commit into
TencentCloud:feat/server_teamfrom
MohammedThowfiq:codex/strict-response-data

Conversation

@MohammedThowfiq

Copy link
Copy Markdown

Summary

The Python v3 transport promises object-valued response data, but envelope.get("data") or {} converts [], false, 0, and "" into a successful empty result before checking their types. This hides malformed server responses from both synchronous and asynchronous SDK callers.

Only missing or null data now defaults to an empty object. Other non-object values raise the existing TDAMError with the response trace ID. Object payloads and optional data retain their existing behavior.

Verification

From sdk/memory-core/python/, using Python 3.12.13 and httpx 0.28.1:

  • python -m unittest discover -s tests -v — 2 tests passed, covering 24 synchronous/asynchronous subcases. Before the fix, the 8 falsey-data cases failed because no exception was raised.
  • python -m build — source distribution and wheel built successfully.
  • git diff --check — passed.

Tests use httpx.MockTransport and make no external requests. This change is confined to v3 response decoding; v2 behavior is unchanged.

Signed-off-by: Mohammedthowfiq <49336054+MohammedThowfiq@users.noreply.github.com>
@Maxwell-Code07

Copy link
Copy Markdown
Collaborator

Thank you so much for your attention and contribution! We will arrange an internal review for this PR shortly, and all feedback will be shared right here in the discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants