From 3b7f621cbc9843ff7cd49397cc83b26ba4448cb5 Mon Sep 17 00:00:00 2001 From: korotaav48 Date: Thu, 26 Mar 2026 14:22:50 +0300 Subject: [PATCH] fix: allow name to be None in BaseMetadata to handle API response #63 (#64) Co-authored-by: Aleksei Korota (cherry picked from commit 17e2857e160a80116aac900d044d4bbac7b757c3) --- aidial_client/types/metadata.py | 2 +- tests/test_response_processing.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/test_response_processing.py diff --git a/aidial_client/types/metadata.py b/aidial_client/types/metadata.py index 7662c20..874c529 100644 --- a/aidial_client/types/metadata.py +++ b/aidial_client/types/metadata.py @@ -17,7 +17,7 @@ class Config: alias_generator = to_camel allow_population_by_field_name = True - name: str + name: Optional[str] = None parent_path: Optional[str] = None bucket: str url: str diff --git a/tests/test_response_processing.py b/tests/test_response_processing.py new file mode 100644 index 0000000..c5ca642 --- /dev/null +++ b/tests/test_response_processing.py @@ -0,0 +1,30 @@ +from aidial_client.types.metadata import FileMetadata + +BUCKET = "684f6Lz7ubje66aoCRsa5c" + +PAYLOAD = { + "bucket": BUCKET, + "name": None, + "nodeType": "FOLDER", + "parentPath": None, + "resourceType": "FILE", + "url": f"files/{BUCKET}/", + "items": [ + { + "bucket": BUCKET, + "name": "appdata", + "nodeType": "FOLDER", + "parentPath": None, + "resourceType": "FILE", + "url": f"files/{BUCKET}/appdata/", + } + ], +} + + +def test_name_is_none_round_trip(): + """Root folder returned by the API has name=None; parse→serialize must reproduce the original payload.""" + assert PAYLOAD["name"] is None + result = FileMetadata(**PAYLOAD) + assert result.name is None + assert result.model_dump(by_alias=True, exclude_unset=True) == PAYLOAD