@typespec/http-client-python 0.1.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 (334) hide show
  1. package/README.md +118 -0
  2. package/dist/emitter/code-model.d.ts +4 -0
  3. package/dist/emitter/code-model.d.ts.map +1 -0
  4. package/dist/emitter/code-model.js +195 -0
  5. package/dist/emitter/code-model.js.map +1 -0
  6. package/dist/emitter/emitter.d.ts +6 -0
  7. package/dist/emitter/emitter.d.ts.map +1 -0
  8. package/dist/emitter/emitter.js +104 -0
  9. package/dist/emitter/emitter.js.map +1 -0
  10. package/dist/emitter/external-process.d.ts +20 -0
  11. package/dist/emitter/external-process.d.ts.map +1 -0
  12. package/dist/emitter/external-process.js +44 -0
  13. package/dist/emitter/external-process.js.map +1 -0
  14. package/dist/emitter/http.d.ts +7 -0
  15. package/dist/emitter/http.d.ts.map +1 -0
  16. package/dist/emitter/http.js +268 -0
  17. package/dist/emitter/http.js.map +1 -0
  18. package/dist/emitter/index.d.ts +3 -0
  19. package/dist/emitter/index.d.ts.map +1 -0
  20. package/dist/emitter/index.js +3 -0
  21. package/dist/emitter/index.js.map +1 -0
  22. package/dist/emitter/lib.d.ts +30 -0
  23. package/dist/emitter/lib.d.ts.map +1 -0
  24. package/dist/emitter/lib.js +33 -0
  25. package/dist/emitter/lib.js.map +1 -0
  26. package/dist/emitter/types.d.ts +36 -0
  27. package/dist/emitter/types.d.ts.map +1 -0
  28. package/dist/emitter/types.js +491 -0
  29. package/dist/emitter/types.js.map +1 -0
  30. package/dist/emitter/utils.d.ts +26 -0
  31. package/dist/emitter/utils.d.ts.map +1 -0
  32. package/dist/emitter/utils.js +155 -0
  33. package/dist/emitter/utils.js.map +1 -0
  34. package/emitter/src/code-model.ts +272 -0
  35. package/emitter/src/emitter.ts +127 -0
  36. package/emitter/src/external-process.ts +52 -0
  37. package/emitter/src/http.ts +382 -0
  38. package/emitter/src/index.ts +2 -0
  39. package/emitter/src/lib.ts +59 -0
  40. package/emitter/src/types.ts +573 -0
  41. package/emitter/src/utils.ts +215 -0
  42. package/emitter/temp/tsconfig.tsbuildinfo +1 -0
  43. package/emitter/test/utils.test.ts +22 -0
  44. package/emitter/tsconfig.build.json +11 -0
  45. package/emitter/tsconfig.json +7 -0
  46. package/emitter/vitest.config.ts +4 -0
  47. package/eng/scripts/Build-Packages.ps1 +86 -0
  48. package/eng/scripts/Check-GitChanges.ps1 +22 -0
  49. package/eng/scripts/Functions.ps1 +26 -0
  50. package/eng/scripts/Generate.ps1 +11 -0
  51. package/eng/scripts/Generation.psm1 +22 -0
  52. package/eng/scripts/Initialize-Repository.ps1 +40 -0
  53. package/eng/scripts/Test-Packages.ps1 +65 -0
  54. package/eng/scripts/ci/format.ts +3 -0
  55. package/eng/scripts/ci/lint.ts +39 -0
  56. package/eng/scripts/ci/mypy.ini +38 -0
  57. package/eng/scripts/ci/pylintrc +59 -0
  58. package/eng/scripts/ci/pyproject.toml +18 -0
  59. package/eng/scripts/ci/pyrightconfig.json +6 -0
  60. package/eng/scripts/ci/regenerate.ts +299 -0
  61. package/eng/scripts/ci/run-ci.ts +88 -0
  62. package/eng/scripts/ci/run_apiview.py +40 -0
  63. package/eng/scripts/ci/run_mypy.py +49 -0
  64. package/eng/scripts/ci/run_pylint.py +50 -0
  65. package/eng/scripts/ci/run_pyright.py +58 -0
  66. package/eng/scripts/ci/util.py +72 -0
  67. package/eng/scripts/ci/utils.ts +48 -0
  68. package/eng/scripts/setup/__pycache__/venvtools.cpython-38.pyc +0 -0
  69. package/eng/scripts/setup/install.py +53 -0
  70. package/eng/scripts/setup/prepare.py +42 -0
  71. package/eng/scripts/setup/run-python3.ts +25 -0
  72. package/eng/scripts/setup/run_tsp.py +42 -0
  73. package/eng/scripts/setup/system-requirements.ts +261 -0
  74. package/eng/scripts/setup/venvtools.py +87 -0
  75. package/generator/LICENSE +21 -0
  76. package/generator/README.md +1 -0
  77. package/generator/dev_requirements.txt +13 -0
  78. package/generator/pygen/__init__.py +107 -0
  79. package/generator/pygen/_version.py +7 -0
  80. package/generator/pygen/black.py +71 -0
  81. package/generator/pygen/codegen/__init__.py +338 -0
  82. package/generator/pygen/codegen/_utils.py +17 -0
  83. package/generator/pygen/codegen/models/__init__.py +204 -0
  84. package/generator/pygen/codegen/models/base.py +186 -0
  85. package/generator/pygen/codegen/models/base_builder.py +118 -0
  86. package/generator/pygen/codegen/models/client.py +433 -0
  87. package/generator/pygen/codegen/models/code_model.py +237 -0
  88. package/generator/pygen/codegen/models/combined_type.py +149 -0
  89. package/generator/pygen/codegen/models/constant_type.py +129 -0
  90. package/generator/pygen/codegen/models/credential_types.py +214 -0
  91. package/generator/pygen/codegen/models/dictionary_type.py +127 -0
  92. package/generator/pygen/codegen/models/enum_type.py +238 -0
  93. package/generator/pygen/codegen/models/imports.py +291 -0
  94. package/generator/pygen/codegen/models/list_type.py +143 -0
  95. package/generator/pygen/codegen/models/lro_operation.py +142 -0
  96. package/generator/pygen/codegen/models/lro_paging_operation.py +32 -0
  97. package/generator/pygen/codegen/models/model_type.py +359 -0
  98. package/generator/pygen/codegen/models/operation.py +530 -0
  99. package/generator/pygen/codegen/models/operation_group.py +184 -0
  100. package/generator/pygen/codegen/models/paging_operation.py +155 -0
  101. package/generator/pygen/codegen/models/parameter.py +412 -0
  102. package/generator/pygen/codegen/models/parameter_list.py +387 -0
  103. package/generator/pygen/codegen/models/primitive_types.py +659 -0
  104. package/generator/pygen/codegen/models/property.py +170 -0
  105. package/generator/pygen/codegen/models/request_builder.py +189 -0
  106. package/generator/pygen/codegen/models/request_builder_parameter.py +115 -0
  107. package/generator/pygen/codegen/models/response.py +348 -0
  108. package/generator/pygen/codegen/models/utils.py +21 -0
  109. package/generator/pygen/codegen/serializers/__init__.py +574 -0
  110. package/generator/pygen/codegen/serializers/base_serializer.py +21 -0
  111. package/generator/pygen/codegen/serializers/builder_serializer.py +1507 -0
  112. package/generator/pygen/codegen/serializers/client_serializer.py +294 -0
  113. package/generator/pygen/codegen/serializers/enum_serializer.py +15 -0
  114. package/generator/pygen/codegen/serializers/general_serializer.py +213 -0
  115. package/generator/pygen/codegen/serializers/import_serializer.py +126 -0
  116. package/generator/pygen/codegen/serializers/metadata_serializer.py +198 -0
  117. package/generator/pygen/codegen/serializers/model_init_serializer.py +33 -0
  118. package/generator/pygen/codegen/serializers/model_serializer.py +317 -0
  119. package/generator/pygen/codegen/serializers/operation_groups_serializer.py +89 -0
  120. package/generator/pygen/codegen/serializers/operations_init_serializer.py +44 -0
  121. package/generator/pygen/codegen/serializers/parameter_serializer.py +221 -0
  122. package/generator/pygen/codegen/serializers/patch_serializer.py +19 -0
  123. package/generator/pygen/codegen/serializers/request_builders_serializer.py +52 -0
  124. package/generator/pygen/codegen/serializers/sample_serializer.py +168 -0
  125. package/generator/pygen/codegen/serializers/test_serializer.py +292 -0
  126. package/generator/pygen/codegen/serializers/types_serializer.py +31 -0
  127. package/generator/pygen/codegen/serializers/utils.py +68 -0
  128. package/generator/pygen/codegen/templates/client.py.jinja2 +37 -0
  129. package/generator/pygen/codegen/templates/client_container.py.jinja2 +12 -0
  130. package/generator/pygen/codegen/templates/config.py.jinja2 +73 -0
  131. package/generator/pygen/codegen/templates/config_container.py.jinja2 +16 -0
  132. package/generator/pygen/codegen/templates/conftest.py.jinja2 +28 -0
  133. package/generator/pygen/codegen/templates/enum.py.jinja2 +13 -0
  134. package/generator/pygen/codegen/templates/enum_container.py.jinja2 +10 -0
  135. package/generator/pygen/codegen/templates/init.py.jinja2 +24 -0
  136. package/generator/pygen/codegen/templates/keywords.jinja2 +19 -0
  137. package/generator/pygen/codegen/templates/lro_operation.py.jinja2 +16 -0
  138. package/generator/pygen/codegen/templates/lro_paging_operation.py.jinja2 +18 -0
  139. package/generator/pygen/codegen/templates/macros.jinja2 +12 -0
  140. package/generator/pygen/codegen/templates/metadata.json.jinja2 +167 -0
  141. package/generator/pygen/codegen/templates/model_base.py.jinja2 +1157 -0
  142. package/generator/pygen/codegen/templates/model_container.py.jinja2 +12 -0
  143. package/generator/pygen/codegen/templates/model_dpg.py.jinja2 +97 -0
  144. package/generator/pygen/codegen/templates/model_init.py.jinja2 +28 -0
  145. package/generator/pygen/codegen/templates/model_msrest.py.jinja2 +92 -0
  146. package/generator/pygen/codegen/templates/operation.py.jinja2 +21 -0
  147. package/generator/pygen/codegen/templates/operation_group.py.jinja2 +75 -0
  148. package/generator/pygen/codegen/templates/operation_groups_container.py.jinja2 +19 -0
  149. package/generator/pygen/codegen/templates/operation_tools.jinja2 +81 -0
  150. package/generator/pygen/codegen/templates/operations_folder_init.py.jinja2 +17 -0
  151. package/generator/pygen/codegen/templates/packaging_templates/CHANGELOG.md.jinja2 +6 -0
  152. package/generator/pygen/codegen/templates/packaging_templates/LICENSE.jinja2 +21 -0
  153. package/generator/pygen/codegen/templates/packaging_templates/MANIFEST.in.jinja2 +8 -0
  154. package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +107 -0
  155. package/generator/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +9 -0
  156. package/generator/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +108 -0
  157. package/generator/pygen/codegen/templates/paging_operation.py.jinja2 +21 -0
  158. package/generator/pygen/codegen/templates/patch.py.jinja2 +19 -0
  159. package/generator/pygen/codegen/templates/pkgutil_init.py.jinja2 +1 -0
  160. package/generator/pygen/codegen/templates/request_builder.py.jinja2 +28 -0
  161. package/generator/pygen/codegen/templates/request_builders.py.jinja2 +10 -0
  162. package/generator/pygen/codegen/templates/rest_init.py.jinja2 +12 -0
  163. package/generator/pygen/codegen/templates/sample.py.jinja2 +44 -0
  164. package/generator/pygen/codegen/templates/serialization.py.jinja2 +2114 -0
  165. package/generator/pygen/codegen/templates/test.py.jinja2 +50 -0
  166. package/generator/pygen/codegen/templates/testpreparer.py.jinja2 +26 -0
  167. package/generator/pygen/codegen/templates/types.py.jinja2 +7 -0
  168. package/generator/pygen/codegen/templates/validation.py.jinja2 +38 -0
  169. package/generator/pygen/codegen/templates/vendor.py.jinja2 +95 -0
  170. package/generator/pygen/codegen/templates/version.py.jinja2 +4 -0
  171. package/generator/pygen/m2r.py +65 -0
  172. package/generator/pygen/postprocess/__init__.py +183 -0
  173. package/generator/pygen/postprocess/get_all.py +19 -0
  174. package/generator/pygen/postprocess/venvtools.py +75 -0
  175. package/generator/pygen/preprocess/__init__.py +515 -0
  176. package/generator/pygen/preprocess/helpers.py +27 -0
  177. package/generator/pygen/preprocess/python_mappings.py +224 -0
  178. package/generator/pygen/utils.py +163 -0
  179. package/generator/pygen.egg-info/PKG-INFO +25 -0
  180. package/generator/pygen.egg-info/SOURCES.txt +66 -0
  181. package/generator/pygen.egg-info/dependency_links.txt +1 -0
  182. package/generator/pygen.egg-info/requires.txt +4 -0
  183. package/generator/pygen.egg-info/top_level.txt +1 -0
  184. package/generator/requirements.txt +12 -0
  185. package/generator/setup.py +55 -0
  186. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_models_common_types_managed_identity_async.py +63 -0
  187. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_models_resource_async.py +284 -0
  188. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +101 -0
  189. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +93 -0
  190. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +31 -0
  191. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +76 -0
  192. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +22 -0
  193. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +39 -0
  194. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +33 -0
  195. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +58 -0
  196. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +41 -0
  197. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +87 -0
  198. package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +30 -0
  199. package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +30 -0
  200. package/generator/test/azure/mock_api_tests/conftest.py +150 -0
  201. package/generator/test/azure/mock_api_tests/test_azure_arm_models_common_types_managed_identity.py +60 -0
  202. package/generator/test/azure/mock_api_tests/test_azure_arm_models_resource.py +254 -0
  203. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +92 -0
  204. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +84 -0
  205. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +28 -0
  206. package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +70 -0
  207. package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +20 -0
  208. package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +32 -0
  209. package/generator/test/azure/mock_api_tests/test_azure_core_model.py +30 -0
  210. package/generator/test/azure/mock_api_tests/test_azure_core_page.py +51 -0
  211. package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +35 -0
  212. package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +85 -0
  213. package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +29 -0
  214. package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +29 -0
  215. package/generator/test/azure/requirements.txt +89 -0
  216. package/generator/test/azure/tox.ini +56 -0
  217. package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +121 -0
  218. package/generator/test/generic_mock_api_tests/asynctests/test_client_naming_async.py +69 -0
  219. package/generator/test/generic_mock_api_tests/asynctests/test_client_structure_async.py +62 -0
  220. package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +133 -0
  221. package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +127 -0
  222. package/generator/test/generic_mock_api_tests/asynctests/test_encode_duration_async.py +63 -0
  223. package/generator/test/generic_mock_api_tests/asynctests/test_encode_numeric_async.py +35 -0
  224. package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +35 -0
  225. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_basic_async.py +24 -0
  226. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +30 -0
  227. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +44 -0
  228. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_spread_async.py +76 -0
  229. package/generator/test/generic_mock_api_tests/asynctests/test_payload_content_negotiation_async.py +37 -0
  230. package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +98 -0
  231. package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +27 -0
  232. package/generator/test/generic_mock_api_tests/asynctests/test_payload_multipart_async.py +153 -0
  233. package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +19 -0
  234. package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +103 -0
  235. package/generator/test/generic_mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +128 -0
  236. package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +331 -0
  237. package/generator/test/generic_mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +24 -0
  238. package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +18 -0
  239. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +25 -0
  240. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +18 -0
  241. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +28 -0
  242. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +34 -0
  243. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +38 -0
  244. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +19 -0
  245. package/generator/test/generic_mock_api_tests/asynctests/test_special_words_async.py +42 -0
  246. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +118 -0
  247. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +98 -0
  248. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +25 -0
  249. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +27 -0
  250. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +32 -0
  251. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +70 -0
  252. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +85 -0
  253. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +34 -0
  254. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +34 -0
  255. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +67 -0
  256. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +32 -0
  257. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +47 -0
  258. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +352 -0
  259. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +110 -0
  260. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +197 -0
  261. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +315 -0
  262. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +60 -0
  263. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +90 -0
  264. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +36 -0
  265. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +21 -0
  266. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +21 -0
  267. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +29 -0
  268. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +18 -0
  269. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +22 -0
  270. package/generator/test/generic_mock_api_tests/conftest.py +113 -0
  271. package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
  272. package/generator/test/generic_mock_api_tests/data/image.png +0 -0
  273. package/generator/test/generic_mock_api_tests/test_authentication.py +113 -0
  274. package/generator/test/generic_mock_api_tests/test_client_naming.py +57 -0
  275. package/generator/test/generic_mock_api_tests/test_client_structure.py +57 -0
  276. package/generator/test/generic_mock_api_tests/test_encode_bytes.py +128 -0
  277. package/generator/test/generic_mock_api_tests/test_encode_datetime.py +123 -0
  278. package/generator/test/generic_mock_api_tests/test_encode_duration.py +60 -0
  279. package/generator/test/generic_mock_api_tests/test_encode_numeric.py +31 -0
  280. package/generator/test/generic_mock_api_tests/test_headasboolean.py +33 -0
  281. package/generator/test/generic_mock_api_tests/test_parameters_basic.py +22 -0
  282. package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +27 -0
  283. package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +37 -0
  284. package/generator/test/generic_mock_api_tests/test_parameters_spread.py +66 -0
  285. package/generator/test/generic_mock_api_tests/test_payload_content_negotiation.py +33 -0
  286. package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +93 -0
  287. package/generator/test/generic_mock_api_tests/test_payload_media_type.py +25 -0
  288. package/generator/test/generic_mock_api_tests/test_payload_multipart.py +140 -0
  289. package/generator/test/generic_mock_api_tests/test_payload_pageable.py +18 -0
  290. package/generator/test/generic_mock_api_tests/test_payload_xml.py +93 -0
  291. package/generator/test/generic_mock_api_tests/test_resiliency_srv_driven.py +122 -0
  292. package/generator/test/generic_mock_api_tests/test_routes.py +285 -0
  293. package/generator/test/generic_mock_api_tests/test_serialization_encoded_name_json.py +21 -0
  294. package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +17 -0
  295. package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +21 -0
  296. package/generator/test/generic_mock_api_tests/test_server_path_single.py +17 -0
  297. package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +25 -0
  298. package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +30 -0
  299. package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +34 -0
  300. package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +18 -0
  301. package/generator/test/generic_mock_api_tests/test_special_words.py +37 -0
  302. package/generator/test/generic_mock_api_tests/test_typetest_array.py +103 -0
  303. package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +86 -0
  304. package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +23 -0
  305. package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +25 -0
  306. package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +29 -0
  307. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +58 -0
  308. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +79 -0
  309. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +31 -0
  310. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +32 -0
  311. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +60 -0
  312. package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +28 -0
  313. package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +40 -0
  314. package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +313 -0
  315. package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +102 -0
  316. package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +174 -0
  317. package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +286 -0
  318. package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +53 -0
  319. package/generator/test/generic_mock_api_tests/test_typetest_union.py +80 -0
  320. package/generator/test/generic_mock_api_tests/test_versioning_added.py +33 -0
  321. package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +20 -0
  322. package/generator/test/generic_mock_api_tests/test_versioning_removed.py +20 -0
  323. package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +27 -0
  324. package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +17 -0
  325. package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +21 -0
  326. package/generator/test/generic_mock_api_tests/unittests/test_model_base_serialization.py +4067 -0
  327. package/generator/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py +1001 -0
  328. package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +24 -0
  329. package/generator/test/unbranded/mock_api_tests/cadl-ranch-config.yaml +27 -0
  330. package/generator/test/unbranded/mock_api_tests/conftest.py +35 -0
  331. package/generator/test/unbranded/mock_api_tests/test_unbranded.py +57 -0
  332. package/generator/test/unbranded/requirements.txt +72 -0
  333. package/generator/test/unbranded/tox.ini +56 -0
  334. package/package.json +93 -0
