@typespec/http-client-python 0.28.1 → 0.28.3

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 (311) hide show
  1. package/dist/emitter/code-model.d.ts.map +1 -1
  2. package/dist/emitter/code-model.js +6 -6
  3. package/dist/emitter/code-model.js.map +1 -1
  4. package/dist/emitter/emitter.d.ts.map +1 -1
  5. package/dist/emitter/emitter.js +27 -28
  6. package/dist/emitter/emitter.js.map +1 -1
  7. package/dist/emitter/lib.d.ts +4 -1
  8. package/dist/emitter/lib.d.ts.map +1 -1
  9. package/dist/emitter/lib.js.map +1 -1
  10. package/dist/emitter/system-requirements.js +6 -4
  11. package/dist/emitter/system-requirements.js.map +1 -1
  12. package/dist/emitter/types.d.ts +2 -5
  13. package/dist/emitter/types.d.ts.map +1 -1
  14. package/dist/emitter/types.js +55 -58
  15. package/dist/emitter/types.js.map +1 -1
  16. package/dist/emitter/utils.d.ts.map +1 -1
  17. package/dist/emitter/utils.js +16 -17
  18. package/dist/emitter/utils.js.map +1 -1
  19. package/emitter/src/code-model.ts +6 -13
  20. package/emitter/src/emitter.ts +29 -31
  21. package/emitter/src/lib.ts +4 -0
  22. package/emitter/src/system-requirements.ts +4 -4
  23. package/emitter/src/types.ts +67 -57
  24. package/emitter/src/utils.ts +16 -18
  25. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  26. package/eng/scripts/Build-Packages.ps1 +62 -37
  27. package/eng/scripts/Check-GitChanges.ps1 +30 -3
  28. package/eng/scripts/Functions.ps1 +54 -15
  29. package/eng/scripts/Generate.ps1 +42 -8
  30. package/eng/scripts/Generation.psm1 +44 -15
  31. package/eng/scripts/Initialize-Repository.ps1 +29 -11
  32. package/eng/scripts/Test-Packages.ps1 +47 -31
  33. package/eng/scripts/ci/config/eslint-ci.config.mjs +54 -0
  34. package/eng/scripts/ci/dev_requirements.txt +1 -0
  35. package/eng/scripts/ci/format.ts +232 -2
  36. package/eng/scripts/ci/lint.ts +216 -20
  37. package/eng/scripts/ci/regenerate-common.ts +18 -14
  38. package/eng/scripts/ci/regenerate.ts +305 -68
  39. package/eng/scripts/ci/run-tests.ts +402 -0
  40. package/eng/scripts/ci/run_mypy.py +4 -3
  41. package/eng/scripts/ci/run_pylint.py +4 -3
  42. package/eng/scripts/ci/run_pyright.py +4 -3
  43. package/eng/scripts/ci/typecheck.ts +225 -0
  44. package/eng/scripts/ci/util.py +1 -1
  45. package/eng/scripts/ci/utils.ts +5 -5
  46. package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
  47. package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
  48. package/eng/scripts/setup/build.ts +1 -1
  49. package/eng/scripts/setup/build_pygen_wheel.py +1 -0
  50. package/eng/scripts/setup/install.py +1 -0
  51. package/eng/scripts/setup/prepare.py +1 -0
  52. package/eng/scripts/setup/prepare.ts +1 -1
  53. package/eng/scripts/setup/run_tsp.py +3 -3
  54. package/eng/scripts/setup/system-requirements.ts +8 -4
  55. package/eng/scripts/setup/venvtools.py +1 -0
  56. package/generator/build/lib/pygen/codegen/models/operation.py +9 -8
  57. package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +157 -64
  58. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  59. package/generator/pygen/codegen/models/operation.py +9 -8
  60. package/generator/pygen/codegen/templates/model_base.py.jinja2 +157 -64
  61. package/package.json +48 -42
  62. package/eng/scripts/ci/run-ci.ts +0 -89
  63. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_commonproperties_async.py +0 -94
  64. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_largeheader_async.py +0 -30
  65. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_nonresource_async.py +0 -36
  66. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_operationtemplates_async.py +0 -205
  67. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_resource_async.py +0 -478
  68. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +0 -101
  69. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_header_async.py +0 -18
  70. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_path_async.py +0 -18
  71. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_query_async.py +0 -18
  72. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +0 -46
  73. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +0 -58
  74. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +0 -82
  75. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_deserialize_empty_string_as_null_async.py +0 -20
  76. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +0 -115
  77. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_hierrarchy_building_async.py +0 -53
  78. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +0 -28
  79. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_override_async.py +0 -106
  80. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +0 -38
  81. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +0 -76
  82. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +0 -22
  83. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +0 -39
  84. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +0 -33
  85. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +0 -80
  86. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +0 -41
  87. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +0 -87
  88. package/generator/test/azure/mock_api_tests/asynctests/test_azure_encode_duration_async.py +0 -19
  89. package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +0 -30
  90. package/generator/test/azure/mock_api_tests/asynctests/test_azure_payload_pageable_async.py +0 -19
  91. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py +0 -248
  92. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +0 -110
  93. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_shared_models_async.py +0 -132
  94. package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +0 -30
  95. package/generator/test/azure/mock_api_tests/asynctests/test_azure_versioning_previewversion_async.py +0 -53
  96. package/generator/test/azure/mock_api_tests/asynctests/test_client_namespace_async.py +0 -34
  97. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py +0 -69
  98. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_enum_conflict_async.py +0 -37
  99. package/generator/test/azure/mock_api_tests/asynctests/test_client_overload_async.py +0 -27
  100. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +0 -64
  101. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +0 -31
  102. package/generator/test/azure/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  103. package/generator/test/azure/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  104. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  105. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  106. package/generator/test/azure/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  107. package/generator/test/azure/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -216
  108. package/generator/test/azure/mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +0 -130
  109. package/generator/test/azure/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  110. package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +0 -31
  111. package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +0 -71
  112. package/generator/test/azure/mock_api_tests/conftest.py +0 -207
  113. package/generator/test/azure/mock_api_tests/data/image.jpg +0 -0
  114. package/generator/test/azure/mock_api_tests/data/image.png +0 -0
  115. package/generator/test/azure/mock_api_tests/test_azure_arm_commonproperties.py +0 -89
  116. package/generator/test/azure/mock_api_tests/test_azure_arm_largeheader.py +0 -27
  117. package/generator/test/azure/mock_api_tests/test_azure_arm_nonresource.py +0 -34
  118. package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +0 -180
  119. package/generator/test/azure/mock_api_tests/test_azure_arm_resource.py +0 -436
  120. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +0 -92
  121. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_header.py +0 -17
  122. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_path.py +0 -17
  123. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_query.py +0 -17
  124. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +0 -42
  125. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +0 -51
  126. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +0 -70
  127. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_deserialize_empty_string_as_null.py +0 -19
  128. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +0 -104
  129. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_hierrarchy_building.py +0 -45
  130. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +0 -27
  131. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_override.py +0 -102
  132. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +0 -32
  133. package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +0 -70
  134. package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +0 -20
  135. package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +0 -32
  136. package/generator/test/azure/mock_api_tests/test_azure_core_model.py +0 -30
  137. package/generator/test/azure/mock_api_tests/test_azure_core_page.py +0 -71
  138. package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +0 -35
  139. package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +0 -85
  140. package/generator/test/azure/mock_api_tests/test_azure_encode_duration.py +0 -18
  141. package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +0 -29
  142. package/generator/test/azure/mock_api_tests/test_azure_payload_pageable.py +0 -18
  143. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +0 -235
  144. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +0 -104
  145. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service_shared_models.py +0 -128
  146. package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +0 -29
  147. package/generator/test/azure/mock_api_tests/test_azure_versioning_previewversion.py +0 -50
  148. package/generator/test/azure/mock_api_tests/test_clear_output_folder.py +0 -23
  149. package/generator/test/azure/mock_api_tests/test_client_namespace.py +0 -32
  150. package/generator/test/azure/mock_api_tests/test_client_naming.py +0 -57
  151. package/generator/test/azure/mock_api_tests/test_client_naming_enum_conflict.py +0 -35
  152. package/generator/test/azure/mock_api_tests/test_client_overload.py +0 -25
  153. package/generator/test/azure/mock_api_tests/test_client_structure.py +0 -60
  154. package/generator/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +0 -29
  155. package/generator/test/azure/mock_api_tests/test_encode_duration.py +0 -60
  156. package/generator/test/azure/mock_api_tests/test_encode_numeric.py +0 -31
  157. package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +0 -251
  158. package/generator/test/azure/mock_api_tests/test_parameters_basic.py +0 -22
  159. package/generator/test/azure/mock_api_tests/test_parameters_spread.py +0 -66
  160. package/generator/test/azure/mock_api_tests/test_payload_content_negotiation.py +0 -33
  161. package/generator/test/azure/mock_api_tests/test_payload_multipart.py +0 -198
  162. package/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py +0 -124
  163. package/generator/test/azure/mock_api_tests/test_serialization_encoded_name_json.py +0 -21
  164. package/generator/test/azure/mock_api_tests/test_service_multi_service.py +0 -29
  165. package/generator/test/azure/mock_api_tests/test_special_words.py +0 -63
  166. package/generator/test/azure/requirements.txt +0 -125
  167. package/generator/test/azure/tox.ini +0 -64
  168. package/generator/test/data/image.jpg +0 -0
  169. package/generator/test/data/image.png +0 -0
  170. package/generator/test/dev_requirements.txt +0 -8
  171. package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +0 -140
  172. package/generator/test/generic_mock_api_tests/asynctests/test_encode_array_async.py +0 -139
  173. package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -132
  174. package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +0 -127
  175. package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +0 -35
  176. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +0 -30
  177. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +0 -38
  178. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +0 -24
  179. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +0 -18
  180. package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +0 -98
  181. package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +0 -27
  182. package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +0 -134
  183. package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +0 -150
  184. package/generator/test/generic_mock_api_tests/asynctests/test_response_status_code_range_async.py +0 -38
  185. package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +0 -331
  186. package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +0 -18
  187. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +0 -25
  188. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +0 -18
  189. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +0 -28
  190. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +0 -34
  191. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +0 -38
  192. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +0 -19
  193. package/generator/test/generic_mock_api_tests/asynctests/test_specs_documentation_async.py +0 -59
  194. package/generator/test/generic_mock_api_tests/asynctests/test_streaming_jsonl_async.py +0 -27
  195. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +0 -127
  196. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +0 -98
  197. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +0 -25
  198. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +0 -27
  199. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_file_async.py +0 -59
  200. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +0 -32
  201. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +0 -70
  202. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +0 -85
  203. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +0 -34
  204. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +0 -34
  205. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +0 -67
  206. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +0 -32
  207. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +0 -47
  208. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +0 -353
  209. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +0 -110
  210. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +0 -197
  211. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +0 -315
  212. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +0 -60
  213. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +0 -90
  214. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +0 -36
  215. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +0 -21
  216. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +0 -39
  217. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +0 -29
  218. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +0 -18
  219. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +0 -22
  220. package/generator/test/generic_mock_api_tests/conftest.py +0 -75
  221. package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
  222. package/generator/test/generic_mock_api_tests/data/image.png +0 -0
  223. package/generator/test/generic_mock_api_tests/test_authentication.py +0 -130
  224. package/generator/test/generic_mock_api_tests/test_encode_array.py +0 -126
  225. package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -128
  226. package/generator/test/generic_mock_api_tests/test_encode_datetime.py +0 -123
  227. package/generator/test/generic_mock_api_tests/test_headasboolean.py +0 -33
  228. package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +0 -27
  229. package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +0 -33
  230. package/generator/test/generic_mock_api_tests/test_parameters_path.py +0 -22
  231. package/generator/test/generic_mock_api_tests/test_parameters_query.py +0 -17
  232. package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +0 -93
  233. package/generator/test/generic_mock_api_tests/test_payload_media_type.py +0 -25
  234. package/generator/test/generic_mock_api_tests/test_payload_pageable.py +0 -99
  235. package/generator/test/generic_mock_api_tests/test_payload_xml.py +0 -135
  236. package/generator/test/generic_mock_api_tests/test_response_status_code_range.py +0 -36
  237. package/generator/test/generic_mock_api_tests/test_routes.py +0 -285
  238. package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +0 -17
  239. package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +0 -21
  240. package/generator/test/generic_mock_api_tests/test_server_path_single.py +0 -17
  241. package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +0 -25
  242. package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +0 -30
  243. package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +0 -34
  244. package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +0 -18
  245. package/generator/test/generic_mock_api_tests/test_specs_documentation.py +0 -51
  246. package/generator/test/generic_mock_api_tests/test_streaming_jsonl.py +0 -25
  247. package/generator/test/generic_mock_api_tests/test_typetest_array.py +0 -111
  248. package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +0 -86
  249. package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +0 -23
  250. package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +0 -25
  251. package/generator/test/generic_mock_api_tests/test_typetest_file.py +0 -52
  252. package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +0 -29
  253. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +0 -58
  254. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +0 -79
  255. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +0 -31
  256. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +0 -32
  257. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +0 -60
  258. package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +0 -28
  259. package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +0 -40
  260. package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +0 -314
  261. package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +0 -102
  262. package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +0 -174
  263. package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +0 -286
  264. package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -53
  265. package/generator/test/generic_mock_api_tests/test_typetest_union.py +0 -80
  266. package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +0 -290
  267. package/generator/test/generic_mock_api_tests/test_versioning_added.py +0 -33
  268. package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +0 -20
  269. package/generator/test/generic_mock_api_tests/test_versioning_removed.py +0 -37
  270. package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +0 -27
  271. package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +0 -17
  272. package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +0 -21
  273. package/generator/test/unbranded/mock_api_tests/asynctests/test_auth_flow_async.py +0 -19
  274. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  275. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  276. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  277. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  278. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  279. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -218
  280. package/generator/test/unbranded/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  281. package/generator/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +0 -73
  282. package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +0 -24
  283. package/generator/test/unbranded/mock_api_tests/conftest.py +0 -91
  284. package/generator/test/unbranded/mock_api_tests/data/image.jpg +0 -0
  285. package/generator/test/unbranded/mock_api_tests/data/image.png +0 -0
  286. package/generator/test/unbranded/mock_api_tests/test_auth_flow.py +0 -17
  287. package/generator/test/unbranded/mock_api_tests/test_encode_duration.py +0 -60
  288. package/generator/test/unbranded/mock_api_tests/test_encode_numeric.py +0 -32
  289. package/generator/test/unbranded/mock_api_tests/test_parameters_basic.py +0 -22
  290. package/generator/test/unbranded/mock_api_tests/test_parameters_spread.py +0 -66
  291. package/generator/test/unbranded/mock_api_tests/test_payload_content_negotiation.py +0 -33
  292. package/generator/test/unbranded/mock_api_tests/test_payload_multipart.py +0 -200
  293. package/generator/test/unbranded/mock_api_tests/test_serialization_encoded_name_json.py +0 -22
  294. package/generator/test/unbranded/mock_api_tests/test_special_words.py +0 -66
  295. package/generator/test/unbranded/mock_api_tests/test_unbranded.py +0 -65
  296. package/generator/test/unbranded/requirements.txt +0 -69
  297. package/generator/test/unbranded/tox.ini +0 -64
  298. package/generator/test/unittests/conftest.py +0 -15
  299. package/generator/test/unittests/requirements.txt +0 -3
  300. package/generator/test/unittests/test_enums.py +0 -89
  301. package/generator/test/unittests/test_model_base_serialization.py +0 -4906
  302. package/generator/test/unittests/test_model_base_xml_serialization.py +0 -1239
  303. package/generator/test/unittests/test_name_converter.py +0 -35
  304. package/generator/test/unittests/test_optional_return_type.py +0 -268
  305. package/generator/test/unittests/test_parameter_ordering.py +0 -104
  306. package/generator/test/unittests/test_sort_schema.py +0 -93
  307. package/generator/test/unittests/tox.ini +0 -5
  308. /package/eng/scripts/ci/{mypy.ini → config/mypy.ini} +0 -0
  309. /package/eng/scripts/ci/{pylintrc → config/pylintrc} +0 -0
  310. /package/eng/scripts/ci/{pyproject.toml → config/pyproject.toml} +0 -0
  311. /package/eng/scripts/ci/{pyrightconfig.json → config/pyrightconfig.json} +0 -0
