@typespec/http-client-python 0.28.2 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/dist/emitter/code-model.d.ts.map +1 -1
  2. package/dist/emitter/code-model.js +7 -6
  3. package/dist/emitter/code-model.js.map +1 -1
  4. package/dist/emitter/constants.d.ts +6 -0
  5. package/dist/emitter/constants.d.ts.map +1 -0
  6. package/dist/emitter/constants.js +27 -0
  7. package/dist/emitter/constants.js.map +1 -0
  8. package/dist/emitter/emitter.d.ts.map +1 -1
  9. package/dist/emitter/emitter.js +193 -119
  10. package/dist/emitter/emitter.js.map +1 -1
  11. package/dist/emitter/http.d.ts.map +1 -1
  12. package/dist/emitter/http.js +33 -1
  13. package/dist/emitter/http.js.map +1 -1
  14. package/dist/emitter/lib.d.ts +37 -3
  15. package/dist/emitter/lib.d.ts.map +1 -1
  16. package/dist/emitter/lib.js +17 -0
  17. package/dist/emitter/lib.js.map +1 -1
  18. package/dist/emitter/run-python3.js +1 -1
  19. package/dist/emitter/run-python3.js.map +1 -1
  20. package/dist/emitter/system-requirements.js +6 -4
  21. package/dist/emitter/system-requirements.js.map +1 -1
  22. package/dist/emitter/types.d.ts +2 -5
  23. package/dist/emitter/types.d.ts.map +1 -1
  24. package/dist/emitter/types.js +86 -63
  25. package/dist/emitter/types.js.map +1 -1
  26. package/dist/emitter/utils.d.ts.map +1 -1
  27. package/dist/emitter/utils.js +16 -17
  28. package/dist/emitter/utils.js.map +1 -1
  29. package/emitter/src/code-model.ts +7 -13
  30. package/emitter/src/constants.ts +27 -0
  31. package/emitter/src/emitter.ts +241 -123
  32. package/emitter/src/http.ts +29 -1
  33. package/emitter/src/lib.ts +24 -0
  34. package/emitter/src/run-python3.ts +1 -1
  35. package/emitter/src/system-requirements.ts +4 -4
  36. package/emitter/src/types.ts +102 -62
  37. package/emitter/src/utils.ts +16 -18
  38. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  39. package/emitter/test/utils.test.ts +3 -0
  40. package/emitter/tsconfig.build.json +2 -1
  41. package/emitter/tsconfig.json +2 -1
  42. package/eng/scripts/Build-Packages.ps1 +62 -37
  43. package/eng/scripts/Check-GitChanges.ps1 +30 -3
  44. package/eng/scripts/Functions.ps1 +54 -15
  45. package/eng/scripts/Generate.ps1 +42 -8
  46. package/eng/scripts/Generation.psm1 +44 -15
  47. package/eng/scripts/Initialize-Repository.ps1 +29 -11
  48. package/eng/scripts/Test-Packages.ps1 +47 -31
  49. package/eng/scripts/ci/config/eslint-ci.config.mjs +64 -0
  50. package/eng/scripts/ci/{mypy.ini → config/mypy.ini} +1 -1
  51. package/eng/scripts/ci/{pylintrc → config/pylintrc} +1 -1
  52. package/eng/scripts/ci/{pyrightconfig.json → config/pyrightconfig.json} +1 -1
  53. package/eng/scripts/ci/dev_requirements.txt +2 -1
  54. package/eng/scripts/ci/format.ts +232 -2
  55. package/eng/scripts/ci/lint.ts +223 -20
  56. package/eng/scripts/ci/regenerate-common.ts +411 -136
  57. package/eng/scripts/ci/regenerate.ts +247 -101
  58. package/eng/scripts/ci/run-tests.ts +507 -0
  59. package/eng/scripts/ci/run_apiview.py +22 -16
  60. package/eng/scripts/ci/run_mypy.py +34 -23
  61. package/eng/scripts/ci/run_pylint.py +27 -19
  62. package/eng/scripts/ci/run_pyright.py +9 -5
  63. package/eng/scripts/ci/run_sphinx_build.py +24 -9
  64. package/eng/scripts/ci/typecheck.ts +225 -0
  65. package/eng/scripts/ci/util.py +61 -25
  66. package/eng/scripts/ci/utils.ts +5 -5
  67. package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
  68. package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
  69. package/eng/scripts/setup/build.ts +1 -1
  70. package/eng/scripts/setup/build_pygen_wheel.py +4 -3
  71. package/eng/scripts/setup/install.py +4 -3
  72. package/eng/scripts/setup/install.ts +1 -1
  73. package/eng/scripts/setup/prepare.py +3 -2
  74. package/eng/scripts/setup/prepare.ts +1 -1
  75. package/eng/scripts/setup/run-python3.ts +1 -1
  76. package/eng/scripts/setup/run_batch.py +197 -0
  77. package/eng/scripts/setup/run_tsp.py +3 -3
  78. package/eng/scripts/setup/system-requirements.ts +8 -4
  79. package/eng/scripts/setup/venvtools.py +1 -1
  80. package/generator/build/lib/pygen/__init__.py +1 -3
  81. package/generator/build/lib/pygen/codegen/__init__.py +0 -1
  82. package/generator/build/lib/pygen/codegen/models/base.py +0 -1
  83. package/generator/build/lib/pygen/codegen/models/client.py +2 -1
  84. package/generator/build/lib/pygen/codegen/models/code_model.py +1 -0
  85. package/generator/build/lib/pygen/codegen/models/enum_type.py +0 -1
  86. package/generator/build/lib/pygen/codegen/models/model_type.py +1 -7
  87. package/generator/build/lib/pygen/codegen/models/parameter.py +16 -14
  88. package/generator/build/lib/pygen/codegen/serializers/__init__.py +27 -12
  89. package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +12 -3
  90. package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +6 -2
  91. package/generator/build/lib/pygen/codegen/serializers/import_serializer.py +17 -4
  92. package/generator/build/lib/pygen/codegen/serializers/parameter_serializer.py +17 -11
  93. package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +176 -71
  94. package/generator/build/lib/pygen/codegen/templates/packaging_templates/README.md.jinja2 +11 -3
  95. package/generator/build/lib/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +1 -1
  96. package/generator/build/lib/pygen/codegen/templates/serialization.py.jinja2 +5 -1
  97. package/generator/build/lib/pygen/preprocess/__init__.py +37 -30
  98. package/generator/component-detection-pip-report.json +7 -7
  99. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  100. package/generator/pygen/__init__.py +1 -3
  101. package/generator/pygen/codegen/__init__.py +0 -1
  102. package/generator/pygen/codegen/models/base.py +0 -1
  103. package/generator/pygen/codegen/models/client.py +2 -1
  104. package/generator/pygen/codegen/models/code_model.py +1 -0
  105. package/generator/pygen/codegen/models/enum_type.py +0 -1
  106. package/generator/pygen/codegen/models/model_type.py +1 -7
  107. package/generator/pygen/codegen/models/parameter.py +16 -14
  108. package/generator/pygen/codegen/serializers/__init__.py +27 -12
  109. package/generator/pygen/codegen/serializers/builder_serializer.py +12 -3
  110. package/generator/pygen/codegen/serializers/general_serializer.py +6 -2
  111. package/generator/pygen/codegen/serializers/import_serializer.py +17 -4
  112. package/generator/pygen/codegen/serializers/parameter_serializer.py +17 -11
  113. package/generator/pygen/codegen/templates/model_base.py.jinja2 +176 -71
  114. package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +11 -3
  115. package/generator/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +1 -1
  116. package/generator/pygen/codegen/templates/serialization.py.jinja2 +5 -1
  117. package/generator/pygen/preprocess/__init__.py +37 -30
  118. package/generator/pygen.egg-info/PKG-INFO +1 -2
  119. package/generator/pygen.egg-info/requires.txt +1 -1
  120. package/generator/setup.py +1 -2
  121. package/package.json +63 -42
  122. package/eng/scripts/ci/run-ci.ts +0 -89
  123. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_commonproperties_async.py +0 -94
  124. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_largeheader_async.py +0 -30
  125. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_nonresource_async.py +0 -36
  126. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_operationtemplates_async.py +0 -205
  127. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_resource_async.py +0 -478
  128. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +0 -101
  129. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_header_async.py +0 -18
  130. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_path_async.py +0 -18
  131. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_query_async.py +0 -18
  132. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +0 -46
  133. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +0 -58
  134. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +0 -82
  135. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_deserialize_empty_string_as_null_async.py +0 -20
  136. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +0 -115
  137. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_hierrarchy_building_async.py +0 -53
  138. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +0 -28
  139. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_override_async.py +0 -106
  140. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +0 -38
  141. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +0 -76
  142. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +0 -22
  143. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +0 -39
  144. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +0 -33
  145. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +0 -80
  146. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +0 -41
  147. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +0 -87
  148. package/generator/test/azure/mock_api_tests/asynctests/test_azure_encode_duration_async.py +0 -19
  149. package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +0 -30
  150. package/generator/test/azure/mock_api_tests/asynctests/test_azure_payload_pageable_async.py +0 -19
  151. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py +0 -248
  152. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +0 -110
  153. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_shared_models_async.py +0 -132
  154. package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +0 -30
  155. package/generator/test/azure/mock_api_tests/asynctests/test_azure_versioning_previewversion_async.py +0 -53
  156. package/generator/test/azure/mock_api_tests/asynctests/test_client_namespace_async.py +0 -34
  157. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py +0 -69
  158. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_enum_conflict_async.py +0 -37
  159. package/generator/test/azure/mock_api_tests/asynctests/test_client_overload_async.py +0 -27
  160. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +0 -64
  161. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +0 -31
  162. package/generator/test/azure/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  163. package/generator/test/azure/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  164. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  165. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  166. package/generator/test/azure/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  167. package/generator/test/azure/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -216
  168. package/generator/test/azure/mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +0 -130
  169. package/generator/test/azure/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  170. package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +0 -31
  171. package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +0 -71
  172. package/generator/test/azure/mock_api_tests/conftest.py +0 -207
  173. package/generator/test/azure/mock_api_tests/data/image.jpg +0 -0
  174. package/generator/test/azure/mock_api_tests/data/image.png +0 -0
  175. package/generator/test/azure/mock_api_tests/test_azure_arm_commonproperties.py +0 -89
  176. package/generator/test/azure/mock_api_tests/test_azure_arm_largeheader.py +0 -27
  177. package/generator/test/azure/mock_api_tests/test_azure_arm_nonresource.py +0 -34
  178. package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +0 -180
  179. package/generator/test/azure/mock_api_tests/test_azure_arm_resource.py +0 -436
  180. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +0 -92
  181. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_header.py +0 -17
  182. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_path.py +0 -17
  183. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_query.py +0 -17
  184. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +0 -42
  185. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +0 -51
  186. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +0 -70
  187. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_deserialize_empty_string_as_null.py +0 -19
  188. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +0 -104
  189. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_hierrarchy_building.py +0 -45
  190. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +0 -27
  191. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_override.py +0 -102
  192. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +0 -32
  193. package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +0 -70
  194. package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +0 -20
  195. package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +0 -32
  196. package/generator/test/azure/mock_api_tests/test_azure_core_model.py +0 -30
  197. package/generator/test/azure/mock_api_tests/test_azure_core_page.py +0 -71
  198. package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +0 -35
  199. package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +0 -85
  200. package/generator/test/azure/mock_api_tests/test_azure_encode_duration.py +0 -18
  201. package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +0 -29
  202. package/generator/test/azure/mock_api_tests/test_azure_payload_pageable.py +0 -18
  203. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +0 -235
  204. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +0 -104
  205. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service_shared_models.py +0 -128
  206. package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +0 -29
  207. package/generator/test/azure/mock_api_tests/test_azure_versioning_previewversion.py +0 -50
  208. package/generator/test/azure/mock_api_tests/test_clear_output_folder.py +0 -23
  209. package/generator/test/azure/mock_api_tests/test_client_namespace.py +0 -32
  210. package/generator/test/azure/mock_api_tests/test_client_naming.py +0 -57
  211. package/generator/test/azure/mock_api_tests/test_client_naming_enum_conflict.py +0 -35
  212. package/generator/test/azure/mock_api_tests/test_client_overload.py +0 -25
  213. package/generator/test/azure/mock_api_tests/test_client_structure.py +0 -60
  214. package/generator/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +0 -29
  215. package/generator/test/azure/mock_api_tests/test_encode_duration.py +0 -60
  216. package/generator/test/azure/mock_api_tests/test_encode_numeric.py +0 -31
  217. package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +0 -251
  218. package/generator/test/azure/mock_api_tests/test_parameters_basic.py +0 -22
  219. package/generator/test/azure/mock_api_tests/test_parameters_spread.py +0 -66
  220. package/generator/test/azure/mock_api_tests/test_payload_content_negotiation.py +0 -33
  221. package/generator/test/azure/mock_api_tests/test_payload_multipart.py +0 -198
  222. package/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py +0 -124
  223. package/generator/test/azure/mock_api_tests/test_serialization_encoded_name_json.py +0 -21
  224. package/generator/test/azure/mock_api_tests/test_service_multi_service.py +0 -29
  225. package/generator/test/azure/mock_api_tests/test_special_words.py +0 -63
  226. package/generator/test/azure/requirements.txt +0 -125
  227. package/generator/test/azure/tox.ini +0 -64
  228. package/generator/test/data/image.jpg +0 -0
  229. package/generator/test/data/image.png +0 -0
  230. package/generator/test/dev_requirements.txt +0 -8
  231. package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +0 -140
  232. package/generator/test/generic_mock_api_tests/asynctests/test_encode_array_async.py +0 -139
  233. package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -132
  234. package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +0 -127
  235. package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +0 -35
  236. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +0 -30
  237. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +0 -38
  238. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +0 -24
  239. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +0 -18
  240. package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +0 -98
  241. package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +0 -27
  242. package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +0 -134
  243. package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +0 -150
  244. package/generator/test/generic_mock_api_tests/asynctests/test_response_status_code_range_async.py +0 -38
  245. package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +0 -331
  246. package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +0 -18
  247. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +0 -25
  248. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +0 -18
  249. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +0 -28
  250. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +0 -34
  251. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +0 -38
  252. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +0 -19
  253. package/generator/test/generic_mock_api_tests/asynctests/test_specs_documentation_async.py +0 -59
  254. package/generator/test/generic_mock_api_tests/asynctests/test_streaming_jsonl_async.py +0 -27
  255. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +0 -127
  256. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +0 -98
  257. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +0 -25
  258. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +0 -27
  259. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_file_async.py +0 -59
  260. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +0 -32
  261. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +0 -70
  262. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +0 -85
  263. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +0 -34
  264. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +0 -34
  265. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +0 -67
  266. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +0 -32
  267. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +0 -47
  268. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +0 -353
  269. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +0 -110
  270. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +0 -197
  271. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +0 -315
  272. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +0 -60
  273. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +0 -90
  274. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +0 -36
  275. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +0 -21
  276. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +0 -39
  277. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +0 -29
  278. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +0 -18
  279. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +0 -22
  280. package/generator/test/generic_mock_api_tests/conftest.py +0 -75
  281. package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
  282. package/generator/test/generic_mock_api_tests/data/image.png +0 -0
  283. package/generator/test/generic_mock_api_tests/test_authentication.py +0 -130
  284. package/generator/test/generic_mock_api_tests/test_encode_array.py +0 -126
  285. package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -128
  286. package/generator/test/generic_mock_api_tests/test_encode_datetime.py +0 -123
  287. package/generator/test/generic_mock_api_tests/test_headasboolean.py +0 -33
  288. package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +0 -27
  289. package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +0 -33
  290. package/generator/test/generic_mock_api_tests/test_parameters_path.py +0 -22
  291. package/generator/test/generic_mock_api_tests/test_parameters_query.py +0 -17
  292. package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +0 -93
  293. package/generator/test/generic_mock_api_tests/test_payload_media_type.py +0 -25
  294. package/generator/test/generic_mock_api_tests/test_payload_pageable.py +0 -99
  295. package/generator/test/generic_mock_api_tests/test_payload_xml.py +0 -135
  296. package/generator/test/generic_mock_api_tests/test_response_status_code_range.py +0 -36
  297. package/generator/test/generic_mock_api_tests/test_routes.py +0 -285
  298. package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +0 -17
  299. package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +0 -21
  300. package/generator/test/generic_mock_api_tests/test_server_path_single.py +0 -17
  301. package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +0 -25
  302. package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +0 -30
  303. package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +0 -34
  304. package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +0 -18
  305. package/generator/test/generic_mock_api_tests/test_specs_documentation.py +0 -51
  306. package/generator/test/generic_mock_api_tests/test_streaming_jsonl.py +0 -25
  307. package/generator/test/generic_mock_api_tests/test_typetest_array.py +0 -111
  308. package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +0 -86
  309. package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +0 -23
  310. package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +0 -25
  311. package/generator/test/generic_mock_api_tests/test_typetest_file.py +0 -52
  312. package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +0 -29
  313. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +0 -58
  314. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +0 -79
  315. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +0 -31
  316. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +0 -32
  317. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +0 -60
  318. package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +0 -28
  319. package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +0 -40
  320. package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +0 -314
  321. package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +0 -102
  322. package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +0 -174
  323. package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +0 -286
  324. package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -53
  325. package/generator/test/generic_mock_api_tests/test_typetest_union.py +0 -80
  326. package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +0 -290
  327. package/generator/test/generic_mock_api_tests/test_versioning_added.py +0 -33
  328. package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +0 -20
  329. package/generator/test/generic_mock_api_tests/test_versioning_removed.py +0 -37
  330. package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +0 -27
  331. package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +0 -17
  332. package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +0 -21
  333. package/generator/test/unbranded/mock_api_tests/asynctests/test_auth_flow_async.py +0 -19
  334. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  335. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  336. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  337. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  338. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  339. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -218
  340. package/generator/test/unbranded/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  341. package/generator/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +0 -73
  342. package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +0 -24
  343. package/generator/test/unbranded/mock_api_tests/conftest.py +0 -91
  344. package/generator/test/unbranded/mock_api_tests/data/image.jpg +0 -0
  345. package/generator/test/unbranded/mock_api_tests/data/image.png +0 -0
  346. package/generator/test/unbranded/mock_api_tests/test_auth_flow.py +0 -17
  347. package/generator/test/unbranded/mock_api_tests/test_encode_duration.py +0 -60
  348. package/generator/test/unbranded/mock_api_tests/test_encode_numeric.py +0 -32
  349. package/generator/test/unbranded/mock_api_tests/test_parameters_basic.py +0 -22
  350. package/generator/test/unbranded/mock_api_tests/test_parameters_spread.py +0 -66
  351. package/generator/test/unbranded/mock_api_tests/test_payload_content_negotiation.py +0 -33
  352. package/generator/test/unbranded/mock_api_tests/test_payload_multipart.py +0 -200
  353. package/generator/test/unbranded/mock_api_tests/test_serialization_encoded_name_json.py +0 -22
  354. package/generator/test/unbranded/mock_api_tests/test_special_words.py +0 -66
  355. package/generator/test/unbranded/mock_api_tests/test_unbranded.py +0 -65
  356. package/generator/test/unbranded/requirements.txt +0 -69
  357. package/generator/test/unbranded/tox.ini +0 -64
  358. package/generator/test/unittests/conftest.py +0 -15
  359. package/generator/test/unittests/requirements.txt +0 -3
  360. package/generator/test/unittests/test_enums.py +0 -89
  361. package/generator/test/unittests/test_model_base_serialization.py +0 -4906
  362. package/generator/test/unittests/test_model_base_xml_serialization.py +0 -1239
  363. package/generator/test/unittests/test_name_converter.py +0 -35
  364. package/generator/test/unittests/test_optional_return_type.py +0 -268
  365. package/generator/test/unittests/test_parameter_ordering.py +0 -104
  366. package/generator/test/unittests/test_sort_schema.py +0 -93
  367. package/generator/test/unittests/tox.ini +0 -5
  368. /package/eng/scripts/ci/{pyproject.toml → config/pyproject.toml} +0 -0
