From 3427c36c63c9112c6d166f66e987c5cb42befbd0 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Mon, 26 Jan 2026 05:15:25 +0000 Subject: [PATCH 1/4] Update dependencies --- packages/autorest.python/package.json | 2 +- packages/typespec-python/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/autorest.python/package.json b/packages/autorest.python/package.json index 658ada77fd..c9d9e92898 100644 --- a/packages/autorest.python/package.json +++ b/packages/autorest.python/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/Azure/autorest.python/blob/main/README.md", "dependencies": { - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz", "@autorest/system-requirements": "~1.0.2", "fs-extra": "~11.2.0", "tsx": "~4.19.1" diff --git a/packages/typespec-python/package.json b/packages/typespec-python/package.json index ed83c2def9..c0ae0e8184 100644 --- a/packages/typespec-python/package.json +++ b/packages/typespec-python/package.json @@ -67,7 +67,7 @@ "js-yaml": "~4.1.0", "semver": "~7.6.2", "tsx": "~4.19.1", - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz", "fs-extra": "~11.2.0" }, "devDependencies": { From 703569a25d74f3c1887e1f78348a5c320fd7adc7 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Mon, 26 Jan 2026 05:15:26 +0000 Subject: [PATCH 2/4] Add changelog --- .../changes/python-storagePagingFix-2026-0-23-15-44-19.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .chronus/changes/python-storagePagingFix-2026-0-23-15-44-19.md diff --git a/.chronus/changes/python-storagePagingFix-2026-0-23-15-44-19.md b/.chronus/changes/python-storagePagingFix-2026-0-23-15-44-19.md new file mode 100644 index 0000000000..58da59c0ce --- /dev/null +++ b/.chronus/changes/python-storagePagingFix-2026-0-23-15-44-19.md @@ -0,0 +1,8 @@ +--- +changeKind: feature +packages: + - "@autorest/python" + - "@azure-tools/typespec-python" +--- + +Add support for xml paging \ No newline at end of file From 973f67bdcc32c8bfa3bbea23f20153057a8b8b39 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Mon, 26 Jan 2026 05:16:30 +0000 Subject: [PATCH 3/4] Update dependencies (2026-01-26 05:16:30) --- .../test_model_base_xml_serialization.py | 92 ++++++------------- pnpm-lock.yaml | 14 +-- 2 files changed, 37 insertions(+), 69 deletions(-) diff --git a/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py b/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py index 78912e305b..12011df99b 100644 --- a/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py +++ b/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py @@ -523,12 +523,10 @@ def __init__(self, *args, **kwargs): class TestXmlSerialization: def test_basic(self): """Test an ultra basic XML.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" 37 - """ - ) + """) class XmlModel(Model): age: int = rest_field(xml={"name": "Age"}) @@ -544,12 +542,8 @@ def __init__(self, *args, **kwargs): def test_basic_unicode(self): """Test a XML with unicode.""" - basic_xml = ET.fromstring( - """ - """.encode( - "utf-8" - ) - ) + basic_xml = ET.fromstring(""" + """.encode("utf-8")) class XmlModel(Model): language: str = rest_field(xml={"name": "language", "attribute": True}) @@ -589,13 +583,11 @@ def __init__(self, *args, **kwargs): def test_type_basic(self): """Test basic types.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" 37 true - """ - ) + """) class XmlModel(Model): age: int = rest_field(name="age", xml={"name": "Age"}) @@ -611,10 +603,8 @@ def __init__(self, *args, **kwargs): def test_basic_text(self): """Test a XML with unicode.""" - basic_xml = ET.fromstring( - """ - I am text""" - ) + basic_xml = ET.fromstring(""" + I am text""") class XmlModel(Model): language: str = rest_field(name="language", xml={"name": "language", "attribute": True}) @@ -630,15 +620,13 @@ def __init__(self, *args, **kwargs): def test_dict_type(self): """Test dict type.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" value1 value2 - """ - ) + """) class XmlModel(Model): metadata: Dict[str, str] = rest_field(name="Metadata", xml={"name": "Metadata"}) @@ -658,8 +646,7 @@ def __init__(self, *args, **kwargs): def test_additional_properties(self): """Test additional properties.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" test text @@ -672,8 +659,7 @@ def test_additional_properties(self): a b - """ - ) + """) class XmlModel(Model): name: str = rest_field(name="name", xml={"name": "Name"}) @@ -696,15 +682,13 @@ def __init__(self, *args, **kwargs): def test_list_wrapped_basic_types(self): """Test XML list and wrap, items is basic type and there is no itemsName.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" granny fuji - """ - ) + """) class AppleBarrel(Model): good_apples: List[str] = rest_field(name="GoodApples", xml={"name": "GoodApples"}) @@ -720,13 +704,11 @@ def __init__(self, *args, **kwargs): def test_list_not_wrapped_basic_types(self): """Test XML list and no wrap, items is basic type and there is no itemsName.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" granny fuji - """ - ) + """) class AppleBarrel(Model): good_apples: List[str] = rest_field(name="GoodApples", xml={"name": "GoodApples", "unwrapped": True}) @@ -742,15 +724,13 @@ def __init__(self, *args, **kwargs): def test_list_wrapped_basic_types_items_name(self): """Test XML list and wrap, items is basic type and itemsName.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" granny fuji - """ - ) + """) class AppleBarrel(Model): good_apples: List[str] = rest_field(name="GoodApples", xml={"name": "GoodApples", "itemsName": "string"}) @@ -766,13 +746,11 @@ def __init__(self, *args, **kwargs): def test_list_not_wrapped_basic_types_items_name(self): """Test XML list and no wrap, items is basic type and itemsName.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" granny fuji - """ - ) + """) class AppleBarrel(Model): good_apples: List[str] = rest_field( @@ -791,15 +769,13 @@ def __init__(self, *args, **kwargs): def test_list_wrapped_complex_types(self): """Test XML list and wrap, items is ref.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" - """ - ) + """) class Apple(Model): name: str = rest_field(name="name", xml={"name": "name", "attribute": True}) @@ -824,13 +800,11 @@ def __init__(self, *args, **kwargs): def test_list_not_wrapped_complex_types(self): """Test XML list and wrap, items is ref.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" - """ - ) + """) class Apple(Model): name: str = rest_field(name="name", xml={"name": "name", "attribute": True}) @@ -852,13 +826,11 @@ def __init__(self, *args, **kwargs): def test_two_complex_same_type(self): """Two different attribute are same type""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" - """ - ) + """) class Apple(Model): name: str = rest_field(name="name", xml={"name": "name", "attribute": True}) @@ -883,12 +855,10 @@ def __init__(self, *args, **kwargs): def test_basic_namespace(self): """Test an ultra basic XML.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" 37 - """ - ) + """) class XmlModel(Model): age: int = rest_field( @@ -912,8 +882,7 @@ def __init__(self, *args, **kwargs): def test_complex_namespace(self): """Test recursive namespace.""" - basic_xml = ET.fromstring( - """ + basic_xml = ET.fromstring(""" lmazuel @@ -926,8 +895,7 @@ def test_complex_namespace(self): 12 - """ - ) + """) class QueueDescriptionResponseAuthor(Model): name: str = rest_field(name="name", xml={"ns": "http://www.w3.org/2005/Atom"}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8e5202535..ea715410cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ~1.0.2 version: 1.0.2 '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz(jxt2pgfnvxo6bpl6aa26abbwjm) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz(jxt2pgfnvxo6bpl6aa26abbwjm) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -82,8 +82,8 @@ importers: packages/typespec-python: dependencies: '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz(jxt2pgfnvxo6bpl6aa26abbwjm) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz(jxt2pgfnvxo6bpl6aa26abbwjm) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -1698,8 +1698,8 @@ packages: peerDependencies: '@typespec/compiler': ^1.8.0 - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz': - resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz} + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz': + resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz} version: 0.25.0 engines: {node: '>=20.0.0'} peerDependencies: @@ -6510,7 +6510,7 @@ snapshots: dependencies: '@typespec/compiler': 1.8.0(@types/node@24.1.0) - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc4ODc0NC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz(jxt2pgfnvxo6bpl6aa26abbwjm)': + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTc5NTQyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.25.0.tgz(jxt2pgfnvxo6bpl6aa26abbwjm)': dependencies: '@azure-tools/typespec-autorest': 0.64.0(d2z5h57yzeartbziin7g62k5uq) '@azure-tools/typespec-azure-core': 0.64.0(@typespec/compiler@1.8.0(@types/node@24.1.0))(@typespec/http@1.8.0(@typespec/compiler@1.8.0(@types/node@24.1.0))(@typespec/streams@0.78.0(@typespec/compiler@1.8.0(@types/node@24.1.0))))(@typespec/rest@0.78.0(@typespec/compiler@1.8.0(@types/node@24.1.0))(@typespec/http@1.8.0(@typespec/compiler@1.8.0(@types/node@24.1.0))(@typespec/streams@0.78.0(@typespec/compiler@1.8.0(@types/node@24.1.0))))) From 4226d5488b429b74778c95ef0282b41f24c6c93d Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Mon, 26 Jan 2026 05:36:38 +0000 Subject: [PATCH 4/4] Regenerate for autorest.python (2026-01-26 05:36:38) --- .../test_model_base_xml_serialization.py | 92 +++++++++++++------ 1 file changed, 62 insertions(+), 30 deletions(-) diff --git a/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py b/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py index 12011df99b..78912e305b 100644 --- a/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py +++ b/packages/typespec-python/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py @@ -523,10 +523,12 @@ def __init__(self, *args, **kwargs): class TestXmlSerialization: def test_basic(self): """Test an ultra basic XML.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ 37 - """) + """ + ) class XmlModel(Model): age: int = rest_field(xml={"name": "Age"}) @@ -542,8 +544,12 @@ def __init__(self, *args, **kwargs): def test_basic_unicode(self): """Test a XML with unicode.""" - basic_xml = ET.fromstring(""" - """.encode("utf-8")) + basic_xml = ET.fromstring( + """ + """.encode( + "utf-8" + ) + ) class XmlModel(Model): language: str = rest_field(xml={"name": "language", "attribute": True}) @@ -583,11 +589,13 @@ def __init__(self, *args, **kwargs): def test_type_basic(self): """Test basic types.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ 37 true - """) + """ + ) class XmlModel(Model): age: int = rest_field(name="age", xml={"name": "Age"}) @@ -603,8 +611,10 @@ def __init__(self, *args, **kwargs): def test_basic_text(self): """Test a XML with unicode.""" - basic_xml = ET.fromstring(""" - I am text""") + basic_xml = ET.fromstring( + """ + I am text""" + ) class XmlModel(Model): language: str = rest_field(name="language", xml={"name": "language", "attribute": True}) @@ -620,13 +630,15 @@ def __init__(self, *args, **kwargs): def test_dict_type(self): """Test dict type.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ value1 value2 - """) + """ + ) class XmlModel(Model): metadata: Dict[str, str] = rest_field(name="Metadata", xml={"name": "Metadata"}) @@ -646,7 +658,8 @@ def __init__(self, *args, **kwargs): def test_additional_properties(self): """Test additional properties.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ test text @@ -659,7 +672,8 @@ def test_additional_properties(self): a b - """) + """ + ) class XmlModel(Model): name: str = rest_field(name="name", xml={"name": "Name"}) @@ -682,13 +696,15 @@ def __init__(self, *args, **kwargs): def test_list_wrapped_basic_types(self): """Test XML list and wrap, items is basic type and there is no itemsName.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ granny fuji - """) + """ + ) class AppleBarrel(Model): good_apples: List[str] = rest_field(name="GoodApples", xml={"name": "GoodApples"}) @@ -704,11 +720,13 @@ def __init__(self, *args, **kwargs): def test_list_not_wrapped_basic_types(self): """Test XML list and no wrap, items is basic type and there is no itemsName.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ granny fuji - """) + """ + ) class AppleBarrel(Model): good_apples: List[str] = rest_field(name="GoodApples", xml={"name": "GoodApples", "unwrapped": True}) @@ -724,13 +742,15 @@ def __init__(self, *args, **kwargs): def test_list_wrapped_basic_types_items_name(self): """Test XML list and wrap, items is basic type and itemsName.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ granny fuji - """) + """ + ) class AppleBarrel(Model): good_apples: List[str] = rest_field(name="GoodApples", xml={"name": "GoodApples", "itemsName": "string"}) @@ -746,11 +766,13 @@ def __init__(self, *args, **kwargs): def test_list_not_wrapped_basic_types_items_name(self): """Test XML list and no wrap, items is basic type and itemsName.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ granny fuji - """) + """ + ) class AppleBarrel(Model): good_apples: List[str] = rest_field( @@ -769,13 +791,15 @@ def __init__(self, *args, **kwargs): def test_list_wrapped_complex_types(self): """Test XML list and wrap, items is ref.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ - """) + """ + ) class Apple(Model): name: str = rest_field(name="name", xml={"name": "name", "attribute": True}) @@ -800,11 +824,13 @@ def __init__(self, *args, **kwargs): def test_list_not_wrapped_complex_types(self): """Test XML list and wrap, items is ref.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ - """) + """ + ) class Apple(Model): name: str = rest_field(name="name", xml={"name": "name", "attribute": True}) @@ -826,11 +852,13 @@ def __init__(self, *args, **kwargs): def test_two_complex_same_type(self): """Two different attribute are same type""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ - """) + """ + ) class Apple(Model): name: str = rest_field(name="name", xml={"name": "name", "attribute": True}) @@ -855,10 +883,12 @@ def __init__(self, *args, **kwargs): def test_basic_namespace(self): """Test an ultra basic XML.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ 37 - """) + """ + ) class XmlModel(Model): age: int = rest_field( @@ -882,7 +912,8 @@ def __init__(self, *args, **kwargs): def test_complex_namespace(self): """Test recursive namespace.""" - basic_xml = ET.fromstring(""" + basic_xml = ET.fromstring( + """ lmazuel @@ -895,7 +926,8 @@ def test_complex_namespace(self): 12 - """) + """ + ) class QueueDescriptionResponseAuthor(Model): name: str = rest_field(name="name", xml={"ns": "http://www.w3.org/2005/Atom"})