@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,37 +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 base64
7
- import pytest
8
- from payload.contentnegotiation.aio import ContentNegotiationClient
9
- from payload.contentnegotiation.differentbody.models import PngImageAsJson
10
-
11
-
12
- @pytest.fixture
13
- async def client():
14
- async with ContentNegotiationClient(endpoint="http://localhost:3000") as client:
15
- yield client
16
-
17
-
18
- @pytest.mark.asyncio
19
- async def test_get_avatar_as_png(client: ContentNegotiationClient, png_data: bytes):
20
- assert b"".join([d async for d in (await client.same_body.get_avatar_as_png())]) == png_data
21
-
22
-
23
- @pytest.mark.asyncio
24
- async def test_get_avatar_as_jpeg(client: ContentNegotiationClient, jpg_data: bytes):
25
- assert b"".join([d async for d in (await client.same_body.get_avatar_as_jpeg())]) == jpg_data
26
-
27
-
28
- @pytest.mark.asyncio
29
- async def test_different_body_get_avatar_as_png(client: ContentNegotiationClient, png_data: bytes):
30
- assert b"".join([d async for d in (await client.different_body.get_avatar_as_png())]) == png_data
31
-
32
-
33
- @pytest.mark.asyncio
34
- async def test_different_body_get_avatar_as_json(client: ContentNegotiationClient, png_data: bytes):
35
- result = await client.different_body.get_avatar_as_json()
36
- expected = PngImageAsJson(content=base64.b64encode(png_data).decode())
37
- assert result == expected
@@ -1,218 +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
- from pathlib import Path
7
- import pytest
8
- from payload.multipart import models
9
- from payload.multipart.aio import MultiPartClient
10
- from payload.multipart.formdata.httpparts.nonstring.models import FloatRequest
11
- from payload.multipart.formdata.file import models as file_models
12
-
13
- JPG = Path(__file__).parent.parent / "data/image.jpg"
14
- PNG = Path(__file__).parent.parent / "data/image.png"
15
-
16
-
17
- @pytest.fixture
18
- async def client():
19
- async with MultiPartClient(endpoint="http://localhost:3000") as client:
20
- yield client
21
-
22
-
23
- @pytest.mark.asyncio
24
- async def test_anonymous_model(client: MultiPartClient):
25
- await client.form_data.anonymous_model({"profileImage": open(str(JPG), "rb")})
26
-
27
-
28
- @pytest.mark.asyncio
29
- async def test_basic(client: MultiPartClient):
30
- await client.form_data.basic(
31
- models.MultiPartRequest(
32
- id="123",
33
- profile_image=open(str(JPG), "rb"),
34
- )
35
- )
36
-
37
-
38
- @pytest.mark.asyncio
39
- async def test_binary_array_parts(client: MultiPartClient):
40
- await client.form_data.binary_array_parts(
41
- models.BinaryArrayPartsRequest(
42
- id="123",
43
- pictures=[
44
- open(str(PNG), "rb"),
45
- open(str(PNG), "rb"),
46
- ],
47
- )
48
- )
49
-
50
-
51
- @pytest.mark.asyncio
52
- async def test_check_file_name_and_content_type(client: MultiPartClient):
53
- await client.form_data.check_file_name_and_content_type(
54
- models.MultiPartRequest(
55
- id="123",
56
- profile_image=("hello.jpg", open(str(JPG), "rb"), "image/jpg"),
57
- )
58
- )
59
-
60
-
61
- @pytest.mark.asyncio
62
- async def test_complex(client: MultiPartClient):
63
- await client.form_data.file_array_and_basic(
64
- models.ComplexPartsRequest(
65
- id="123",
66
- address=models.Address(city="X"),
67
- pictures=[
68
- open(str(PNG), "rb"),
69
- open(str(PNG), "rb"),
70
- ],
71
- profile_image=open(str(JPG), "rb"),
72
- )
73
- )
74
-
75
-
76
- @pytest.mark.asyncio
77
- async def test_json_part(client: MultiPartClient):
78
- await client.form_data.json_part(
79
- models.JsonPartRequest(
80
- address=models.Address(city="X"),
81
- profile_image=open(str(JPG), "rb"),
82
- )
83
- )
84
-
85
-
86
- @pytest.mark.asyncio
87
- async def test_multi_binary_parts(client: MultiPartClient):
88
- await client.form_data.multi_binary_parts(
89
- models.MultiBinaryPartsRequest(
90
- profile_image=open(str(JPG), "rb"),
91
- picture=open(str(PNG), "rb"),
92
- )
93
- )
94
- await client.form_data.multi_binary_parts(
95
- models.MultiBinaryPartsRequest(
96
- profile_image=open(str(JPG), "rb"),
97
- )
98
- )
99
-
100
-
101
- @pytest.mark.asyncio
102
- async def test_file_with_http_part_specific_content_type(client: MultiPartClient):
103
- await client.form_data.http_parts.content_type.image_jpeg_content_type(
104
- models.FileWithHttpPartSpecificContentTypeRequest(
105
- profile_image=("hello.jpg", open(str(JPG), "rb"), "image/jpg"),
106
- )
107
- )
108
-
109
-
110
- @pytest.mark.asyncio
111
- async def test_file_with_http_part_required_content_type(client: MultiPartClient):
112
- await client.form_data.http_parts.content_type.required_content_type(
113
- models.FileWithHttpPartRequiredContentTypeRequest(
114
- profile_image=open(str(JPG), "rb"),
115
- )
116
- )
117
-
118
-
119
- @pytest.mark.asyncio
120
- async def test_file_with_http_part_optional_content_type(client: MultiPartClient):
121
- # call twice: one with content type, one without
122
- await client.form_data.http_parts.content_type.optional_content_type(
123
- models.FileWithHttpPartOptionalContentTypeRequest(
124
- profile_image=("hello.jpg", open(str(JPG), "rb").read()),
125
- )
126
- )
127
- await client.form_data.http_parts.content_type.optional_content_type(
128
- models.FileWithHttpPartOptionalContentTypeRequest(
129
- profile_image=("hello.jpg", open(str(JPG), "rb").read(), "application/octet-stream"),
130
- )
131
- )
132
-
133
-
134
- @pytest.mark.asyncio
135
- async def test_complex_with_http_part(client: MultiPartClient):
136
- await client.form_data.http_parts.json_array_and_file_array(
137
- models.ComplexHttpPartsModelRequest(
138
- id="123",
139
- previous_addresses=[
140
- models.Address(city="Y"),
141
- models.Address(city="Z"),
142
- ],
143
- address=models.Address(city="X"),
144
- pictures=[
145
- open(str(PNG), "rb"),
146
- open(str(PNG), "rb"),
147
- ],
148
- profile_image=open(str(JPG), "rb"),
149
- )
150
- )
151
-
152
-
153
- @pytest.mark.asyncio
154
- async def test_http_parts_non_string_float(client: MultiPartClient):
155
- await client.form_data.http_parts.non_string.float(FloatRequest(temperature=0.5))
156
-
157
-
158
- @pytest.mark.asyncio
159
- async def test_with_wire_name(client: MultiPartClient):
160
- await client.form_data.with_wire_name(
161
- models.MultiPartRequestWithWireName(
162
- identifier="123",
163
- image=open(str(JPG), "rb"),
164
- )
165
- )
166
-
167
-
168
- @pytest.mark.asyncio
169
- async def test_optional_parts(client: MultiPartClient):
170
- # First time with only id
171
- await client.form_data.optional_parts(
172
- models.MultiPartOptionalRequest(
173
- id="123",
174
- )
175
- )
176
- # Second time with only profileImage
177
- await client.form_data.optional_parts(
178
- models.MultiPartOptionalRequest(
179
- profile_image=open(str(JPG), "rb"),
180
- )
181
- )
182
- # Third time with both id and profileImage
183
- await client.form_data.optional_parts(
184
- models.MultiPartOptionalRequest(
185
- id="123",
186
- profile_image=open(str(JPG), "rb"),
187
- )
188
- )
189
-
190
-
191
- @pytest.mark.asyncio
192
- async def test_file_upload_file_specific_content_type(client: MultiPartClient):
193
- await client.form_data.file.upload_file_specific_content_type(
194
- file_models.UploadFileSpecificContentTypeRequest(
195
- file=("image.png", open(str(PNG), "rb"), "image/png"),
196
- )
197
- )
198
-
199
-
200
- @pytest.mark.asyncio
201
- async def test_file_upload_file_required_filename(client: MultiPartClient):
202
- await client.form_data.file.upload_file_required_filename(
203
- file_models.UploadFileRequiredFilenameRequest(
204
- file=("image.png", open(str(PNG), "rb"), "image/png"),
205
- )
206
- )
207
-
208
-
209
- @pytest.mark.asyncio
210
- async def test_file_upload_file_array(client: MultiPartClient):
211
- await client.form_data.file.upload_file_array(
212
- file_models.UploadFileArrayRequest(
213
- files=[
214
- ("image.png", open(str(PNG), "rb"), "image/png"),
215
- ("image.png", open(str(PNG), "rb"), "image/png"),
216
- ],
217
- )
218
- )
@@ -1,24 +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 serialization.encodedname.json.aio import JsonClient
8
- from serialization.encodedname.json.property import models
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with JsonClient() as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_property_send(client: JsonClient):
19
- await client.property.send(models.JsonEncodedNameModel(default_name=True))
20
-
21
-
22
- @pytest.mark.asyncio
23
- async def test_property_get(client: JsonClient):
24
- assert (await client.property.get()).default_name
@@ -1,73 +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 specialwords.aio import SpecialWordsClient
8
- from specialwords.models import models
9
- from specialwords.modelproperties import models as model_properties_models
10
- from specialwords.extensiblestrings import models as extensible_strings_models
11
-
12
-
13
- @pytest.fixture
14
- async def client():
15
- async with SpecialWordsClient() as client:
16
- yield client
17
-
18
-
19
- @pytest.mark.asyncio
20
- async def test_operations(client: SpecialWordsClient, special_words):
21
- for sw in special_words:
22
- suffix = "" if sw == "constructor" else "_method"
23
- await getattr(client.operations, sw + suffix)()
24
-
25
-
26
- @pytest.mark.asyncio
27
- async def test_parameter(client: SpecialWordsClient, special_words):
28
- for sw in special_words:
29
- suffix = "" if sw == "constructor" else "_parameter"
30
- await getattr(client.parameters, "with_" + sw)(**{sw + suffix: "ok"})
31
- await client.parameters.with_cancellation_token(cancellation_token="ok")
32
-
33
-
34
- @pytest.mark.asyncio
35
- async def test_model(client: SpecialWordsClient, special_words):
36
- for sw in special_words:
37
- suffix = "" if sw == "constructor" else "Model"
38
- model = getattr(models, sw.capitalize() + suffix)
39
- await getattr(client.models, "with_" + sw)(model(name="ok"))
40
-
41
-
42
- @pytest.mark.asyncio
43
- async def test_model_properties(client: SpecialWordsClient):
44
- await client.model_properties.same_as_model(model_properties_models.SameAsModel(same_as_model="ok"))
45
-
46
-
47
- @pytest.mark.asyncio
48
- async def test_model_properties_dict_methods(client: SpecialWordsClient):
49
- await client.model_properties.dict_methods(
50
- body=model_properties_models.DictMethods(
51
- keys_property="ok",
52
- items_property="ok",
53
- values_property="ok",
54
- popitem_property="ok",
55
- clear_property="ok",
56
- update_property="ok",
57
- setdefault_property="ok",
58
- pop_property="ok",
59
- get_property="ok",
60
- copy_property="ok",
61
- )
62
- )
63
-
64
-
65
- @pytest.mark.asyncio
66
- async def test_model_properties_with_list(client: SpecialWordsClient):
67
- await client.model_properties.with_list(model_properties_models.ModelWithList(list="ok"))
68
-
69
-
70
- @pytest.mark.asyncio
71
- async def test_extensible_strings(client: SpecialWordsClient):
72
- for enum_value in extensible_strings_models.ExtensibleString:
73
- assert enum_value == await client.extensible_strings.put_extensible_string_value(body=enum_value)
@@ -1,24 +0,0 @@
1
- # ------------------------------------
2
- # Copyright (c) Microsoft Corporation.
3
- # Licensed under the MIT License.
4
- # ------------------------------------
5
- import traceback
6
- import pytest
7
- from typetest.scalar.aio import ScalarClient
8
- from corehttp.exceptions import HttpResponseError
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with ScalarClient() as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_track_back(client: ScalarClient):
19
- try:
20
- await client.string.put("to raise exception")
21
- except HttpResponseError:
22
- track_back = traceback.format_exc().lower()
23
- assert "azure" not in track_back
24
- assert "microsoft" not in track_back
@@ -1,91 +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 os
7
- import subprocess
8
- import signal
9
- import pytest
10
- import re
11
- from pathlib import Path
12
-
13
- FILE_FOLDER = Path(__file__).parent
14
-
15
-
16
- def start_server_process():
17
- http_path = Path(os.path.dirname(__file__)) / Path("../../../../node_modules/@typespec/http-specs")
18
- os.chdir(http_path.resolve())
19
- cmd = "tsp-spector serve ./specs"
20
- if os.name == "nt":
21
- return subprocess.Popen(cmd, shell=True)
22
- return subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid)
23
-
24
-
25
- def terminate_server_process(process):
26
- if os.name == "nt":
27
- process.kill()
28
- else:
29
- os.killpg(os.getpgid(process.pid), signal.SIGTERM) # Send the signal to all the process groups
30
-
31
-
32
- @pytest.fixture(scope="session", autouse=True)
33
- def testserver():
34
- """Start spector mock api tests"""
35
- server = start_server_process()
36
- yield
37
- terminate_server_process(server)
38
-
39
-
40
- SPECIAL_WORDS = [
41
- "and",
42
- "as",
43
- "assert",
44
- "async",
45
- "await",
46
- "break",
47
- "class",
48
- "constructor",
49
- "continue",
50
- "def",
51
- "del",
52
- "elif",
53
- "else",
54
- "except",
55
- "exec",
56
- "finally",
57
- "for",
58
- "from",
59
- "global",
60
- "if",
61
- "import",
62
- "in",
63
- "is",
64
- "lambda",
65
- "not",
66
- "or",
67
- "pass",
68
- "raise",
69
- "return",
70
- "try",
71
- "while",
72
- "with",
73
- "yield",
74
- ]
75
-
76
-
77
- @pytest.fixture
78
- def special_words() -> list[str]:
79
- return SPECIAL_WORDS
80
-
81
-
82
- @pytest.fixture
83
- def png_data() -> bytes:
84
- with open(str(FILE_FOLDER / "data/image.png"), "rb") as file_in:
85
- return file_in.read()
86
-
87
-
88
- @pytest.fixture
89
- def jpg_data() -> bytes:
90
- with open(str(FILE_FOLDER / "data/image.jpg"), "rb") as file_in:
91
- return file_in.read()
@@ -1,17 +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
- from authentication.oauth2 import OAuth2Client
7
-
8
-
9
- def test_oauth2_auth_flows():
10
- oauth2_client = OAuth2Client("fake_credential")
11
- assert oauth2_client._config.authentication_policy._auth_flows == [
12
- {
13
- "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
14
- "scopes": [{"value": "https://security.microsoft.com/.default"}],
15
- "type": "implicit",
16
- }
17
- ]
@@ -1,60 +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 datetime
7
-
8
- import pytest
9
- from encode.duration import DurationClient
10
- from encode.duration.property.models import (
11
- Int32SecondsDurationProperty,
12
- ISO8601DurationProperty,
13
- FloatSecondsDurationProperty,
14
- DefaultDurationProperty,
15
- FloatSecondsDurationArrayProperty,
16
- )
17
-
18
-
19
- @pytest.fixture
20
- def client():
21
- with DurationClient() as client:
22
- yield client
23
-
24
-
25
- def test_query(client: DurationClient):
26
- client.query.default(input=datetime.timedelta(days=40))
27
- client.query.iso8601(input=datetime.timedelta(days=40))
28
- client.query.int32_seconds(input=36)
29
- client.query.int32_seconds_array(input=[36, 47])
30
- client.query.float_seconds(input=35.625)
31
- client.query.float64_seconds(input=35.625)
32
-
33
-
34
- def test_property(client: DurationClient):
35
- result = client.property.default(DefaultDurationProperty(value=datetime.timedelta(days=40)))
36
- assert result.value == datetime.timedelta(days=40)
37
- result = client.property.default(DefaultDurationProperty(value="P40D"))
38
- assert result.value == datetime.timedelta(days=40)
39
- result = client.property.iso8601(ISO8601DurationProperty(value=datetime.timedelta(days=40)))
40
- assert result.value == datetime.timedelta(days=40)
41
- result = client.property.iso8601(ISO8601DurationProperty(value="P40D"))
42
- assert result.value == datetime.timedelta(days=40)
43
- result = client.property.int32_seconds(Int32SecondsDurationProperty(value=36))
44
- assert result.value == 36
45
- result = client.property.float_seconds(FloatSecondsDurationProperty(value=35.625))
46
- assert abs(result.value - 35.625) < 0.0001
47
- result = client.property.float64_seconds(FloatSecondsDurationProperty(value=35.625))
48
- assert abs(result.value - 35.625) < 0.0001
49
- result = client.property.float_seconds_array(FloatSecondsDurationArrayProperty(value=[35.625, 46.75]))
50
- assert abs(result.value[0] - 35.625) < 0.0001
51
- assert abs(result.value[1] - 46.75) < 0.0001
52
-
53
-
54
- def test_header(client: DurationClient):
55
- client.header.default(duration=datetime.timedelta(days=40))
56
- client.header.iso8601(duration=datetime.timedelta(days=40))
57
- client.header.iso8601_array(duration=[datetime.timedelta(days=40), datetime.timedelta(days=50)])
58
- client.header.int32_seconds(duration=36)
59
- client.header.float_seconds(duration=35.625)
60
- client.header.float64_seconds(duration=35.625)
@@ -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 encode.numeric import NumericClient
8
- from encode.numeric.property import models
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with NumericClient() as client:
14
- yield client
15
-
16
-
17
- def test_safeint_as_string(client: NumericClient):
18
- result = client.property.safeint_as_string(models.SafeintAsStringProperty(value=10000000000))
19
- assert result.value == 10000000000
20
- assert result["value"] == "10000000000"
21
-
22
-
23
- def test_uint32_as_string_optional(client: NumericClient):
24
- result = client.property.uint32_as_string_optional(models.Uint32AsStringProperty(value=1))
25
- assert result.value == 1
26
- assert result["value"] == "1"
27
-
28
-
29
- def test_uint8_as_string_optional(client: NumericClient):
30
- result = client.property.uint8_as_string(models.Uint32AsStringProperty(value=255))
31
- assert result.value == 255
32
- assert result["value"] == "255"
@@ -1,22 +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 parameters.basic import BasicClient
8
- from parameters.basic.explicitbody.models import User
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with BasicClient() as client:
14
- yield client
15
-
16
-
17
- def test_explicit_simple(client: BasicClient):
18
- client.explicit_body.simple(User(name="foo"))
19
-
20
-
21
- def test_implicit_simple(client: BasicClient):
22
- client.implicit_body.simple(name="foo")
@@ -1,66 +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 parameters.spread import SpreadClient
8
- from parameters.spread.model.models import BodyParameter
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with SpreadClient() as client:
14
- yield client
15
-
16
-
17
- def test_model_body(client: SpreadClient):
18
- client.model.spread_as_request_body(name="foo")
19
-
20
-
21
- def test_model_composite_request_only_with_body(client: SpreadClient):
22
- client.model.spread_composite_request_only_with_body(BodyParameter(name="foo"))
23
-
24
-
25
- def test_model_composite_request_without_body(client: SpreadClient):
26
- client.model.spread_composite_request_without_body(name="foo", test_header="bar")
27
-
28
-
29
- def test_model_composite_request(client: SpreadClient):
30
- client.model.spread_composite_request(name="foo", body=BodyParameter(name="foo"), test_header="bar")
31
-
32
-
33
- def test_model_composite_request_mix(client: SpreadClient):
34
- client.model.spread_composite_request_mix(name="foo", prop="foo", test_header="bar")
35
-
36
-
37
- def test_alias_body(client: SpreadClient):
38
- client.alias.spread_as_request_body(name="foo")
39
-
40
-
41
- def test_alias_parameter(client: SpreadClient):
42
- client.alias.spread_as_request_parameter("1", x_ms_test_header="bar", name="foo")
43
-
44
-
45
- def test_alias_multiple_parameter(client: SpreadClient):
46
- client.alias.spread_with_multiple_parameters(
47
- "1",
48
- x_ms_test_header="bar",
49
- required_string="foo",
50
- required_int_list=[1, 2],
51
- optional_string_list=["foo", "bar"],
52
- optional_int=1,
53
- )
54
- client.alias.spread_with_multiple_parameters(
55
- "1",
56
- {"requiredString": "foo", "optionalInt": 1, "requiredIntList": [1, 2], "optionalStringList": ["foo", "bar"]},
57
- x_ms_test_header="bar",
58
- )
59
-
60
-
61
- def test_inner_model(client: SpreadClient):
62
- client.alias.spread_parameter_with_inner_model(id="1", x_ms_test_header="bar", body={"name": "foo"})
63
-
64
-
65
- def test_inner_alias(client: SpreadClient):
66
- client.alias.spread_parameter_with_inner_alias(id="1", x_ms_test_header="bar", body={"name": "foo", "age": 1})