@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,70 +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.clientgenerator.core.clientlocation.parameter import MoveMethodParameterToClient
8
- from specs.azure.clientgenerator.core.clientlocation.subclient import MoveToExistingSubClient
9
- from specs.azure.clientgenerator.core.clientlocation.newsubclient import MoveToNewSubClient
10
- from specs.azure.clientgenerator.core.clientlocation.rootclient import MoveToRootClient
11
-
12
-
13
- @pytest.fixture
14
- def move_method_parameter_to_client():
15
- with MoveMethodParameterToClient(storage_account="testaccount") as client:
16
- yield client
17
-
18
-
19
- @pytest.fixture
20
- def move_to_existing_sub_client():
21
- with MoveToExistingSubClient() as client:
22
- yield client
23
-
24
-
25
- @pytest.fixture
26
- def move_to_new_sub_client():
27
- with MoveToNewSubClient() as client:
28
- yield client
29
-
30
-
31
- @pytest.fixture
32
- def move_to_root_client():
33
- with MoveToRootClient() as client:
34
- yield client
35
-
36
-
37
- def test_move_method_parameter_to_client_blob_operations_get_blob(
38
- move_method_parameter_to_client: MoveMethodParameterToClient,
39
- ):
40
- move_method_parameter_to_client.blob_operations.get_blob(container="testcontainer", blob="testblob.txt")
41
-
42
-
43
- def test_move_to_existing_sub_client_user_operations_get_user(move_to_existing_sub_client: MoveToExistingSubClient):
44
- move_to_existing_sub_client.user_operations.get_user()
45
-
46
-
47
- def test_move_to_existing_sub_client_admin_operations_delete_user(move_to_existing_sub_client: MoveToExistingSubClient):
48
- move_to_existing_sub_client.admin_operations.delete_user()
49
-
50
-
51
- def test_move_to_existing_sub_client_admin_operations_get_admin_info(
52
- move_to_existing_sub_client: MoveToExistingSubClient,
53
- ):
54
- move_to_existing_sub_client.admin_operations.get_admin_info()
55
-
56
-
57
- def test_move_to_new_sub_client_product_operations_list_products(move_to_new_sub_client: MoveToNewSubClient):
58
- move_to_new_sub_client.product_operations.list_products()
59
-
60
-
61
- def test_move_to_new_sub_client_archive_operations_archive_product(move_to_new_sub_client: MoveToNewSubClient):
62
- move_to_new_sub_client.archive_operations.archive_product()
63
-
64
-
65
- def test_move_to_root_client_resource_operations_get_resource(move_to_root_client: MoveToRootClient):
66
- move_to_root_client.resource_operations.get_resource()
67
-
68
-
69
- def test_move_to_root_client_get_health_status(move_to_root_client: MoveToRootClient):
70
- move_to_root_client.get_health_status()
@@ -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.clientgenerator.core.emptystring import DeserializeEmptyStringAsNullClient
8
- from specs.azure.clientgenerator.core.emptystring import models
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with DeserializeEmptyStringAsNullClient() as client:
14
- yield client
15
-
16
-
17
- def test_get(client: DeserializeEmptyStringAsNullClient):
18
- result = client.get()
19
- assert result == models.ResponseModel(sample_url="")
@@ -1,104 +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.clientgenerator.core.flattenproperty import FlattenPropertyClient
8
- from specs.azure.clientgenerator.core.flattenproperty.models import (
9
- ChildFlattenModel,
10
- ChildModel,
11
- FlattenModel,
12
- FlattenUnknownModel,
13
- NestedFlattenModel,
14
- Solution,
15
- SolutionProperties,
16
- )
17
-
18
-
19
- @pytest.fixture
20
- def client():
21
- with FlattenPropertyClient() as client:
22
- yield client
23
-
24
-
25
- # ========== test for spector ==========
26
-
27
-
28
- def test_put_flatten_model(client: FlattenPropertyClient):
29
- resp = FlattenModel(name="test", properties=ChildModel(age=1, description="test"))
30
- assert client.put_flatten_model(FlattenModel(name="foo", properties=ChildModel(age=10, description="bar"))) == resp
31
- assert client.put_flatten_model(FlattenModel(name="foo", age=10, description="bar")) == resp
32
-
33
-
34
- def test_put_nested_flatten_model(client: FlattenPropertyClient):
35
- # python doesn't support nested flatten model
36
- assert client.put_nested_flatten_model(
37
- NestedFlattenModel(
38
- name="foo",
39
- properties=ChildFlattenModel(summary="bar", properties=ChildModel(age=10, description="test")),
40
- )
41
- ) == NestedFlattenModel(
42
- name="test",
43
- properties=ChildFlattenModel(summary="test", properties=ChildModel(age=1, description="foo")),
44
- )
45
-
46
-
47
- def test_put_flatten_unknown_model(client: FlattenPropertyClient):
48
- result = client.put_flatten_unknown_model(FlattenUnknownModel(name="foo"))
49
- assert result.name == "test"
50
- assert result.properties == {"key1": "value1", "key2": "value2"}
51
-
52
-
53
- def test_put_flatten_read_only_model(client: FlattenPropertyClient):
54
- result = client.put_flatten_read_only_model(Solution(name="foo"))
55
- assert result == Solution(
56
- name="foo",
57
- properties=SolutionProperties(solution_id="solution1", title="Solution Title", content="Solution Content"),
58
- )
59
- assert result.solution_id == "solution1"
60
- assert result.title == "Solution Title"
61
- assert result.content == "Solution Content"
62
-
63
-
64
- # ============test for compatibility ============
65
- def test_dpg_model_common():
66
- flatten_model = FlattenModel(name="hello", properties=ChildModel(age=0, description="test"))
67
- assert flatten_model.name == "hello"
68
- assert flatten_model.properties.age == 0
69
- assert flatten_model.properties.description == "test"
70
-
71
-
72
- def test_dpg_model_none():
73
- flatten_model = FlattenModel()
74
- assert flatten_model.name is None
75
- assert flatten_model.properties is None
76
- assert flatten_model.age is None
77
- assert flatten_model.description is None
78
-
79
-
80
- def test_dpg_model_compatibility():
81
- flatten_model = FlattenModel(description="test", age=0)
82
- assert flatten_model.description == "test"
83
- assert flatten_model.age == 0
84
- assert flatten_model.properties.description == "test"
85
- assert flatten_model.properties.age == 0
86
-
87
-
88
- def test_dpg_model_setattr():
89
- flatten_model = FlattenModel()
90
-
91
- flatten_model.age = 0
92
- assert flatten_model.properties.age == 0
93
- flatten_model.description = "test"
94
- assert flatten_model.properties.description == "test"
95
-
96
- flatten_model.properties.age = 1
97
- assert flatten_model.age == 1
98
- flatten_model.properties.description = "test2"
99
- assert flatten_model.description == "test2"
100
-
101
-
102
- def test_dpg_model_exception():
103
- with pytest.raises(AttributeError):
104
- FlattenModel().no_prop
@@ -1,45 +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.clientgenerator.core.hierarchybuilding import HierarchyBuildingClient
8
- from specs.azure.clientgenerator.core.hierarchybuilding.models import (
9
- Pet,
10
- Dog,
11
- )
12
-
13
-
14
- @pytest.fixture
15
- def client():
16
- with HierarchyBuildingClient() as client:
17
- yield client
18
-
19
-
20
- # ========== test for spector ==========
21
-
22
-
23
- def test_update_pet_as_pet(client: HierarchyBuildingClient):
24
- resp = Pet(name="Buddy", trained=True)
25
- assert client.pet_operations.update_pet_as_pet(Pet(name="Buddy", trained=True)) == resp
26
-
27
-
28
- def test_update_dog_as_pet(client: HierarchyBuildingClient):
29
- resp = Dog(name="Rex", trained=True, breed="German Shepherd")
30
- assert client.pet_operations.update_dog_as_pet(Dog(name="Rex", trained=True, breed="German Shepherd")) == resp
31
-
32
-
33
- def test_update_pet_as_animal(client: HierarchyBuildingClient):
34
- resp = Pet(name="Buddy", trained=True)
35
- assert client.animal_operations.update_pet_as_animal(Pet(name="Buddy", trained=True)) == resp
36
-
37
-
38
- def test_update_dog_as_animal(client: HierarchyBuildingClient):
39
- resp = Dog(name="Rex", trained=True, breed="German Shepherd")
40
- assert client.animal_operations.update_dog_as_animal(Dog(name="Rex", trained=True, breed="German Shepherd")) == resp
41
-
42
-
43
- def test_update_dog_as_dog(client: HierarchyBuildingClient):
44
- resp = Dog(name="Rex", trained=True, breed="German Shepherd")
45
- assert client.dog_operations.update_dog_as_dog(Dog(name="Rex", trained=True, breed="German Shepherd")) == resp
@@ -1,27 +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
-
8
- from specs.azure.clientgenerator.core.nextlinkverb import NextLinkVerbClient
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with NextLinkVerbClient(endpoint="http://localhost:3000") as client:
14
- yield client
15
-
16
-
17
- def assert_items(items):
18
- items = list(items)
19
- assert len(items) == 2
20
- assert items[0].id == "test1"
21
- assert items[1].id == "test2"
22
-
23
-
24
- def test_list_items_next_link_verb(client: NextLinkVerbClient):
25
- # The operation uses POST for nextLink per @nextLinkVerb
26
- pager = client.list_items()
27
- assert_items(pager)
@@ -1,102 +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 inspect
7
- import pytest
8
- from specs.azure.clientgenerator.core.override import OverrideClient
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with OverrideClient() as client:
14
- yield client
15
-
16
-
17
- def test_reorder_parameters(client: OverrideClient):
18
- client.reorder_parameters.reorder("param1", "param2")
19
-
20
-
21
- def test_group_parameters(client: OverrideClient):
22
- client.group_parameters.group(param1="param1", param2="param2")
23
-
24
-
25
- def test_require_optional_parameter(client: OverrideClient):
26
- client.require_optional_parameter.require_optional("param1", "param2")
27
-
28
-
29
- def test_remove_optional_parameter(client: OverrideClient):
30
- # Test with optional param2 provided
31
- client.remove_optional_parameter.remove_optional("param1", param2="param2")
32
-
33
-
34
- # make sure signature name of `reorder_parameters` are ["param1", "param2"]
35
- def test_reorder_parameters_unit(client: OverrideClient):
36
- # Get the reorder method from the reorder_parameters operation
37
- reorder_method = client.reorder_parameters.reorder
38
-
39
- # Inspect the method signature
40
- sig = inspect.signature(reorder_method)
41
-
42
- # Get parameter names excluding 'self' and '**kwargs'
43
- param_names = [
44
- param_name
45
- for param_name, param in sig.parameters.items()
46
- if param_name not in ("self", "kwargs") and param.kind != param.VAR_KEYWORD
47
- ]
48
-
49
- # Assert that the parameter names are exactly ["param1", "param2"]
50
- assert param_names == ["param1", "param2"], f"Expected parameter names ['param1', 'param2'], but got {param_names}"
51
-
52
-
53
- def test_require_optional_parameter_signature(client: OverrideClient):
54
- # Get the require_optional method
55
- require_optional_method = client.require_optional_parameter.require_optional
56
-
57
- # Inspect the method signature
58
- sig = inspect.signature(require_optional_method)
59
-
60
- # Get parameter details
61
- params = sig.parameters
62
-
63
- # Check that both param1 and param2 are required (no default values)
64
- assert "param1" in params, "param1 should be present in signature"
65
- assert "param2" in params, "param2 should be present in signature"
66
- assert params["param1"].default == params["param1"].empty, "param1 should have no default value"
67
- assert params["param2"].default == params["param2"].empty, "param2 should have no default value"
68
-
69
-
70
- def test_remove_optional_parameter_signature(client: OverrideClient):
71
- """Test that remove_optional_parameter.remove_optional method signature has correct parameters.
72
-
73
- The @override decorator should remove some optional parameters from the method signature.
74
- Only param1 (required) and param2 (optional) should remain.
75
- """
76
- # Get the remove_optional method
77
- remove_optional_method = client.remove_optional_parameter.remove_optional
78
-
79
- # Inspect the method signature
80
- sig = inspect.signature(remove_optional_method)
81
-
82
- # Get parameter names excluding 'self' and '**kwargs'
83
- param_names = [
84
- param_name
85
- for param_name, param in sig.parameters.items()
86
- if param_name not in ("self", "kwargs") and param.kind != param.VAR_KEYWORD
87
- ]
88
-
89
- # Should have param1 (required) and param2 (keyword-only optional)
90
- assert "param1" in param_names, "param1 should be present in signature"
91
- assert "param2" in sig.parameters, "param2 should be present in signature"
92
-
93
- # param1 should be required (positional)
94
- assert sig.parameters["param1"].default == sig.parameters["param1"].empty, "param1 should have no default value"
95
-
96
- # param2 should be optional keyword-only with None default
97
- assert sig.parameters["param2"].kind == sig.parameters["param2"].KEYWORD_ONLY, "param2 should be keyword-only"
98
- assert sig.parameters["param2"].default is None, "param2 should have None as default value"
99
-
100
- # param3 and param4 should be removed
101
- assert "param3" not in param_names, "param3 should not be present in signature"
102
- assert "param4" not in param_names, "param4 should not be present in signature"
@@ -1,32 +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.clientgenerator.core.usage import UsageClient
8
- from specs.azure.clientgenerator.core.usage import models
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with UsageClient() as client:
14
- yield client
15
-
16
-
17
- def test_input_to_input_output(client: UsageClient):
18
- client.model_in_operation.input_to_input_output(models.InputModel(name="Madge"))
19
-
20
-
21
- def test_output_to_input_output(client: UsageClient):
22
- assert models.OutputModel(name="Madge") == client.model_in_operation.output_to_input_output()
23
-
24
-
25
- def test_model_usage(client: UsageClient):
26
- assert models.RoundTripModel(
27
- result=models.ResultModel(name="Madge")
28
- ) == client.model_in_operation.model_in_read_only_property(body=models.RoundTripModel())
29
-
30
-
31
- def test_orphan_model_serializable(client: UsageClient):
32
- client.model_in_operation.orphan_model_serializable(body=models.OrphanModel(model_name="name", description="desc"))
@@ -1,70 +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.basic import BasicClient, models
8
-
9
- VALID_USER = models.User(id=1, name="Madge", etag="11bdc430-65e8-45ad-81d9-8ffa60d55b59")
10
-
11
-
12
- @pytest.fixture
13
- def client():
14
- with BasicClient() as client:
15
- yield client
16
-
17
-
18
- def test_create_or_update(client: BasicClient):
19
- result = client.create_or_update(id=1, resource={"name": "Madge"})
20
- assert result == VALID_USER
21
-
22
-
23
- def test_create_or_replace(client: BasicClient):
24
- result = client.create_or_replace(id=1, resource={"name": "Madge"})
25
- assert result == VALID_USER
26
-
27
-
28
- def test_get(client: BasicClient):
29
- result = client.get(id=1)
30
- assert result == VALID_USER
31
-
32
-
33
- def test_list(client: BasicClient):
34
- result = list(
35
- client.list(
36
- top=5,
37
- skip=10,
38
- orderby=["id"],
39
- filter="id lt 10",
40
- select=["id", "orders", "etag"],
41
- expand=["orders"],
42
- )
43
- )
44
- assert len(result) == 2
45
- assert result[0].id == 1
46
- assert result[0].name == "Madge"
47
- assert result[0].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
48
- assert result[0].orders[0].id == 1
49
- assert result[0].orders[0].user_id == 1
50
- assert result[0].orders[0].detail == "a recorder"
51
- assert result[1].id == 2
52
- assert result[1].name == "John"
53
- assert result[1].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b5a"
54
- assert result[1].orders[0].id == 2
55
- assert result[1].orders[0].user_id == 2
56
- assert result[1].orders[0].detail == "a TV"
57
-
58
-
59
- def test_delete(client: BasicClient):
60
- client.delete(id=1)
61
-
62
-
63
- def test_export(client: BasicClient):
64
- result = client.export(id=1, format="json")
65
- assert result == VALID_USER
66
-
67
-
68
- def test_export_all_users(client: BasicClient):
69
- result = client.export_all_users(format="json")
70
- assert result.users[0] == VALID_USER
@@ -1,20 +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.lro.rpc import RpcClient, models
8
-
9
-
10
- @pytest.fixture
11
- def client():
12
- with RpcClient() as client:
13
- yield client
14
-
15
-
16
- def test_long_running_rpc(client: RpcClient, polling_method):
17
- result = client.begin_long_running_rpc(
18
- models.GenerationOptions(prompt="text"), polling_interval=0, polling=polling_method
19
- ).result()
20
- assert result == models.GenerationResult(data="text data")
@@ -1,32 +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.lro.standard import StandardClient
8
- from specs.azure.core.lro.standard.models import User, ExportedUser
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with StandardClient() as client:
14
- yield client
15
-
16
-
17
- def test_lro_core_put(client, polling_method):
18
- user = User({"name": "madge", "role": "contributor"})
19
- result = client.begin_create_or_replace(
20
- name=user.name, resource=user, polling_interval=0, polling=polling_method
21
- ).result()
22
- assert result == user
23
-
24
-
25
- def test_lro_core_delete(client, polling_method):
26
- client.begin_delete(name="madge", polling_interval=0, polling=polling_method).result()
27
-
28
-
29
- def test_lro_core_export(client, polling_method):
30
- export_user = ExportedUser({"name": "madge", "resourceUri": "/users/madge"})
31
- result = client.begin_export(name="madge", format="json", polling_interval=0, polling=polling_method).result()
32
- assert result == export_user
@@ -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.core.model import ModelClient
8
- from specs.azure.core.model.models import AzureEmbeddingModel
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with ModelClient() as client:
14
- yield client
15
-
16
-
17
- def test_azure_core_embedding_vector_post(client: ModelClient):
18
- embedding_model = AzureEmbeddingModel(embedding=[0, 1, 2, 3, 4])
19
- result = client.azure_core_embedding_vector.post(
20
- body=embedding_model,
21
- )
22
- assert result == AzureEmbeddingModel(embedding=[5, 6, 7, 8, 9])
23
-
24
-
25
- def test_azure_core_embedding_vector_put(client: ModelClient):
26
- client.azure_core_embedding_vector.put(body=[0, 1, 2, 3, 4])
27
-
28
-
29
- def test_azure_core_embedding_vector_get(client: ModelClient):
30
- assert [0, 1, 2, 3, 4] == client.azure_core_embedding_vector.get()
@@ -1,71 +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 Iterable
8
- from specs.azure.core.page import PageClient, models
9
-
10
- VALID_USER = models.User(id=1, name="Madge", etag="11bdc430-65e8-45ad-81d9-8ffa60d55b59")
11
-
12
-
13
- @pytest.fixture
14
- def client():
15
- with PageClient() as client:
16
- yield client
17
-
18
-
19
- def _list_with_page_tests(pager: Iterable[models.User]):
20
- result = list(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
- def test_list_with_page(client: PageClient):
29
- _list_with_page_tests(client.list_with_page())
30
-
31
-
32
- def test_list_with_custom_page_model(client: PageClient):
33
- _list_with_page_tests(client.list_with_custom_page_model())
34
- with pytest.raises(AttributeError):
35
- models.CustomPageModel
36
-
37
-
38
- def test_list_with_parameters(client: PageClient):
39
- result = list(client.list_with_parameters(models.ListItemInputBody(input_name="Madge"), another="Second"))
40
- assert len(result) == 1
41
- assert result[0] == VALID_USER
42
-
43
-
44
- def test_two_models_as_page_item(client: PageClient):
45
- result = list(client.two_models_as_page_item.list_first_item())
46
- assert len(result) == 1
47
- assert result[0].id == 1
48
-
49
- result = list(client.two_models_as_page_item.list_second_item())
50
- assert len(result) == 1
51
- assert result[0].name == "Madge"
52
-
53
-
54
- def test_list_with_parameterized_next_link(client: PageClient):
55
- result = list(client.with_parameterized_next_link(select="name", include_pending=True))
56
- assert len(result) == 2
57
- assert result[0].id == 1
58
- assert result[0].name == "User1"
59
- assert result[1].id == 2
60
- assert result[1].name == "User2"
61
-
62
-
63
- def test_list_with_relative_next_link(client: PageClient):
64
- result = list(client.with_relative_next_link())
65
- assert len(result) == 2
66
- assert result[0].id == 1
67
- assert result[0].name == "User1"
68
- assert result[0].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
69
- assert result[1].id == 2
70
- assert result[1].name == "User2"
71
- assert result[1].etag == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
@@ -1,35 +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 import ScalarClient, models
8
-
9
-
10
- @pytest.fixture
11
- def client():
12
- with ScalarClient() as client:
13
- yield client
14
-
15
-
16
- def test_azure_location_scalar_get(client: ScalarClient):
17
- result = client.azure_location_scalar.get()
18
- assert result == "eastus"
19
-
20
-
21
- def test_azure_location_scalar_put(client: ScalarClient):
22
- client.azure_location_scalar.put("eastus")
23
-
24
-
25
- def test_azure_location_scalar_post(client: ScalarClient):
26
- result = client.azure_location_scalar.post(models.AzureLocationModel(location="eastus"))
27
- assert result == models.AzureLocationModel(location="eastus")
28
-
29
-
30
- def test_azure_location_scalar_header(client: ScalarClient):
31
- client.azure_location_scalar.header(region="eastus")
32
-
33
-
34
- def test_azure_location_scalar_query(client: ScalarClient):
35
- client.azure_location_scalar.query(region="eastus")