@@ -1,33 +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 import ContentNegotiationClient
9
- from payload.contentnegotiation.differentbody.models import PngImageAsJson
10
-
11
-
12
- @pytest.fixture
13
- def client():
14
- with ContentNegotiationClient(endpoint="http://localhost:3000") as client:
15
- yield client
16
-
17
-
18
- def test_get_avatar_as_png(client: ContentNegotiationClient, png_data: bytes):
19
- assert b"".join(client.same_body.get_avatar_as_png()) == png_data
20
-
21
-
22
- def test_get_avatar_as_jpeg(client: ContentNegotiationClient, jpg_data: bytes):
23
- assert b"".join(client.same_body.get_avatar_as_jpeg()) == jpg_data
24
-
25
-
26
- def test_different_body_get_avatar_as_png(client: ContentNegotiationClient, png_data: bytes):
27
- assert b"".join(client.different_body.get_avatar_as_png()) == png_data
28
-
29
-
30
- def test_different_body_get_avatar_as_json(client: ContentNegotiationClient, png_data: bytes):
31
- result = client.different_body.get_avatar_as_json()
32
- expected = PngImageAsJson(content=base64.b64encode(png_data).decode())
33
- assert result == expected
@@ -1,200 +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 MultiPartClient, models
9
- from payload.multipart.formdata.httpparts.nonstring.models import FloatRequest
10
- from payload.multipart.formdata.file import models as file_models
11
-
12
- JPG = Path(__file__).parent / "data/image.jpg"
13
- PNG = Path(__file__).parent / "data/image.png"
14
-
15
-
16
- @pytest.fixture
17
- def client():
18
- with MultiPartClient(endpoint="http://localhost:3000") as client:
19
- yield client
20
-
21
-
22
- def test_anonymous_model(client: MultiPartClient):
23
- client.form_data.anonymous_model({"profileImage": open(str(JPG), "rb")})
24
-
25
-
26
- def test_basic(client: MultiPartClient):
27
- client.form_data.basic(
28
- models.MultiPartRequest(
29
- id="123",
30
- profile_image=open(str(JPG), "rb"),
31
- )
32
- )
33
-
34
-
35
- def test_binary_array_parts(client: MultiPartClient):
36
- client.form_data.binary_array_parts(
37
- models.BinaryArrayPartsRequest(
38
- id="123",
39
- pictures=[
40
- open(str(PNG), "rb"),
41
- open(str(PNG), "rb"),
42
- ],
43
- )
44
- )
45
-
46
-
47
- def test_check_file_name_and_content_type(client: MultiPartClient):
48
- client.form_data.check_file_name_and_content_type(
49
- models.MultiPartRequest(
50
- id="123",
51
- profile_image=("hello.jpg", open(str(JPG), "rb"), "image/jpg"),
52
- )
53
- )
54
-
55
-
56
- def test_complex(client: MultiPartClient):
57
- client.form_data.file_array_and_basic(
58
- models.ComplexPartsRequest(
59
- id="123",
60
- address=models.Address(city="X"),
61
- pictures=[
62
- open(str(PNG), "rb"),
63
- open(str(PNG), "rb"),
64
- ],
65
- profile_image=open(str(JPG), "rb"),
66
- )
67
- )
68
-
69
-
70
- def test_json_part(client: MultiPartClient):
71
- client.form_data.json_part(
72
- models.JsonPartRequest(
73
- address=models.Address(city="X"),
74
- profile_image=open(str(JPG), "rb"),
75
- )
76
- )
77
-
78
-
79
- def test_multi_binary_parts(client: MultiPartClient):
80
- client.form_data.multi_binary_parts(
81
- models.MultiBinaryPartsRequest(
82
- profile_image=open(str(JPG), "rb"),
83
- picture=open(str(PNG), "rb"),
84
- )
85
- )
86
- client.form_data.multi_binary_parts(
87
- models.MultiBinaryPartsRequest(
88
- profile_image=open(str(JPG), "rb"),
89
- )
90
- )
91
-
92
-
93
- def test_file_with_http_part_specific_content_type(client: MultiPartClient):
94
- client.form_data.http_parts.content_type.image_jpeg_content_type(
95
- models.FileWithHttpPartSpecificContentTypeRequest(
96
- profile_image=("hello.jpg", open(str(JPG), "rb"), "image/jpg"),
97
- )
98
- )
99
-
100
-
101
- def test_file_with_http_part_required_content_type(client: MultiPartClient):
102
- client.form_data.http_parts.content_type.required_content_type(
103
- models.FileWithHttpPartRequiredContentTypeRequest(
104
- profile_image=open(str(JPG), "rb"),
105
- )
106
- )
107
-
108
-
109
- def test_file_with_http_part_optional_content_type(client: MultiPartClient):
110
- # call twice: one with content type, one without
111
- client.form_data.http_parts.content_type.optional_content_type(
112
- models.FileWithHttpPartOptionalContentTypeRequest(
113
- profile_image=("hello.jpg", open(str(JPG), "rb").read()),
114
- )
115
- )
116
- client.form_data.http_parts.content_type.optional_content_type(
117
- models.FileWithHttpPartOptionalContentTypeRequest(
118
- profile_image=("hello.jpg", open(str(JPG), "rb").read(), "application/octet-stream"),
119
- )
120
- )
121
-
122
-
123
- def test_complex_with_http_part(client: MultiPartClient):
124
- client.form_data.http_parts.json_array_and_file_array(
125
- models.ComplexHttpPartsModelRequest(
126
- id="123",
127
- previous_addresses=[
128
- models.Address(city="Y"),
129
- models.Address(city="Z"),
130
- ],
131
- address=models.Address(city="X"),
132
- pictures=[
133
- open(str(PNG), "rb"),
134
- open(str(PNG), "rb"),
135
- ],
136
- profile_image=open(str(JPG), "rb"),
137
- )
138
- )
139
-
140
-
141
- def test_http_parts_non_string_float(client: MultiPartClient):
142
- client.form_data.http_parts.non_string.float(FloatRequest(temperature=0.5))
143
-
144
-
145
- def test_with_wire_name(client: MultiPartClient):
146
- client.form_data.with_wire_name(
147
- models.MultiPartRequestWithWireName(
148
- identifier="123",
149
- image=open(str(JPG), "rb"),
150
- )
151
- )
152
-
153
-
154
- def test_optional_parts(client: MultiPartClient):
155
- # First time with only id
156
- client.form_data.optional_parts(
157
- models.MultiPartOptionalRequest(
158
- id="123",
159
- )
160
- )
161
- # Second time with only profileImage
162
- client.form_data.optional_parts(
163
- models.MultiPartOptionalRequest(
164
- profile_image=open(str(JPG), "rb"),
165
- )
166
- )
167
- # Third time with both id and profileImage
168
- client.form_data.optional_parts(
169
- models.MultiPartOptionalRequest(
170
- id="123",
171
- profile_image=open(str(JPG), "rb"),
172
- )
173
- )
174
-
175
-
176
- def test_file_upload_file_specific_content_type(client: MultiPartClient):
177
- client.form_data.file.upload_file_specific_content_type(
178
- file_models.UploadFileSpecificContentTypeRequest(
179
- file=("image.png", open(str(PNG), "rb"), "image/png"),
180
- )
181
- )
182
-
183
-
184
- def test_file_upload_file_required_filename(client: MultiPartClient):
185
- client.form_data.file.upload_file_required_filename(
186
- file_models.UploadFileRequiredFilenameRequest(
187
- file=("image.png", open(str(PNG), "rb"), "image/png"),
188
- )
189
- )
190
-
191
-
192
- def test_file_upload_file_array(client: MultiPartClient):
193
- client.form_data.file.upload_file_array(
194
- file_models.UploadFileArrayRequest(
195
- files=[
196
- ("image.png", open(str(PNG), "rb"), "image/png"),
197
- ("image.png", open(str(PNG), "rb"), "image/png"),
198
- ],
199
- )
200
- )
@@ -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 serialization.encodedname.json import JsonClient
8
- from serialization.encodedname.json.property import models
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with JsonClient() as client:
14
- yield client
15
-
16
-
17
- def test_property_send(client: JsonClient):
18
- client.property.send(models.JsonEncodedNameModel(default_name=True))
19
-
20
-
21
- def test_property_get(client: JsonClient):
22
- assert client.property.get().default_name
@@ -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 specialwords 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
- def client():
15
- with SpecialWordsClient() as client:
16
- yield client
17
-
18
-
19
- def test_operations(client: SpecialWordsClient, special_words):
20
- for sw in special_words:
21
- suffix = "" if sw == "constructor" else "_method"
22
- getattr(client.operations, sw + suffix)()
23
-
24
-
25
- def test_parameter(client: SpecialWordsClient, special_words):
26
- for sw in special_words:
27
- suffix = "" if sw == "constructor" else "_parameter"
28
- getattr(client.parameters, "with_" + sw)(**{sw + suffix: "ok"})
29
- client.parameters.with_cancellation_token(cancellation_token="ok")
30
-
31
-
32
- def test_model(client: SpecialWordsClient, special_words):
33
- for sw in special_words:
34
- suffix = "" if sw == "constructor" else "Model"
35
- model = getattr(models, sw.capitalize() + suffix)
36
- getattr(client.models, "with_" + sw)(model(name="ok"))
37
-
38
-
39
- def test_model_properties(client: SpecialWordsClient):
40
- client.model_properties.same_as_model(model_properties_models.SameAsModel(same_as_model="ok"))
41
-
42
-
43
- def test_model_properties_dict_methods(client: SpecialWordsClient):
44
- client.model_properties.dict_methods(
45
- body=model_properties_models.DictMethods(
46
- keys_property="ok",
47
- items_property="ok",
48
- values_property="ok",
49
- popitem_property="ok",
50
- clear_property="ok",
51
- update_property="ok",
52
- setdefault_property="ok",
53
- pop_property="ok",
54
- get_property="ok",
55
- copy_property="ok",
56
- )
57
- )
58
-
59
-
60
- def test_model_properties_with_list(client: SpecialWordsClient):
61
- client.model_properties.with_list(model_properties_models.ModelWithList(list="ok"))
62
-
63
-
64
- def test_extensible_strings(client: SpecialWordsClient):
65
- for enum_value in extensible_strings_models.ExtensibleString:
66
- assert enum_value == client.extensible_strings.put_extensible_string_value(body=enum_value)
@@ -1,65 +0,0 @@
1
- # ------------------------------------
2
- # Copyright (c) Microsoft Corporation.
3
- # Licensed under the MIT License.
4
- # ------------------------------------
5
- import os
6
- import re
7
- from subprocess import getoutput
8
- from pathlib import Path
9
- import traceback
10
- from importlib import import_module
11
- import pytest
12
- from typetest.scalar import ScalarClient
13
- from corehttp.exceptions import HttpResponseError
14
-
15
-
16
- @pytest.fixture
17
- def client():
18
- with ScalarClient() as client:
19
- yield client
20
-
21
-
22
- def test_module():
23
- with pytest.raises(ModuleNotFoundError):
24
- import_module("azure")
25
-
26
-
27
- def test_track_back(client: ScalarClient):
28
- try:
29
- client.string.put("to raise exception")
30
- except HttpResponseError:
31
- track_back = traceback.format_exc().lower()
32
- assert "azure" not in track_back
33
- assert "microsoft" not in track_back
34
-
35
-
36
- def check_sensitive_word(folder: Path, word: str) -> str:
37
- special_folders = ["__pycache__", "pytest_cache"]
38
- if os.name == "nt":
39
- skip_folders = "|".join(special_folders)
40
- output = getoutput(
41
- f"powershell \"ls -r -Path {folder} | where fullname -notmatch '{skip_folders}' | Select-String -Pattern '{word}'\""
42
- ).replace("\\", "/")
43
- else:
44
- skip_folders = "{" + ",".join(special_folders) + "}"
45
- output = getoutput(f"grep -ri --exclude-dir={skip_folders} {word} {folder}")
46
-
47
- result = set()
48
- for item in re.findall(f"{folder.as_posix()}[^:]+", output.replace("\n", "")):
49
- result.add(Path(item).relative_to(folder).parts[0])
50
- return sorted(list(result))
51
-
52
-
53
- def test_sensitive_word():
54
- check_folder = (Path(os.path.dirname(__file__)) / "../generated").resolve()
55
- assert [] == check_sensitive_word(check_folder, "azure")
56
- # after update spector, it shall also equal to []
57
- expected = [
58
- "authentication-oauth2",
59
- "authentication-noauth-union",
60
- "authentication-union",
61
- "setuppy-authentication-union",
62
- ]
63
- if (check_folder / "generation-subdir").exists():
64
- expected.append("generation-subdir")
65
- assert sorted(expected) == sorted(check_sensitive_word(check_folder, "microsoft"))
@@ -1,69 +0,0 @@
1
- -r ../dev_requirements.txt
2
- -e ../../
3
-
4
- # === common test dependencies across repos ===
5
- -e ./generated/authentication-api-key
6
- -e ./generated/authentication-http-custom
7
- -e ./generated/authentication-noauth-union
8
- -e ./generated/authentication-oauth2
9
- -e ./generated/authentication-union
10
- -e ./generated/setuppy-authentication-union
11
- -e ./generated/specs-documentation
12
- -e ./generated/encode-duration
13
- -e ./generated/encode-numeric
14
- -e ./generated/encode-array
15
- -e ./generated/parameters-basic
16
- -e ./generated/parameters-collection-format
17
- -e ./generated/parameters-path
18
- -e ./generated/parameters-query
19
- -e ./generated/parameters-spread
20
- -e ./generated/serialization-encoded-name-json
21
- -e ./generated/server-endpoint-not-defined
22
- -e ./generated/server-path-multiple
23
- -e ./generated/server-path-single
24
- -e ./generated/server-versions-versioned
25
- -e ./generated/server-versions-not-versioned
26
- -e ./generated/special-words
27
- -e ./generated/streaming-jsonl
28
- -e ./generated/typetest-array
29
- -e ./generated/typetest-dictionary
30
- -e ./generated/typetest-enum-extensible
31
- -e ./generated/typetest-enum-fixed
32
- # -e ./generated/typetest-file
33
- -e ./generated/typetest-model-enumdiscriminator
34
- -e ./generated/typetest-model-nesteddiscriminator
35
- -e ./generated/typetest-model-notdiscriminated
36
- -e ./generated/typetest-model-singlediscriminator
37
- -e ./generated/typetest-model-recursive
38
- -e ./generated/typetest-model-usage
39
- -e ./generated/typetest-model-visibility
40
- -e ./generated/typetest-property-nullable
41
- -e ./generated/typetest-property-optional
42
- -e ./generated/typetest-property-valuetypes
43
- -e ./generated/typetest-property-additionalproperties
44
- -e ./generated/typetest-scalar
45
- -e ./generated/typetest-union
46
- -e ./generated/typetest-discriminatedunion
47
- -e ./generated/typetest-model-empty
48
- -e ./generated/headasbooleantrue
49
- -e ./generated/headasbooleanfalse
50
- -e ./generated/parameters-body-optionality
51
- -e ./generated/special-headers-repeatability
52
- -e ./generated/special-headers-conditional-request
53
- -e ./generated/encode-datetime
54
- -e ./generated/encode-bytes
55
- -e ./generated/payload-content-negotiation
56
- -e ./generated/payload-json-merge-patch
57
- -e ./generated/payload-pageable
58
- -e ./generated/payload-multipart
59
- -e ./generated/payload-media-type
60
- -e ./generated/payload-xml
61
- -e ./generated/routes
62
- -e ./generated/response-status-code-range
63
- -e ./generated/versioning-added
64
- -e ./generated/versioning-madeoptional
65
- -e ./generated/versioning-removed
66
- -e ./generated/versioning-renamedfrom
67
- -e ./generated/versioning-returntypechangedfrom
68
- -e ./generated/versioning-typechangedfrom
69
- # === end common test dependencies across repos ===
@@ -1,64 +0,0 @@
1
- [tox]
2
- envlist=base, lint, mypy, pyright, apiview, sphinx
3
- skipsdist=True
4
-
5
- [testenv:ci]
6
- deps=
7
- -r requirements.txt
8
- commands =
9
- # pytest
10
- {[testenv:test]commands}
11
-
12
- # pylint
13
- {[testenv:lint]commands}
14
-
15
- # mypy
16
- {[testenv:mypy]commands}
17
-
18
- # pyright
19
- {[testenv:pyright]commands}
20
-
21
- # apiview
22
- {[testenv:apiview]commands}
23
-
24
- # sphinx docstring validation
25
- {[testenv:sphinx]commands}
26
-
27
- [testenv:test]
28
- deps=
29
- -r requirements.txt
30
- commands =
31
- pytest mock_api_tests ../generic_mock_api_tests
32
-
33
- [testenv:lint]
34
- deps=
35
- -r requirements.txt
36
- commands =
37
- pip install azure-pylint-guidelines-checker==0.5.2 --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
38
- python ../../../eng/scripts/ci/run_pylint.py -t unbranded -s "generated" {posargs}
39
-
40
- [testenv:mypy]
41
- deps=
42
- -r requirements.txt
43
- commands =
44
- python ../../../eng/scripts/ci/run_mypy.py -t unbranded -s "generated" {posargs}
45
-
46
- [testenv:pyright]
47
- deps=
48
- -r requirements.txt
49
- commands =
50
- python ../../../eng/scripts/ci/run_pyright.py -t unbranded -s "generated" {posargs}
51
-
52
- [testenv:apiview]
53
- deps=
54
- -r requirements.txt
55
- commands =
56
- pip install apiview-stub-generator==0.3.19 --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
57
- python ../../../eng/scripts/ci/run_apiview.py -t unbranded -s "generated" {posargs}
58
-
59
- [testenv:sphinx]
60
- basepython = python3.10
61
- deps=
62
- -r requirements.txt
63
- commands =
64
- python ../../../eng/scripts/ci/run_sphinx_build.py -t unbranded -s "generated" {posargs}
@@ -1,15 +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 importlib
7
- import pytest
8
-
9
-
10
- @pytest.fixture
11
- def core_library():
12
- try:
13
- return importlib.import_module("azure.core")
14
- except ModuleNotFoundError:
15
- return importlib.import_module("corehttp")
@@ -1,3 +0,0 @@
1
- -r ../dev_requirements.txt
2
- -e ../../../generator
3
- -e ../unbranded/generated/special-words
@@ -1,89 +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 enum import Enum, EnumMeta
7
- from specialwords.extensiblestrings import models as extensible_strings_models
8
-
9
-
10
- class _CaseInsensitiveEnumMeta(EnumMeta):
11
- def __getitem__(self, name):
12
- return super().__getitem__(name.upper())
13
-
14
- def __getattr__(cls, name):
15
- """Return the enum member matching `name`
16
- We use __getattr__ instead of descriptors or inserting into the enum
17
- class' __dict__ in order to support `name` and `value` being both
18
- properties for enum members (which live in the class' __dict__) and
19
- enum members themselves.
20
- """
21
- try:
22
- return cls._member_map_[name.upper()]
23
- except KeyError:
24
- raise AttributeError(name)
25
-
26
-
27
- class EnumsWithCallableNames(str, Enum, metaclass=_CaseInsensitiveEnumMeta):
28
- """Gets the unit of measurement."""
29
-
30
- COUNT = "count"
31
- ENCODE = "encode"
32
- FIND = "find"
33
- JOIN = "join"
34
-
35
-
36
- def test_count():
37
- assert EnumsWithCallableNames.COUNT == "count"
38
- assert callable(EnumsWithCallableNames.count)
39
-
40
-
41
- def test_encode():
42
- assert EnumsWithCallableNames.ENCODE == "encode"
43
- assert callable(EnumsWithCallableNames.encode)
44
-
45
-
46
- def test_find():
47
- assert EnumsWithCallableNames.FIND == "find"
48
- assert callable(EnumsWithCallableNames.find)
49
-
50
-
51
- def test_join():
52
- assert EnumsWithCallableNames.JOIN == "join"
53
- assert callable(EnumsWithCallableNames.join)
54
-
55
-
56
- def test_extensible_strings_enum_with_special_words():
57
- assert extensible_strings_models.ExtensibleString.AND == "and"
58
- assert extensible_strings_models.ExtensibleString.AS == "as"
59
- assert extensible_strings_models.ExtensibleString.ASSERT == "assert"
60
- assert extensible_strings_models.ExtensibleString.ASYNC == "async"
61
- assert extensible_strings_models.ExtensibleString.AWAIT == "await"
62
- assert extensible_strings_models.ExtensibleString.BREAK == "break"
63
- assert extensible_strings_models.ExtensibleString.CLASS == "class"
64
- assert extensible_strings_models.ExtensibleString.CONSTRUCTOR == "constructor"
65
- assert extensible_strings_models.ExtensibleString.CONTINUE == "continue"
66
- assert extensible_strings_models.ExtensibleString.DEF == "def"
67
- assert extensible_strings_models.ExtensibleString.DEL == "del"
68
- assert extensible_strings_models.ExtensibleString.ELIF == "elif"
69
- assert extensible_strings_models.ExtensibleString.ELSE == "else"
70
- assert extensible_strings_models.ExtensibleString.EXCEPT == "except"
71
- assert extensible_strings_models.ExtensibleString.EXEC == "exec"
72
- assert extensible_strings_models.ExtensibleString.FINALLY == "finally"
73
- assert extensible_strings_models.ExtensibleString.FOR == "for"
74
- assert extensible_strings_models.ExtensibleString.FROM == "from"
75
- assert extensible_strings_models.ExtensibleString.GLOBAL == "global"
76
- assert extensible_strings_models.ExtensibleString.IF == "if"
77
- assert extensible_strings_models.ExtensibleString.IMPORT == "import"
78
- assert extensible_strings_models.ExtensibleString.IN == "in"
79
- assert extensible_strings_models.ExtensibleString.IS == "is"
80
- assert extensible_strings_models.ExtensibleString.LAMBDA == "lambda"
81
- assert extensible_strings_models.ExtensibleString.NOT == "not"
82
- assert extensible_strings_models.ExtensibleString.OR == "or"
83
- assert extensible_strings_models.ExtensibleString.PASS == "pass"
84
- assert extensible_strings_models.ExtensibleString.RAISE == "raise"
85
- assert extensible_strings_models.ExtensibleString.RETURN == "return"
86
- assert extensible_strings_models.ExtensibleString.TRY == "try"
87
- assert extensible_strings_models.ExtensibleString.WHILE == "while"
88
- assert extensible_strings_models.ExtensibleString.WITH == "with"
89
- assert extensible_strings_models.ExtensibleString.YIELD == "yield"