@typespec/http-client-python 0.28.2 → 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 (309) 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/templates/model_base.py.jinja2 +157 -64
  57. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  58. package/generator/pygen/codegen/templates/model_base.py.jinja2 +157 -64
  59. package/package.json +48 -42
  60. package/eng/scripts/ci/run-ci.ts +0 -89
  61. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_commonproperties_async.py +0 -94
  62. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_largeheader_async.py +0 -30
  63. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_nonresource_async.py +0 -36
  64. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_operationtemplates_async.py +0 -205
  65. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_resource_async.py +0 -478
  66. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +0 -101
  67. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_header_async.py +0 -18
  68. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_path_async.py +0 -18
  69. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_query_async.py +0 -18
  70. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +0 -46
  71. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +0 -58
  72. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +0 -82
  73. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_deserialize_empty_string_as_null_async.py +0 -20
  74. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +0 -115
  75. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_hierrarchy_building_async.py +0 -53
  76. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +0 -28
  77. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_override_async.py +0 -106
  78. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +0 -38
  79. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +0 -76
  80. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +0 -22
  81. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +0 -39
  82. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +0 -33
  83. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +0 -80
  84. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +0 -41
  85. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +0 -87
  86. package/generator/test/azure/mock_api_tests/asynctests/test_azure_encode_duration_async.py +0 -19
  87. package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +0 -30
  88. package/generator/test/azure/mock_api_tests/asynctests/test_azure_payload_pageable_async.py +0 -19
  89. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py +0 -248
  90. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +0 -110
  91. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_shared_models_async.py +0 -132
  92. package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +0 -30
  93. package/generator/test/azure/mock_api_tests/asynctests/test_azure_versioning_previewversion_async.py +0 -53
  94. package/generator/test/azure/mock_api_tests/asynctests/test_client_namespace_async.py +0 -34
  95. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py +0 -69
  96. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_enum_conflict_async.py +0 -37
  97. package/generator/test/azure/mock_api_tests/asynctests/test_client_overload_async.py +0 -27
  98. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +0 -64
  99. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +0 -31
  100. package/generator/test/azure/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  101. package/generator/test/azure/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  102. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  103. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  104. package/generator/test/azure/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  105. package/generator/test/azure/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -216
  106. package/generator/test/azure/mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +0 -130
  107. package/generator/test/azure/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  108. package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +0 -31
  109. package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +0 -71
  110. package/generator/test/azure/mock_api_tests/conftest.py +0 -207
  111. package/generator/test/azure/mock_api_tests/data/image.jpg +0 -0
  112. package/generator/test/azure/mock_api_tests/data/image.png +0 -0
  113. package/generator/test/azure/mock_api_tests/test_azure_arm_commonproperties.py +0 -89
  114. package/generator/test/azure/mock_api_tests/test_azure_arm_largeheader.py +0 -27
  115. package/generator/test/azure/mock_api_tests/test_azure_arm_nonresource.py +0 -34
  116. package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +0 -180
  117. package/generator/test/azure/mock_api_tests/test_azure_arm_resource.py +0 -436
  118. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +0 -92
  119. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_header.py +0 -17
  120. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_path.py +0 -17
  121. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_query.py +0 -17
  122. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +0 -42
  123. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +0 -51
  124. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +0 -70
  125. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_deserialize_empty_string_as_null.py +0 -19
  126. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +0 -104
  127. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_hierrarchy_building.py +0 -45
  128. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +0 -27
  129. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_override.py +0 -102
  130. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +0 -32
  131. package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +0 -70
  132. package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +0 -20
  133. package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +0 -32
  134. package/generator/test/azure/mock_api_tests/test_azure_core_model.py +0 -30
  135. package/generator/test/azure/mock_api_tests/test_azure_core_page.py +0 -71
  136. package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +0 -35
  137. package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +0 -85
  138. package/generator/test/azure/mock_api_tests/test_azure_encode_duration.py +0 -18
  139. package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +0 -29
  140. package/generator/test/azure/mock_api_tests/test_azure_payload_pageable.py +0 -18
  141. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +0 -235
  142. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +0 -104
  143. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service_shared_models.py +0 -128
  144. package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +0 -29
  145. package/generator/test/azure/mock_api_tests/test_azure_versioning_previewversion.py +0 -50
  146. package/generator/test/azure/mock_api_tests/test_clear_output_folder.py +0 -23
  147. package/generator/test/azure/mock_api_tests/test_client_namespace.py +0 -32
  148. package/generator/test/azure/mock_api_tests/test_client_naming.py +0 -57
  149. package/generator/test/azure/mock_api_tests/test_client_naming_enum_conflict.py +0 -35
  150. package/generator/test/azure/mock_api_tests/test_client_overload.py +0 -25
  151. package/generator/test/azure/mock_api_tests/test_client_structure.py +0 -60
  152. package/generator/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +0 -29
  153. package/generator/test/azure/mock_api_tests/test_encode_duration.py +0 -60
  154. package/generator/test/azure/mock_api_tests/test_encode_numeric.py +0 -31
  155. package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +0 -251
  156. package/generator/test/azure/mock_api_tests/test_parameters_basic.py +0 -22
  157. package/generator/test/azure/mock_api_tests/test_parameters_spread.py +0 -66
  158. package/generator/test/azure/mock_api_tests/test_payload_content_negotiation.py +0 -33
  159. package/generator/test/azure/mock_api_tests/test_payload_multipart.py +0 -198
  160. package/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py +0 -124
  161. package/generator/test/azure/mock_api_tests/test_serialization_encoded_name_json.py +0 -21
  162. package/generator/test/azure/mock_api_tests/test_service_multi_service.py +0 -29
  163. package/generator/test/azure/mock_api_tests/test_special_words.py +0 -63
  164. package/generator/test/azure/requirements.txt +0 -125
  165. package/generator/test/azure/tox.ini +0 -64
  166. package/generator/test/data/image.jpg +0 -0
  167. package/generator/test/data/image.png +0 -0
  168. package/generator/test/dev_requirements.txt +0 -8
  169. package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +0 -140
  170. package/generator/test/generic_mock_api_tests/asynctests/test_encode_array_async.py +0 -139
  171. package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -132
  172. package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +0 -127
  173. package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +0 -35
  174. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +0 -30
  175. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +0 -38
  176. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +0 -24
  177. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +0 -18
  178. package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +0 -98
  179. package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +0 -27
  180. package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +0 -134
  181. package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +0 -150
  182. package/generator/test/generic_mock_api_tests/asynctests/test_response_status_code_range_async.py +0 -38
  183. package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +0 -331
  184. package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +0 -18
  185. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +0 -25
  186. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +0 -18
  187. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +0 -28
  188. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +0 -34
  189. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +0 -38
  190. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +0 -19
  191. package/generator/test/generic_mock_api_tests/asynctests/test_specs_documentation_async.py +0 -59
  192. package/generator/test/generic_mock_api_tests/asynctests/test_streaming_jsonl_async.py +0 -27
  193. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +0 -127
  194. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +0 -98
  195. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +0 -25
  196. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +0 -27
  197. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_file_async.py +0 -59
  198. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +0 -32
  199. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +0 -70
  200. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +0 -85
  201. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +0 -34
  202. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +0 -34
  203. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +0 -67
  204. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +0 -32
  205. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +0 -47
  206. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +0 -353
  207. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +0 -110
  208. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +0 -197
  209. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +0 -315
  210. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +0 -60
  211. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +0 -90
  212. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +0 -36
  213. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +0 -21
  214. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +0 -39
  215. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +0 -29
  216. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +0 -18
  217. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +0 -22
  218. package/generator/test/generic_mock_api_tests/conftest.py +0 -75
  219. package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
  220. package/generator/test/generic_mock_api_tests/data/image.png +0 -0
  221. package/generator/test/generic_mock_api_tests/test_authentication.py +0 -130
  222. package/generator/test/generic_mock_api_tests/test_encode_array.py +0 -126
  223. package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -128
  224. package/generator/test/generic_mock_api_tests/test_encode_datetime.py +0 -123
  225. package/generator/test/generic_mock_api_tests/test_headasboolean.py +0 -33
  226. package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +0 -27
  227. package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +0 -33
  228. package/generator/test/generic_mock_api_tests/test_parameters_path.py +0 -22
  229. package/generator/test/generic_mock_api_tests/test_parameters_query.py +0 -17
  230. package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +0 -93
  231. package/generator/test/generic_mock_api_tests/test_payload_media_type.py +0 -25
  232. package/generator/test/generic_mock_api_tests/test_payload_pageable.py +0 -99
  233. package/generator/test/generic_mock_api_tests/test_payload_xml.py +0 -135
  234. package/generator/test/generic_mock_api_tests/test_response_status_code_range.py +0 -36
  235. package/generator/test/generic_mock_api_tests/test_routes.py +0 -285
  236. package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +0 -17
  237. package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +0 -21
  238. package/generator/test/generic_mock_api_tests/test_server_path_single.py +0 -17
  239. package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +0 -25
  240. package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +0 -30
  241. package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +0 -34
  242. package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +0 -18
  243. package/generator/test/generic_mock_api_tests/test_specs_documentation.py +0 -51
  244. package/generator/test/generic_mock_api_tests/test_streaming_jsonl.py +0 -25
  245. package/generator/test/generic_mock_api_tests/test_typetest_array.py +0 -111
  246. package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +0 -86
  247. package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +0 -23
  248. package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +0 -25
  249. package/generator/test/generic_mock_api_tests/test_typetest_file.py +0 -52
  250. package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +0 -29
  251. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +0 -58
  252. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +0 -79
  253. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +0 -31
  254. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +0 -32
  255. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +0 -60
  256. package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +0 -28
  257. package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +0 -40
  258. package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +0 -314
  259. package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +0 -102
  260. package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +0 -174
  261. package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +0 -286
  262. package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -53
  263. package/generator/test/generic_mock_api_tests/test_typetest_union.py +0 -80
  264. package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +0 -290
  265. package/generator/test/generic_mock_api_tests/test_versioning_added.py +0 -33
  266. package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +0 -20
  267. package/generator/test/generic_mock_api_tests/test_versioning_removed.py +0 -37
  268. package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +0 -27
  269. package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +0 -17
  270. package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +0 -21
  271. package/generator/test/unbranded/mock_api_tests/asynctests/test_auth_flow_async.py +0 -19
  272. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  273. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  274. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  275. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  276. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  277. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -218
  278. package/generator/test/unbranded/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  279. package/generator/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +0 -73
  280. package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +0 -24
  281. package/generator/test/unbranded/mock_api_tests/conftest.py +0 -91
  282. package/generator/test/unbranded/mock_api_tests/data/image.jpg +0 -0
  283. package/generator/test/unbranded/mock_api_tests/data/image.png +0 -0
  284. package/generator/test/unbranded/mock_api_tests/test_auth_flow.py +0 -17
  285. package/generator/test/unbranded/mock_api_tests/test_encode_duration.py +0 -60
  286. package/generator/test/unbranded/mock_api_tests/test_encode_numeric.py +0 -32
  287. package/generator/test/unbranded/mock_api_tests/test_parameters_basic.py +0 -22
  288. package/generator/test/unbranded/mock_api_tests/test_parameters_spread.py +0 -66
  289. package/generator/test/unbranded/mock_api_tests/test_payload_content_negotiation.py +0 -33
  290. package/generator/test/unbranded/mock_api_tests/test_payload_multipart.py +0 -200
  291. package/generator/test/unbranded/mock_api_tests/test_serialization_encoded_name_json.py +0 -22
  292. package/generator/test/unbranded/mock_api_tests/test_special_words.py +0 -66
  293. package/generator/test/unbranded/mock_api_tests/test_unbranded.py +0 -65
  294. package/generator/test/unbranded/requirements.txt +0 -69
  295. package/generator/test/unbranded/tox.ini +0 -64
  296. package/generator/test/unittests/conftest.py +0 -15
  297. package/generator/test/unittests/requirements.txt +0 -3
  298. package/generator/test/unittests/test_enums.py +0 -89
  299. package/generator/test/unittests/test_model_base_serialization.py +0 -4906
  300. package/generator/test/unittests/test_model_base_xml_serialization.py +0 -1239
  301. package/generator/test/unittests/test_name_converter.py +0 -35
  302. package/generator/test/unittests/test_optional_return_type.py +0 -268
  303. package/generator/test/unittests/test_parameter_ordering.py +0 -104
  304. package/generator/test/unittests/test_sort_schema.py +0 -93
  305. package/generator/test/unittests/tox.ini +0 -5
  306. /package/eng/scripts/ci/{mypy.ini → config/mypy.ini} +0 -0
  307. /package/eng/scripts/ci/{pylintrc → config/pylintrc} +0 -0
  308. /package/eng/scripts/ci/{pyproject.toml → config/pyproject.toml} +0 -0
  309. /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"