@@ -0,0 +1,315 @@
1
+ # cspell: ignore Hdvcmxk
2
+ # -------------------------------------------------------------------------
3
+ # Copyright (c) Microsoft Corporation. All rights reserved.
4
+ # Licensed under the MIT License. See License.txt in the project root for
5
+ # license information.
6
+ # --------------------------------------------------------------------------
7
+ import decimal
8
+
9
+ import pytest
10
+ import datetime
11
+ from typetest.property.valuetypes import models
12
+ from typetest.property.valuetypes.aio import ValueTypesClient
13
+
14
+
15
+ @pytest.fixture
16
+ async def client():
17
+ async with ValueTypesClient() as client:
18
+ yield client
19
+
20
+
21
+ @pytest.mark.asyncio
22
+ async def test_boolean(client: ValueTypesClient):
23
+ body = models.BooleanProperty(property=True)
24
+ assert body.property == body["property"]
25
+ await client.boolean.put(body)
26
+
27
+ resp = await client.boolean.get()
28
+ assert resp.property == resp["property"] == True
29
+
30
+
31
+ @pytest.mark.asyncio
32
+ async def test_boolean_literal(client: ValueTypesClient):
33
+ body = models.BooleanLiteralProperty(property=True)
34
+ assert body.property == body["property"]
35
+ await client.boolean_literal.put(body)
36
+
37
+ resp = await client.boolean_literal.get()
38
+ assert resp.property == resp["property"] == True
39
+
40
+
41
+ @pytest.mark.asyncio
42
+ async def test_bytes(client: ValueTypesClient):
43
+ body = models.BytesProperty(property=b"hello, world!")
44
+ assert body.property == b"hello, world!"
45
+ assert body["property"] == "aGVsbG8sIHdvcmxkIQ=="
46
+ await client.bytes.put(body)
47
+
48
+ resp = await client.bytes.get()
49
+ assert resp.property == b"hello, world!"
50
+ assert resp["property"] == "aGVsbG8sIHdvcmxkIQ=="
51
+
52
+
53
+ @pytest.mark.asyncio
54
+ async def test_collections_int(client: ValueTypesClient):
55
+ body = models.CollectionsIntProperty(property=[1, 2])
56
+ assert body.property == body["property"]
57
+ await client.collections_int.put(body)
58
+
59
+ resp = await client.collections_int.get()
60
+ assert resp.property == resp["property"] == [1, 2]
61
+
62
+
63
+ @pytest.mark.asyncio
64
+ async def test_collections_model(client: ValueTypesClient):
65
+ body = models.CollectionsModelProperty(property=[{"property": "hello"}, {"property": "world"}])
66
+ assert body.property[0].property == body["property"][0]["property"]
67
+ await client.collections_model.put(body)
68
+
69
+ resp = await client.collections_model.get()
70
+ assert resp.property[1].property == resp["property"][1]["property"]
71
+
72
+
73
+ @pytest.mark.asyncio
74
+ async def test_collections_string(client: ValueTypesClient):
75
+ body = models.CollectionsStringProperty(property=["hello", "world"])
76
+ assert body.property == body["property"]
77
+ await client.collections_string.put(body)
78
+
79
+ resp = await client.collections_string.get()
80
+ assert resp.property == resp["property"] == ["hello", "world"]
81
+
82
+
83
+ @pytest.mark.asyncio
84
+ async def test_datetime(client):
85
+ received_body = await client.datetime.get()
86
+ assert received_body == {"property": "2022-08-26T18:38:00Z"}
87
+ assert received_body.property.year == 2022
88
+ assert received_body.property.month == 8
89
+ assert received_body.property.day == 26
90
+ assert received_body.property.hour == 18
91
+ assert received_body.property.minute == 38
92
+
93
+ await client.datetime.put(models.DatetimeProperty(property=datetime.datetime(2022, 8, 26, hour=18, minute=38)))
94
+
95
+
96
+ @pytest.mark.asyncio
97
+ async def test_decimal(client: ValueTypesClient):
98
+ body = models.DecimalProperty(property=decimal.Decimal("0.33333"))
99
+ assert body.property == decimal.Decimal("0.33333")
100
+ assert body["property"] == 0.33333
101
+ await client.decimal.put(body)
102
+
103
+ resp = await client.decimal.get()
104
+ assert resp.property == decimal.Decimal("0.33333")
105
+ assert resp["property"] == 0.33333
106
+
107
+
108
+ @pytest.mark.asyncio
109
+ async def test_decimal128(client: ValueTypesClient):
110
+ body = models.Decimal128Property(property=decimal.Decimal("0.33333"))
111
+ assert body.property == decimal.Decimal("0.33333")
112
+ assert body["property"] == 0.33333
113
+ await client.decimal128.put(body)
114
+
115
+ resp = await client.decimal128.get()
116
+ assert resp.property == decimal.Decimal("0.33333")
117
+ assert resp["property"] == 0.33333
118
+
119
+
120
+ @pytest.mark.asyncio
121
+ async def test_dictionary_string(client: ValueTypesClient):
122
+ body = models.DictionaryStringProperty(property={"k1": "hello", "k2": "world"})
123
+ assert body.property == body["property"]
124
+ await client.dictionary_string.put(body)
125
+
126
+ resp = await client.dictionary_string.get()
127
+ assert resp.property == resp["property"] == {"k1": "hello", "k2": "world"}
128
+
129
+
130
+ @pytest.mark.asyncio
131
+ async def test_duration(client: ValueTypesClient):
132
+ body = models.DurationProperty(property="P123DT22H14M12.011S")
133
+ assert body.property == datetime.timedelta(days=123, seconds=80052, microseconds=11000)
134
+ assert body["property"] == "P123DT22H14M12.011S"
135
+ await client.duration.put(body)
136
+
137
+ resp = await client.duration.get()
138
+ assert resp.property == datetime.timedelta(days=123, seconds=80052, microseconds=11000)
139
+ assert resp["property"] == "P123DT22H14M12.011S"
140
+
141
+
142
+ @pytest.mark.asyncio
143
+ async def test_enum(client: ValueTypesClient):
144
+ body = models.EnumProperty(property=models.InnerEnum.VALUE_ONE)
145
+ assert body.property == body["property"]
146
+ await client.enum.put(body)
147
+
148
+ resp = await client.enum.get()
149
+ assert resp.property == resp["property"] == "ValueOne"
150
+
151
+
152
+ @pytest.mark.asyncio
153
+ async def test_extensible_enum(client: ValueTypesClient):
154
+ body = models.ExtensibleEnumProperty(property="UnknownValue")
155
+ assert body.property == body["property"]
156
+ await client.extensible_enum.put(body)
157
+
158
+ resp = await client.extensible_enum.get()
159
+ assert resp.property == resp["property"] == "UnknownValue"
160
+
161
+
162
+ @pytest.mark.asyncio
163
+ async def test_float(client: ValueTypesClient):
164
+ body = models.FloatProperty(property=43.125)
165
+ assert body.property == body["property"]
166
+ await client.float.put(body)
167
+
168
+ resp = await client.float.get()
169
+ assert resp.property == resp["property"] == 43.125
170
+
171
+
172
+ @pytest.mark.asyncio
173
+ async def test_float_literal(client: ValueTypesClient):
174
+ body = models.FloatLiteralProperty(property=43.125)
175
+ assert body.property == body["property"]
176
+ await client.float_literal.put(body)
177
+
178
+ resp = await client.float_literal.get()
179
+ assert resp.property == resp["property"] == 43.125
180
+
181
+
182
+ @pytest.mark.asyncio
183
+ async def test_int(client: ValueTypesClient):
184
+ body = models.IntProperty(property=42)
185
+ assert body.property == body["property"]
186
+ await client.int_operations.put(body)
187
+
188
+ resp = await client.int_operations.get()
189
+ assert resp.property == resp["property"] == 42
190
+
191
+
192
+ @pytest.mark.asyncio
193
+ async def test_int_literal(client: ValueTypesClient):
194
+ body = models.IntLiteralProperty(property=42)
195
+ assert body.property == body["property"]
196
+ await client.int_literal.put(body)
197
+
198
+ resp = await client.int_literal.get()
199
+ assert resp.property == resp["property"] == 42
200
+
201
+
202
+ @pytest.mark.asyncio
203
+ async def test_model(client: ValueTypesClient):
204
+ body = models.ModelProperty(property={"property": "hello"})
205
+ assert body.property.property == body["property"]["property"]
206
+ await client.model.put(body)
207
+
208
+ resp = await client.model.get()
209
+ assert resp.property.property == resp["property"]["property"]
210
+
211
+
212
+ @pytest.mark.asyncio
213
+ async def test_never(client: ValueTypesClient):
214
+ assert await client.never.get() == models.NeverProperty()
215
+ await client.never.put(models.NeverProperty())
216
+
217
+
218
+ @pytest.mark.asyncio
219
+ async def test_string(client: ValueTypesClient):
220
+ body = models.StringProperty(property="hello")
221
+ assert body.property == body["property"]
222
+ await client.string.put(body)
223
+
224
+ resp = await client.string.get()
225
+ assert resp.property == resp["property"] == "hello"
226
+
227
+
228
+ @pytest.mark.asyncio
229
+ async def test_string_literal(client: ValueTypesClient):
230
+ body = models.StringLiteralProperty(property="hello")
231
+ assert body.property == body["property"]
232
+ await client.string_literal.put(body)
233
+
234
+ resp = await client.string_literal.get()
235
+ assert resp.property == resp["property"] == "hello"
236
+
237
+
238
+ @pytest.mark.asyncio
239
+ async def test_union_enum_value(client: ValueTypesClient):
240
+ body = models.UnionEnumValueProperty(property=models.ExtendedEnum.ENUM_VALUE2)
241
+ assert body.property == body["property"]
242
+ await client.union_enum_value.put(body)
243
+
244
+ resp = await client.union_enum_value.get()
245
+ assert resp.property == resp["property"] == "value2"
246
+
247
+
248
+ @pytest.mark.asyncio
249
+ async def test_union_float_literal(client: ValueTypesClient):
250
+ body = models.UnionFloatLiteralProperty(property=46.875)
251
+ assert body.property == body["property"]
252
+ await client.union_float_literal.put(body)
253
+
254
+ resp = await client.union_float_literal.get()
255
+ assert resp.property == resp["property"] == 46.875
256
+
257
+
258
+ @pytest.mark.asyncio
259
+ async def test_union_int_literal(client: ValueTypesClient):
260
+ body = models.UnionIntLiteralProperty(property=42)
261
+ assert body.property == body["property"]
262
+ await client.union_int_literal.put(body)
263
+
264
+ resp = await client.union_int_literal.get()
265
+ assert resp.property == resp["property"] == 42
266
+
267
+
268
+ @pytest.mark.asyncio
269
+ async def test_union_string_literal(client: ValueTypesClient):
270
+ body = models.UnionStringLiteralProperty(property="world")
271
+ assert body.property == body["property"]
272
+ await client.union_string_literal.put(body)
273
+
274
+ resp = await client.union_string_literal.get()
275
+ assert resp.property == resp["property"] == "world"
276
+
277
+
278
+ @pytest.mark.asyncio
279
+ async def test_unknown_array(client: ValueTypesClient):
280
+ body = models.UnknownArrayProperty(property=["hello", "world"])
281
+ assert body.property == body["property"]
282
+ await client.unknown_array.put(body)
283
+
284
+ resp = await client.unknown_array.get()
285
+ assert resp.property == resp["property"] == ["hello", "world"]
286
+
287
+
288
+ @pytest.mark.asyncio
289
+ async def test_unknown_dict(client: ValueTypesClient):
290
+ body = models.UnknownDictProperty(property={"k1": "hello", "k2": 42})
291
+ assert body.property == body["property"]
292
+ await client.unknown_dict.put(body)
293
+
294
+ resp = await client.unknown_dict.get()
295
+ assert resp.property == resp["property"] == {"k1": "hello", "k2": 42}
296
+
297
+
298
+ @pytest.mark.asyncio
299
+ async def test_unknown_int(client: ValueTypesClient):
300
+ body = models.UnknownIntProperty(property=42)
301
+ assert body.property == body["property"]
302
+ await client.unknown_int.put(body)
303
+
304
+ resp = await client.unknown_int.get()
305
+ assert resp.property == resp["property"] == 42
306
+
307
+
308
+ @pytest.mark.asyncio
309
+ async def test_unknown_string(client: ValueTypesClient):
310
+ body = models.UnknownStringProperty(property="hello")
311
+ assert body.property == body["property"]
312
+ await client.unknown_string.put(body)
313
+
314
+ resp = await client.unknown_string.get()
315
+ assert resp.property == resp["property"] == "hello"
@@ -0,0 +1,60 @@
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 decimal
7
+ from functools import reduce
8
+
9
+ import pytest
10
+ from typetest.scalar.aio import ScalarClient
11
+
12
+
13
+ @pytest.fixture
14
+ async def client():
15
+ async with ScalarClient() as client:
16
+ yield client
17
+
18
+
19
+ @pytest.mark.asyncio
20
+ async def test_scalar_string(client: ScalarClient):
21
+ assert await client.string.get() == "test"
22
+ await client.string.put("test")
23
+
24
+
25
+ @pytest.mark.asyncio
26
+ async def test_scalar_boolean(client: ScalarClient):
27
+ assert await client.boolean.get() == True
28
+ await client.boolean.put(True)
29
+
30
+
31
+ @pytest.mark.asyncio
32
+ async def test_scalar_unknown(client: ScalarClient):
33
+ assert await client.unknown.get() == "test"
34
+ await client.unknown.put("test")
35
+
36
+
37
+ @pytest.mark.asyncio
38
+ async def test_decimal128_type(client: ScalarClient):
39
+ assert await client.decimal128_type.response_body() == decimal.Decimal("0.33333")
40
+ await client.decimal128_type.request_body(decimal.Decimal("0.33333"))
41
+ await client.decimal128_type.request_parameter(value=decimal.Decimal("0.33333"))
42
+
43
+
44
+ @pytest.mark.asyncio
45
+ async def test_decimal_type(client: ScalarClient):
46
+ assert await client.decimal_type.response_body() == decimal.Decimal("0.33333")
47
+ await client.decimal_type.request_body(decimal.Decimal("0.33333"))
48
+ await client.decimal_type.request_parameter(value=decimal.Decimal("0.33333"))
49
+
50
+
51
+ @pytest.mark.asyncio
52
+ async def test_decimal128_verify(client: ScalarClient):
53
+ prepare = await client.decimal128_verify.prepare_verify()
54
+ await client.decimal128_verify.verify(reduce(lambda x, y: x + y, prepare))
55
+
56
+
57
+ @pytest.mark.asyncio
58
+ async def test_decimal_verify(client: ScalarClient):
59
+ prepare = await client.decimal_verify.prepare_verify()
60
+ await client.decimal_verify.verify(reduce(lambda x, y: x + y, prepare))
@@ -0,0 +1,90 @@
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 typetest.union.aio import UnionClient
8
+ from typetest.union import models
9
+
10
+
11
+ @pytest.fixture
12
+ async def client():
13
+ async with UnionClient() as client:
14
+ yield client
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test_enums_only(client: UnionClient):
19
+ value = models.EnumsOnlyCases(lr="right", ud="up")
20
+ assert (await client.enums_only.get()) == {"prop": value}
21
+ await client.enums_only.send(prop=value)
22
+
23
+
24
+ @pytest.mark.asyncio
25
+ async def test_floats_only(client: UnionClient):
26
+ value = 2.2
27
+ assert (await client.floats_only.get()) == {"prop": value}
28
+ await client.floats_only.send(prop=value)
29
+
30
+
31
+ @pytest.mark.asyncio
32
+ async def test_ints_only(client: UnionClient):
33
+ value = 2
34
+ assert (await client.ints_only.get()) == {"prop": value}
35
+ await client.ints_only.send(prop=value)
36
+
37
+
38
+ @pytest.mark.asyncio
39
+ async def test_mixed_literals(client: UnionClient):
40
+ value = models.MixedLiteralsCases(string_literal="a", int_literal=2, float_literal=3.3, boolean_literal=True)
41
+ assert (await client.mixed_literals.get()) == {"prop": value}
42
+ await client.mixed_literals.send(prop=value)
43
+
44
+
45
+ @pytest.mark.asyncio
46
+ async def test_mixed_types(client: UnionClient):
47
+ value = models.MixedTypesCases(
48
+ model=models.Cat(name="test"),
49
+ literal="a",
50
+ int_property=2,
51
+ boolean=True,
52
+ array=[models.Cat(name="test"), "a", 2, True],
53
+ )
54
+ assert (await client.mixed_types.get()) == {"prop": value}
55
+ await client.mixed_types.send(prop=value)
56
+
57
+
58
+ @pytest.mark.asyncio
59
+ async def test_models_only(client: UnionClient):
60
+ value = models.Cat(name="test")
61
+ assert (await client.models_only.get()) == {"prop": value}
62
+ await client.models_only.send(prop=value)
63
+
64
+
65
+ @pytest.mark.asyncio
66
+ async def test_string_and_array(client: UnionClient):
67
+ value = models.StringAndArrayCases(string="test", array=["test1", "test2"])
68
+ assert (await client.string_and_array.get()) == {"prop": value}
69
+ await client.string_and_array.send(prop=value)
70
+
71
+
72
+ @pytest.mark.asyncio
73
+ async def test_string_extensible(client: UnionClient):
74
+ value = "custom"
75
+ assert (await client.string_extensible.get()) == {"prop": value}
76
+ await client.string_extensible.send(prop=value)
77
+
78
+
79
+ @pytest.mark.asyncio
80
+ async def test_string_extensible_named(client: UnionClient):
81
+ value = "custom"
82
+ assert (await client.string_extensible_named.get()) == {"prop": value}
83
+ await client.string_extensible_named.send(prop=value)
84
+
85
+
86
+ @pytest.mark.asyncio
87
+ async def test_strings_only(client: UnionClient):
88
+ value = "b"
89
+ assert (await client.strings_only.get()) == {"prop": value}
90
+ await client.strings_only.send(prop=value)
@@ -0,0 +1,36 @@
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 versioning.added.aio import AddedClient
8
+ from versioning.added.models import ModelV1, ModelV2, EnumV1, EnumV2
9
+
10
+
11
+ @pytest.fixture
12
+ async def client():
13
+ async with AddedClient(endpoint="http://localhost:3000", version="v2") as client:
14
+ yield client
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test_v1(client: AddedClient):
19
+ assert await client.v1(
20
+ ModelV1(prop="foo", enum_prop=EnumV1.ENUM_MEMBER_V2, union_prop=10),
21
+ header_v2="bar",
22
+ ) == ModelV1(prop="foo", enum_prop=EnumV1.ENUM_MEMBER_V2, union_prop=10)
23
+
24
+
25
+ @pytest.mark.asyncio
26
+ async def test_v2(client: AddedClient):
27
+ assert await client.v2(ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar")) == ModelV2(
28
+ prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar"
29
+ )
30
+
31
+
32
+ @pytest.mark.asyncio
33
+ async def test_interface_v2(client: AddedClient):
34
+ assert await client.interface_v2.v2_in_interface(
35
+ ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar")
36
+ ) == ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar")
@@ -0,0 +1,21 @@
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 versioning.madeoptional.aio import MadeOptionalClient
8
+ from versioning.madeoptional.models import TestModel
9
+
10
+
11
+ @pytest.fixture
12
+ async def client():
13
+ async with MadeOptionalClient(endpoint="http://localhost:3000", version="v2") as client:
14
+ yield client
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test(client: MadeOptionalClient):
19
+ assert await client.test(
20
+ TestModel(prop="foo"),
21
+ ) == TestModel(prop="foo")
@@ -0,0 +1,21 @@
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 versioning.removed.aio import RemovedClient
8
+ from versioning.removed.models import ModelV2, EnumV2
9
+
10
+
11
+ @pytest.fixture
12
+ async def client():
13
+ async with RemovedClient(endpoint="http://localhost:3000", version="v2") as client:
14
+ yield client
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test_v2(client: RemovedClient):
19
+ assert await client.v2(ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER_V2, union_prop="bar")) == ModelV2(
20
+ prop="foo", enum_prop=EnumV2.ENUM_MEMBER_V2, union_prop="bar"
21
+ )
@@ -0,0 +1,29 @@
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 versioning.renamedfrom.aio import RenamedFromClient
8
+ from versioning.renamedfrom.models import NewModel, NewEnum
9
+
10
+
11
+ @pytest.fixture
12
+ async def client():
13
+ async with RenamedFromClient(endpoint="http://localhost:3000", version="v2") as client:
14
+ yield client
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test_new_op(client: RenamedFromClient):
19
+ assert await client.new_op(
20
+ NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10),
21
+ new_query="bar",
22
+ ) == NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
23
+
24
+
25
+ @pytest.mark.asyncio
26
+ async def test_new_interface_test(client: RenamedFromClient):
27
+ assert await client.new_interface.new_op_in_new_interface(
28
+ NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
29
+ ) == NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
@@ -0,0 +1,18 @@
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 versioning.returntypechangedfrom.aio import ReturnTypeChangedFromClient
8
+
9
+
10
+ @pytest.fixture
11
+ async def client():
12
+ async with ReturnTypeChangedFromClient(endpoint="http://localhost:3000", version="v2") as client:
13
+ yield client
14
+
15
+
16
+ @pytest.mark.asyncio
17
+ async def test(client: ReturnTypeChangedFromClient):
18
+ assert await client.test("test") == "test"
@@ -0,0 +1,22 @@
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 versioning.typechangedfrom.aio import TypeChangedFromClient
8
+ from versioning.typechangedfrom.models import TestModel
9
+
10
+
11
+ @pytest.fixture
12
+ async def client():
13
+ async with TypeChangedFromClient(endpoint="http://localhost:3000", version="v2") as client:
14
+ yield client
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test(client: TypeChangedFromClient):
19
+ assert await client.test(
20
+ TestModel(prop="foo", changed_prop="bar"),
21
+ param="baz",
22
+ ) == TestModel(prop="foo", changed_prop="bar")