@@ -1,80 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from typing import AsyncIterable
8
- from specs.azure.core.page import models, aio
9
-
10
- VALID_USER = models.User(id=1, name="Madge", etag="11bdc430-65e8-45ad-81d9-8ffa60d55b59")
11
-
12
-
13
- @pytest.fixture
14
- async def client():
15
- async with aio.PageClient() as client:
16
- yield client
17
-
18
-
19
- async def _list_with_page_tests(pager: AsyncIterable[models.User]):
20
- result = [p async for p in pager]
21
- assert len(result) == 1
22
- assert result[0].id == 1
23
- assert result[0].name == "Madge"
24
- assert result[0].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
25
- assert result[0].orders is None
26
-
27
-
28
- @pytest.mark.asyncio
29
- async def test_list_with_page(client: aio.PageClient):
30
- await _list_with_page_tests(client.list_with_page())
31
-
32
-
33
- @pytest.mark.asyncio
34
- async def test_list_with_custom_page_model(client: aio.PageClient):
35
- await _list_with_page_tests(client.list_with_custom_page_model())
36
- with pytest.raises(AttributeError):
37
- models.CustomPageModel
38
-
39
-
40
- @pytest.mark.asyncio
41
- async def test_list_with_parameters(client: aio.PageClient):
42
- result = [
43
- item
44
- async for item in client.list_with_parameters(models.ListItemInputBody(input_name="Madge"), another="Second")
45
- ]
46
- assert len(result) == 1
47
- assert result[0] == VALID_USER
48
-
49
-
50
- @pytest.mark.asyncio
51
- async def test_two_models_as_page_item(client: aio.PageClient):
52
- result = [item async for item in client.two_models_as_page_item.list_first_item()]
53
- assert len(result) == 1
54
- assert result[0].id == 1
55
-
56
- result = [item async for item in client.two_models_as_page_item.list_second_item()]
57
- assert len(result) == 1
58
- assert result[0].name == "Madge"
59
-
60
-
61
- @pytest.mark.asyncio
62
- async def test_list_with_parameterized_next_link(client: aio.PageClient):
63
- result = [item async for item in client.with_parameterized_next_link(select="name", include_pending=True)]
64
- assert len(result) == 2
65
- assert result[0].id == 1
66
- assert result[0].name == "User1"
67
- assert result[1].id == 2
68
- assert result[1].name == "User2"
69
-
70
-
71
- @pytest.mark.asyncio
72
- async def test_list_with_relative_next_link(client: aio.PageClient):
73
- result = [item async for item in client.with_relative_next_link()]
74
- assert len(result) == 2
75
- assert result[0].id == 1
76
- assert result[0].name == "User1"
77
- assert result[0].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
78
- assert result[1].id == 2
79
- assert result[1].name == "User2"
80
- assert result[1].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
@@ -1,41 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from specs.azure.core.scalar.aio import ScalarClient
8
- from specs.azure.core.scalar import models
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with ScalarClient() as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_azure_location_scalar_get(client: ScalarClient):
19
- result = await client.azure_location_scalar.get()
20
- assert result == "eastus"
21
-
22
-
23
- @pytest.mark.asyncio
24
- async def test_azure_location_scalar_put(client: ScalarClient):
25
- await client.azure_location_scalar.put("eastus")
26
-
27
-
28
- @pytest.mark.asyncio
29
- async def test_azure_location_scalar_post(client: ScalarClient):
30
- result = await client.azure_location_scalar.post(models.AzureLocationModel(location="eastus"))
31
- assert result == models.AzureLocationModel(location="eastus")
32
-
33
-
34
- @pytest.mark.asyncio
35
- async def test_azure_location_scalar_header(client: ScalarClient):
36
- await client.azure_location_scalar.header(region="eastus")
37
-
38
-
39
- @pytest.mark.asyncio
40
- async def test_azure_location_scalar_query(client: ScalarClient):
41
- await client.azure_location_scalar.query(region="eastus")
@@ -1,87 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import functools
7
- from datetime import datetime
8
-
9
- import pytest
10
- from azure.core.exceptions import HttpResponseError
11
- from azure.core import MatchConditions
12
- from specs.azure.core.traits.aio import TraitsClient
13
- from specs.azure.core.traits.models import UserActionParam
14
-
15
-
16
- @pytest.fixture
17
- async def client():
18
- async with TraitsClient() as client:
19
- yield client
20
-
21
-
22
- @pytest.mark.asyncio
23
- async def test_get(client: TraitsClient, check_client_request_id_header):
24
- async def assert_test_get(**kwargs):
25
- checked = {}
26
- result, header = await client.smoke_test(
27
- id=1,
28
- foo="123",
29
- if_unmodified_since=datetime(year=2022, month=8, day=26, hour=14, minute=38, second=0),
30
- if_modified_since=datetime(year=2021, month=8, day=26, hour=14, minute=38, second=0),
31
- cls=lambda x, y, z: (y, z),
32
- raw_request_hook=functools.partial(
33
- check_client_request_id_header, header="x-ms-client-request-id", checked=checked
34
- ),
35
- **kwargs,
36
- )
37
- assert result.id == 1
38
- assert result.name == "Madge"
39
- assert header["ETag"] == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
40
- assert header["bar"] == "456"
41
- assert header["x-ms-client-request-id"] == checked["x-ms-client-request-id"]
42
-
43
- await assert_test_get(etag="valid", match_condition=MatchConditions.IfNotModified)
44
- await assert_test_get(etag="invalid", match_condition=MatchConditions.IfModified)
45
- with pytest.raises(HttpResponseError):
46
- await assert_test_get()
47
-
48
-
49
- @pytest.mark.asyncio
50
- async def test_repeatable_action(client: TraitsClient, check_repeatability_header):
51
- result, header = await client.repeatable_action(
52
- id=1,
53
- body=UserActionParam(user_action_value="test"),
54
- cls=lambda x, y, z: (y, z),
55
- raw_request_hook=check_repeatability_header,
56
- )
57
- assert result.user_action_result == "test"
58
- assert header["Repeatability-Result"] == "accepted"
59
-
60
- result, header = await client.repeatable_action(
61
- id=1,
62
- body=UserActionParam(user_action_value="test"),
63
- cls=lambda x, y, z: (y, z),
64
- headers={
65
- "Repeatability-Request-ID": "5942d803-e3fa-4f96-8f67-607d7bd607f5",
66
- "Repeatability-First-Sent": "Sun, 06 Nov 1994 08:49:37 GMT",
67
- },
68
- raw_request_hook=check_repeatability_header,
69
- )
70
- assert result.user_action_result == "test"
71
- assert header["Repeatability-Result"] == "accepted"
72
-
73
- with pytest.raises(HttpResponseError):
74
- await client.repeatable_action(
75
- id=1,
76
- body=UserActionParam(user_action_value="test"),
77
- cls=lambda x, y, z: (y, z),
78
- headers={"Repeatability-Request-ID": "wrong-id"},
79
- )
80
-
81
- with pytest.raises(HttpResponseError):
82
- await client.repeatable_action(
83
- id=1,
84
- body=UserActionParam(user_action_value="test"),
85
- cls=lambda x, y, z: (y, z),
86
- headers={"Repeatability-First-Sent": "wrong-datetime"},
87
- )
@@ -1,19 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from specs.azure.encode.duration.aio import DurationClient
8
- from specs.azure.encode.duration import models
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with DurationClient() as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_duration_constant(client: DurationClient):
19
- await client.duration_constant(models.DurationModel(input="1.02:59:59.5000000"))
@@ -1,30 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from specs.azure.example.basic.aio import AzureExampleClient
8
- from specs.azure.example.basic.models import ActionRequest, Model
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with AzureExampleClient() as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_basic_action(client: AzureExampleClient):
19
- body = ActionRequest(
20
- string_property="text",
21
- model_property=Model(int32_property=1, float32_property=1.5, enum_property="EnumValue1"),
22
- array_property=["item"],
23
- record_property={"record": "value"},
24
- )
25
- result = await client.basic_action(
26
- body=body,
27
- query_param="query",
28
- header_param="header",
29
- )
30
- assert result.string_property == body.string_property
@@ -1,19 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from specs.azure.payload.pageable.aio import PageableClient
8
-
9
-
10
- @pytest.fixture
11
- async def client():
12
- async with PageableClient(endpoint="http://localhost:3000") as client:
13
- yield client
14
-
15
-
16
- @pytest.mark.asyncio
17
- async def test_list(client: PageableClient):
18
- result = [p async for p in client.list(maxpagesize=3)]
19
- assert len(result) == 4
@@ -1,248 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from azure.resourcemanager.methodsubscriptionid.aio import MethodSubscriptionIdClient
8
- from azure.resourcemanager.methodsubscriptionid import models
9
-
10
- SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000"
11
- RESOURCE_GROUP_NAME = "test-rg"
12
-
13
-
14
- @pytest.fixture
15
- async def client(credential, authentication_policy):
16
- async with MethodSubscriptionIdClient(
17
- credential,
18
- SUBSCRIPTION_ID,
19
- "http://localhost:3000",
20
- authentication_policy=authentication_policy,
21
- ) as client:
22
- yield client
23
-
24
-
25
- @pytest.mark.asyncio
26
- async def test_operations_list(client):
27
- """Test Operations.list() endpoint."""
28
- operations = client.operations.list()
29
- operations_list = [op async for op in operations]
30
- assert len(operations_list) > 0
31
-
32
- operation = operations_list[0]
33
- assert operation.name == "Azure.ResourceManager.MethodSubscriptionId/services/read"
34
- assert operation.is_data_action is False
35
- assert operation.display.provider == "Azure.ResourceManager.MethodSubscriptionId"
36
- assert operation.display.resource == "services"
37
- assert operation.display.operation == "Lists services"
38
- assert operation.display.description == "Lists registered services"
39
-
40
-
41
- @pytest.mark.asyncio
42
- async def test_two_subscription_resources_method_level_subscription_resource1_operations_get(client):
43
- """Test get operation for SubscriptionResource1 with method-level subscription ID."""
44
- result = await client.two_subscription_resources_method_level.subscription_resource1_operations.get(
45
- subscription_id=SUBSCRIPTION_ID,
46
- subscription_resource1_name="sub-resource-1",
47
- )
48
-
49
- assert (
50
- result.id
51
- == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1"
52
- )
53
- assert result.name == "sub-resource-1"
54
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s"
55
- assert result.properties.description == "Valid subscription resource 1"
56
- assert result.properties.provisioning_state == "Succeeded"
57
- assert result.system_data.created_by == "AzureSDK"
58
-
59
-
60
- @pytest.mark.asyncio
61
- async def test_two_subscription_resources_method_level_subscription_resource1_operations_put(client):
62
- """Test put operation for SubscriptionResource1 with method-level subscription ID."""
63
- resource = models.SubscriptionResource1(
64
- properties=models.SubscriptionResource1Properties(description="Valid subscription resource 1")
65
- )
66
-
67
- result = await client.two_subscription_resources_method_level.subscription_resource1_operations.put(
68
- subscription_id=SUBSCRIPTION_ID,
69
- subscription_resource1_name="sub-resource-1",
70
- resource=resource,
71
- )
72
-
73
- assert (
74
- result.id
75
- == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s/sub-resource-1"
76
- )
77
- assert result.name == "sub-resource-1"
78
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource1s"
79
- assert result.properties.description == "Valid subscription resource 1"
80
- assert result.properties.provisioning_state == "Succeeded"
81
- assert result.system_data.created_by == "AzureSDK"
82
-
83
-
84
- @pytest.mark.asyncio
85
- async def test_two_subscription_resources_method_level_subscription_resource1_operations_delete(client):
86
- """Test delete operation for SubscriptionResource1 with method-level subscription ID."""
87
- await client.two_subscription_resources_method_level.subscription_resource1_operations.delete(
88
- subscription_id=SUBSCRIPTION_ID,
89
- subscription_resource1_name="sub-resource-1",
90
- )
91
-
92
-
93
- @pytest.mark.asyncio
94
- async def test_two_subscription_resources_method_level_subscription_resource2_operations_get(client):
95
- """Test get operation for SubscriptionResource2 with method-level subscription ID."""
96
- result = await client.two_subscription_resources_method_level.subscription_resource2_operations.get(
97
- subscription_id=SUBSCRIPTION_ID,
98
- subscription_resource2_name="sub-resource-2",
99
- )
100
-
101
- assert (
102
- result.id
103
- == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2"
104
- )
105
- assert result.name == "sub-resource-2"
106
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s"
107
- assert result.properties.config_value == "test-config"
108
- assert result.properties.provisioning_state == "Succeeded"
109
- assert result.system_data.created_by == "AzureSDK"
110
-
111
-
112
- @pytest.mark.asyncio
113
- async def test_two_subscription_resources_method_level_subscription_resource2_operations_put(client):
114
- """Test put operation for SubscriptionResource2 with method-level subscription ID."""
115
- resource = models.SubscriptionResource2(
116
- properties=models.SubscriptionResource2Properties(config_value="test-config")
117
- )
118
-
119
- result = await client.two_subscription_resources_method_level.subscription_resource2_operations.put(
120
- subscription_id=SUBSCRIPTION_ID,
121
- subscription_resource2_name="sub-resource-2",
122
- resource=resource,
123
- )
124
-
125
- assert (
126
- result.id
127
- == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s/sub-resource-2"
128
- )
129
- assert result.name == "sub-resource-2"
130
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResource2s"
131
- assert result.properties.config_value == "test-config"
132
- assert result.properties.provisioning_state == "Succeeded"
133
- assert result.system_data.created_by == "AzureSDK"
134
-
135
-
136
- @pytest.mark.asyncio
137
- async def test_two_subscription_resources_method_level_subscription_resource2_operations_delete(client):
138
- """Test delete operation for SubscriptionResource2 with method-level subscription ID."""
139
- await client.two_subscription_resources_method_level.subscription_resource2_operations.delete(
140
- subscription_id=SUBSCRIPTION_ID,
141
- subscription_resource2_name="sub-resource-2",
142
- )
143
-
144
-
145
- @pytest.mark.asyncio
146
- async def test_mixed_subscription_placement_subscription_resource_operations_get(client):
147
- """Test get operation for SubscriptionResource in mixed placement scenario."""
148
- result = await client.mixed_subscription_placement.subscription_resource_operations.get(
149
- subscription_id=SUBSCRIPTION_ID,
150
- subscription_resource_name="sub-resource",
151
- )
152
-
153
- assert (
154
- result.id
155
- == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource"
156
- )
157
- assert result.name == "sub-resource"
158
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources"
159
- assert result.properties.subscription_setting == "test-sub-setting"
160
- assert result.properties.provisioning_state == "Succeeded"
161
- assert result.system_data.created_by == "AzureSDK"
162
-
163
-
164
- @pytest.mark.asyncio
165
- async def test_mixed_subscription_placement_subscription_resource_operations_put(client):
166
- """Test put operation for SubscriptionResource in mixed placement scenario."""
167
- resource = models.SubscriptionResource(
168
- properties=models.SubscriptionResourceProperties(subscription_setting="test-sub-setting")
169
- )
170
-
171
- result = await client.mixed_subscription_placement.subscription_resource_operations.put(
172
- subscription_id=SUBSCRIPTION_ID,
173
- subscription_resource_name="sub-resource",
174
- resource=resource,
175
- )
176
-
177
- assert (
178
- result.id
179
- == f"/subscriptions/{SUBSCRIPTION_ID}/providers/Azure.ResourceManager.MethodSubscriptionId/subscriptionResources/sub-resource"
180
- )
181
- assert result.name == "sub-resource"
182
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/subscriptionResources"
183
- assert result.properties.subscription_setting == "test-sub-setting"
184
- assert result.properties.provisioning_state == "Succeeded"
185
- assert result.system_data.created_by == "AzureSDK"
186
-
187
-
188
- @pytest.mark.asyncio
189
- async def test_mixed_subscription_placement_subscription_resource_operations_delete(client):
190
- """Test delete operation for SubscriptionResource in mixed placement scenario."""
191
- await client.mixed_subscription_placement.subscription_resource_operations.delete(
192
- subscription_id=SUBSCRIPTION_ID,
193
- subscription_resource_name="sub-resource",
194
- )
195
-
196
-
197
- @pytest.mark.asyncio
198
- async def test_mixed_subscription_placement_resource_group_resource_operations_get(client):
199
- """Test get operation for ResourceGroupResource with client-level subscription ID."""
200
- result = await client.mixed_subscription_placement.resource_group_resource_operations.get(
201
- resource_group_name=RESOURCE_GROUP_NAME,
202
- resource_group_resource_name="rg-resource",
203
- )
204
-
205
- assert (
206
- result.id
207
- == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource"
208
- )
209
- assert result.name == "rg-resource"
210
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources"
211
- assert result.location == "eastus"
212
- assert result.properties.resource_group_setting == "test-setting"
213
- assert result.properties.provisioning_state == "Succeeded"
214
- assert result.system_data.created_by == "AzureSDK"
215
-
216
-
217
- @pytest.mark.asyncio
218
- async def test_mixed_subscription_placement_resource_group_resource_operations_put(client):
219
- """Test put operation for ResourceGroupResource with client-level subscription ID."""
220
- resource = models.ResourceGroupResource(
221
- location="eastus", properties=models.ResourceGroupResourceProperties(resource_group_setting="test-setting")
222
- )
223
-
224
- result = await client.mixed_subscription_placement.resource_group_resource_operations.put(
225
- resource_group_name=RESOURCE_GROUP_NAME,
226
- resource_group_resource_name="rg-resource",
227
- resource=resource,
228
- )
229
-
230
- assert (
231
- result.id
232
- == f"/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP_NAME}/providers/Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources/rg-resource"
233
- )
234
- assert result.name == "rg-resource"
235
- assert result.type == "Azure.ResourceManager.MethodSubscriptionId/resourceGroupResources"
236
- assert result.location == "eastus"
237
- assert result.properties.resource_group_setting == "test-setting"
238
- assert result.properties.provisioning_state == "Succeeded"
239
- assert result.system_data.created_by == "AzureSDK"
240
-
241
-
242
- @pytest.mark.asyncio
243
- async def test_mixed_subscription_placement_resource_group_resource_operations_delete(client):
244
- """Test delete operation for ResourceGroupResource with client-level subscription ID."""
245
- await client.mixed_subscription_placement.resource_group_resource_operations.delete(
246
- resource_group_name=RESOURCE_GROUP_NAME,
247
- resource_group_resource_name="rg-resource",
248
- )
@@ -1,110 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import pytest
7
- from azure.core.exceptions import HttpResponseError
8
- from azure.resourcemanager.multiservice.combined.aio import CombinedClient
9
- from azure.resourcemanager.multiservice.combined.models import VirtualMachine, Disk
10
-
11
-
12
- @pytest.fixture
13
- async def client(credential, authentication_policy):
14
- """Create a Combined async client for testing."""
15
- return CombinedClient(
16
- credential=credential,
17
- subscription_id="00000000-0000-0000-0000-000000000000",
18
- base_url="http://localhost:3000",
19
- authentication_policy=authentication_policy,
20
- polling_interval=0.1, # Speed up tests by reducing polling interval
21
- )
22
-
23
-
24
- @pytest.mark.asyncio
25
- async def test_virtual_machines_get(client):
26
- resource_group_name = "test-rg"
27
- vm_name = "vm1"
28
-
29
- with pytest.raises(HttpResponseError):
30
- await client.virtual_machines.get(
31
- resource_group_name=resource_group_name,
32
- vm_name=vm_name,
33
- api_version="av1", # invalid api version shall raise error
34
- )
35
-
36
- result = await client.virtual_machines.get(resource_group_name=resource_group_name, vm_name=vm_name)
37
-
38
- assert result is not None
39
- assert isinstance(result, VirtualMachine)
40
- assert result.name == vm_name
41
-
42
-
43
- @pytest.mark.asyncio
44
- async def test_virtual_machines_create_or_update(client):
45
- resource_group_name = "test-rg"
46
- vm_name = "vm1"
47
-
48
- vm_resource = VirtualMachine(location="eastus", properties={})
49
-
50
- with pytest.raises(HttpResponseError):
51
- poller = await client.virtual_machines.begin_create_or_update(
52
- resource_group_name=resource_group_name,
53
- vm_name=vm_name,
54
- resource=vm_resource,
55
- api_version="av1", # invalid api version shall raise error
56
- )
57
- await poller.result()
58
-
59
- poller = await client.virtual_machines.begin_create_or_update(
60
- resource_group_name=resource_group_name, vm_name=vm_name, resource=vm_resource
61
- )
62
-
63
- result = await poller.result()
64
- assert result is not None
65
- assert isinstance(result, VirtualMachine)
66
- assert result.location == "eastus"
67
-
68
-
69
- @pytest.mark.asyncio
70
- async def test_disks_get(client):
71
- resource_group_name = "test-rg"
72
- disk_name = "disk1"
73
- with pytest.raises(HttpResponseError):
74
- await client.disks.get(
75
- resource_group_name=resource_group_name,
76
- disk_name=disk_name,
77
- api_version="av1", # invalid api version shall raise error
78
- )
79
-
80
- result = await client.disks.get(resource_group_name=resource_group_name, disk_name=disk_name)
81
-
82
- assert result is not None
83
- assert isinstance(result, Disk)
84
- assert result.name == disk_name
85
-
86
-
87
- @pytest.mark.asyncio
88
- async def test_disks_create_or_update(client):
89
- resource_group_name = "test-rg"
90
- disk_name = "disk1"
91
-
92
- disk_resource = Disk(location="eastus", properties={})
93
-
94
- with pytest.raises(HttpResponseError):
95
- poller = await client.disks.begin_create_or_update(
96
- resource_group_name=resource_group_name,
97
- disk_name=disk_name,
98
- resource=disk_resource,
99
- api_version="av1", # invalid api version shall raise error
100
- )
101
- await poller.result()
102
-
103
- poller = await client.disks.begin_create_or_update(
104
- resource_group_name=resource_group_name, disk_name=disk_name, resource=disk_resource
105
- )
106
-
107
- result = await poller.result()
108
- assert result is not None
109
- assert isinstance(result, Disk)
110
- assert result.location == "eastus"