@typespec/http-client-python 0.28.2 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/dist/emitter/code-model.d.ts.map +1 -1
  2. package/dist/emitter/code-model.js +7 -6
  3. package/dist/emitter/code-model.js.map +1 -1
  4. package/dist/emitter/constants.d.ts +6 -0
  5. package/dist/emitter/constants.d.ts.map +1 -0
  6. package/dist/emitter/constants.js +27 -0
  7. package/dist/emitter/constants.js.map +1 -0
  8. package/dist/emitter/emitter.d.ts.map +1 -1
  9. package/dist/emitter/emitter.js +193 -119
  10. package/dist/emitter/emitter.js.map +1 -1
  11. package/dist/emitter/http.d.ts.map +1 -1
  12. package/dist/emitter/http.js +33 -1
  13. package/dist/emitter/http.js.map +1 -1
  14. package/dist/emitter/lib.d.ts +37 -3
  15. package/dist/emitter/lib.d.ts.map +1 -1
  16. package/dist/emitter/lib.js +17 -0
  17. package/dist/emitter/lib.js.map +1 -1
  18. package/dist/emitter/run-python3.js +1 -1
  19. package/dist/emitter/run-python3.js.map +1 -1
  20. package/dist/emitter/system-requirements.js +6 -4
  21. package/dist/emitter/system-requirements.js.map +1 -1
  22. package/dist/emitter/types.d.ts +2 -5
  23. package/dist/emitter/types.d.ts.map +1 -1
  24. package/dist/emitter/types.js +86 -63
  25. package/dist/emitter/types.js.map +1 -1
  26. package/dist/emitter/utils.d.ts.map +1 -1
  27. package/dist/emitter/utils.js +16 -17
  28. package/dist/emitter/utils.js.map +1 -1
  29. package/emitter/src/code-model.ts +7 -13
  30. package/emitter/src/constants.ts +27 -0
  31. package/emitter/src/emitter.ts +241 -123
  32. package/emitter/src/http.ts +29 -1
  33. package/emitter/src/lib.ts +24 -0
  34. package/emitter/src/run-python3.ts +1 -1
  35. package/emitter/src/system-requirements.ts +4 -4
  36. package/emitter/src/types.ts +102 -62
  37. package/emitter/src/utils.ts +16 -18
  38. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  39. package/emitter/test/utils.test.ts +3 -0
  40. package/emitter/tsconfig.build.json +2 -1
  41. package/emitter/tsconfig.json +2 -1
  42. package/eng/scripts/Build-Packages.ps1 +62 -37
  43. package/eng/scripts/Check-GitChanges.ps1 +30 -3
  44. package/eng/scripts/Functions.ps1 +54 -15
  45. package/eng/scripts/Generate.ps1 +42 -8
  46. package/eng/scripts/Generation.psm1 +44 -15
  47. package/eng/scripts/Initialize-Repository.ps1 +29 -11
  48. package/eng/scripts/Test-Packages.ps1 +47 -31
  49. package/eng/scripts/ci/config/eslint-ci.config.mjs +64 -0
  50. package/eng/scripts/ci/{mypy.ini → config/mypy.ini} +1 -1
  51. package/eng/scripts/ci/{pylintrc → config/pylintrc} +1 -1
  52. package/eng/scripts/ci/{pyrightconfig.json → config/pyrightconfig.json} +1 -1
  53. package/eng/scripts/ci/dev_requirements.txt +2 -1
  54. package/eng/scripts/ci/format.ts +232 -2
  55. package/eng/scripts/ci/lint.ts +223 -20
  56. package/eng/scripts/ci/regenerate-common.ts +411 -136
  57. package/eng/scripts/ci/regenerate.ts +247 -101
  58. package/eng/scripts/ci/run-tests.ts +507 -0
  59. package/eng/scripts/ci/run_apiview.py +22 -16
  60. package/eng/scripts/ci/run_mypy.py +34 -23
  61. package/eng/scripts/ci/run_pylint.py +27 -19
  62. package/eng/scripts/ci/run_pyright.py +9 -5
  63. package/eng/scripts/ci/run_sphinx_build.py +24 -9
  64. package/eng/scripts/ci/typecheck.ts +225 -0
  65. package/eng/scripts/ci/util.py +61 -25
  66. package/eng/scripts/ci/utils.ts +5 -5
  67. package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
  68. package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
  69. package/eng/scripts/setup/build.ts +1 -1
  70. package/eng/scripts/setup/build_pygen_wheel.py +4 -3
  71. package/eng/scripts/setup/install.py +4 -3
  72. package/eng/scripts/setup/install.ts +1 -1
  73. package/eng/scripts/setup/prepare.py +3 -2
  74. package/eng/scripts/setup/prepare.ts +1 -1
  75. package/eng/scripts/setup/run-python3.ts +1 -1
  76. package/eng/scripts/setup/run_batch.py +197 -0
  77. package/eng/scripts/setup/run_tsp.py +3 -3
  78. package/eng/scripts/setup/system-requirements.ts +8 -4
  79. package/eng/scripts/setup/venvtools.py +1 -1
  80. package/generator/build/lib/pygen/__init__.py +1 -3
  81. package/generator/build/lib/pygen/codegen/__init__.py +0 -1
  82. package/generator/build/lib/pygen/codegen/models/base.py +0 -1
  83. package/generator/build/lib/pygen/codegen/models/client.py +2 -1
  84. package/generator/build/lib/pygen/codegen/models/code_model.py +1 -0
  85. package/generator/build/lib/pygen/codegen/models/enum_type.py +0 -1
  86. package/generator/build/lib/pygen/codegen/models/model_type.py +1 -7
  87. package/generator/build/lib/pygen/codegen/models/parameter.py +16 -14
  88. package/generator/build/lib/pygen/codegen/serializers/__init__.py +27 -12
  89. package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +12 -3
  90. package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +6 -2
  91. package/generator/build/lib/pygen/codegen/serializers/import_serializer.py +17 -4
  92. package/generator/build/lib/pygen/codegen/serializers/parameter_serializer.py +17 -11
  93. package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +176 -71
  94. package/generator/build/lib/pygen/codegen/templates/packaging_templates/README.md.jinja2 +11 -3
  95. package/generator/build/lib/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +1 -1
  96. package/generator/build/lib/pygen/codegen/templates/serialization.py.jinja2 +5 -1
  97. package/generator/build/lib/pygen/preprocess/__init__.py +37 -30
  98. package/generator/component-detection-pip-report.json +7 -7
  99. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  100. package/generator/pygen/__init__.py +1 -3
  101. package/generator/pygen/codegen/__init__.py +0 -1
  102. package/generator/pygen/codegen/models/base.py +0 -1
  103. package/generator/pygen/codegen/models/client.py +2 -1
  104. package/generator/pygen/codegen/models/code_model.py +1 -0
  105. package/generator/pygen/codegen/models/enum_type.py +0 -1
  106. package/generator/pygen/codegen/models/model_type.py +1 -7
  107. package/generator/pygen/codegen/models/parameter.py +16 -14
  108. package/generator/pygen/codegen/serializers/__init__.py +27 -12
  109. package/generator/pygen/codegen/serializers/builder_serializer.py +12 -3
  110. package/generator/pygen/codegen/serializers/general_serializer.py +6 -2
  111. package/generator/pygen/codegen/serializers/import_serializer.py +17 -4
  112. package/generator/pygen/codegen/serializers/parameter_serializer.py +17 -11
  113. package/generator/pygen/codegen/templates/model_base.py.jinja2 +176 -71
  114. package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +11 -3
  115. package/generator/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +1 -1
  116. package/generator/pygen/codegen/templates/serialization.py.jinja2 +5 -1
  117. package/generator/pygen/preprocess/__init__.py +37 -30
  118. package/generator/pygen.egg-info/PKG-INFO +1 -2
  119. package/generator/pygen.egg-info/requires.txt +1 -1
  120. package/generator/setup.py +1 -2
  121. package/package.json +63 -42
  122. package/eng/scripts/ci/run-ci.ts +0 -89
  123. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_commonproperties_async.py +0 -94
  124. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_largeheader_async.py +0 -30
  125. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_nonresource_async.py +0 -36
  126. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_operationtemplates_async.py +0 -205
  127. package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_resource_async.py +0 -478
  128. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +0 -101
  129. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_header_async.py +0 -18
  130. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_path_async.py +0 -18
  131. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_query_async.py +0 -18
  132. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +0 -46
  133. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +0 -58
  134. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +0 -82
  135. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_deserialize_empty_string_as_null_async.py +0 -20
  136. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +0 -115
  137. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_hierrarchy_building_async.py +0 -53
  138. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +0 -28
  139. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_override_async.py +0 -106
  140. package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +0 -38
  141. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +0 -76
  142. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +0 -22
  143. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +0 -39
  144. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +0 -33
  145. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +0 -80
  146. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +0 -41
  147. package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +0 -87
  148. package/generator/test/azure/mock_api_tests/asynctests/test_azure_encode_duration_async.py +0 -19
  149. package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +0 -30
  150. package/generator/test/azure/mock_api_tests/asynctests/test_azure_payload_pageable_async.py +0 -19
  151. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py +0 -248
  152. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +0 -110
  153. package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_shared_models_async.py +0 -132
  154. package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +0 -30
  155. package/generator/test/azure/mock_api_tests/asynctests/test_azure_versioning_previewversion_async.py +0 -53
  156. package/generator/test/azure/mock_api_tests/asynctests/test_client_namespace_async.py +0 -34
  157. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py +0 -69
  158. package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_enum_conflict_async.py +0 -37
  159. package/generator/test/azure/mock_api_tests/asynctests/test_client_overload_async.py +0 -27
  160. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +0 -64
  161. package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +0 -31
  162. package/generator/test/azure/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  163. package/generator/test/azure/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  164. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  165. package/generator/test/azure/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  166. package/generator/test/azure/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  167. package/generator/test/azure/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -216
  168. package/generator/test/azure/mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +0 -130
  169. package/generator/test/azure/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  170. package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +0 -31
  171. package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +0 -71
  172. package/generator/test/azure/mock_api_tests/conftest.py +0 -207
  173. package/generator/test/azure/mock_api_tests/data/image.jpg +0 -0
  174. package/generator/test/azure/mock_api_tests/data/image.png +0 -0
  175. package/generator/test/azure/mock_api_tests/test_azure_arm_commonproperties.py +0 -89
  176. package/generator/test/azure/mock_api_tests/test_azure_arm_largeheader.py +0 -27
  177. package/generator/test/azure/mock_api_tests/test_azure_arm_nonresource.py +0 -34
  178. package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +0 -180
  179. package/generator/test/azure/mock_api_tests/test_azure_arm_resource.py +0 -436
  180. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +0 -92
  181. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_header.py +0 -17
  182. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_path.py +0 -17
  183. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_query.py +0 -17
  184. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +0 -42
  185. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +0 -51
  186. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +0 -70
  187. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_deserialize_empty_string_as_null.py +0 -19
  188. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +0 -104
  189. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_hierrarchy_building.py +0 -45
  190. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +0 -27
  191. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_override.py +0 -102
  192. package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +0 -32
  193. package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +0 -70
  194. package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +0 -20
  195. package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +0 -32
  196. package/generator/test/azure/mock_api_tests/test_azure_core_model.py +0 -30
  197. package/generator/test/azure/mock_api_tests/test_azure_core_page.py +0 -71
  198. package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +0 -35
  199. package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +0 -85
  200. package/generator/test/azure/mock_api_tests/test_azure_encode_duration.py +0 -18
  201. package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +0 -29
  202. package/generator/test/azure/mock_api_tests/test_azure_payload_pageable.py +0 -18
  203. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +0 -235
  204. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +0 -104
  205. package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service_shared_models.py +0 -128
  206. package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +0 -29
  207. package/generator/test/azure/mock_api_tests/test_azure_versioning_previewversion.py +0 -50
  208. package/generator/test/azure/mock_api_tests/test_clear_output_folder.py +0 -23
  209. package/generator/test/azure/mock_api_tests/test_client_namespace.py +0 -32
  210. package/generator/test/azure/mock_api_tests/test_client_naming.py +0 -57
  211. package/generator/test/azure/mock_api_tests/test_client_naming_enum_conflict.py +0 -35
  212. package/generator/test/azure/mock_api_tests/test_client_overload.py +0 -25
  213. package/generator/test/azure/mock_api_tests/test_client_structure.py +0 -60
  214. package/generator/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +0 -29
  215. package/generator/test/azure/mock_api_tests/test_encode_duration.py +0 -60
  216. package/generator/test/azure/mock_api_tests/test_encode_numeric.py +0 -31
  217. package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +0 -251
  218. package/generator/test/azure/mock_api_tests/test_parameters_basic.py +0 -22
  219. package/generator/test/azure/mock_api_tests/test_parameters_spread.py +0 -66
  220. package/generator/test/azure/mock_api_tests/test_payload_content_negotiation.py +0 -33
  221. package/generator/test/azure/mock_api_tests/test_payload_multipart.py +0 -198
  222. package/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py +0 -124
  223. package/generator/test/azure/mock_api_tests/test_serialization_encoded_name_json.py +0 -21
  224. package/generator/test/azure/mock_api_tests/test_service_multi_service.py +0 -29
  225. package/generator/test/azure/mock_api_tests/test_special_words.py +0 -63
  226. package/generator/test/azure/requirements.txt +0 -125
  227. package/generator/test/azure/tox.ini +0 -64
  228. package/generator/test/data/image.jpg +0 -0
  229. package/generator/test/data/image.png +0 -0
  230. package/generator/test/dev_requirements.txt +0 -8
  231. package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +0 -140
  232. package/generator/test/generic_mock_api_tests/asynctests/test_encode_array_async.py +0 -139
  233. package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -132
  234. package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +0 -127
  235. package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +0 -35
  236. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +0 -30
  237. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +0 -38
  238. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +0 -24
  239. package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +0 -18
  240. package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +0 -98
  241. package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +0 -27
  242. package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +0 -134
  243. package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +0 -150
  244. package/generator/test/generic_mock_api_tests/asynctests/test_response_status_code_range_async.py +0 -38
  245. package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +0 -331
  246. package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +0 -18
  247. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +0 -25
  248. package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +0 -18
  249. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +0 -28
  250. package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +0 -34
  251. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +0 -38
  252. package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +0 -19
  253. package/generator/test/generic_mock_api_tests/asynctests/test_specs_documentation_async.py +0 -59
  254. package/generator/test/generic_mock_api_tests/asynctests/test_streaming_jsonl_async.py +0 -27
  255. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +0 -127
  256. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +0 -98
  257. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +0 -25
  258. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +0 -27
  259. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_file_async.py +0 -59
  260. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +0 -32
  261. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +0 -70
  262. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +0 -85
  263. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +0 -34
  264. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +0 -34
  265. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +0 -67
  266. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +0 -32
  267. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +0 -47
  268. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +0 -353
  269. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +0 -110
  270. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +0 -197
  271. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +0 -315
  272. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +0 -60
  273. package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +0 -90
  274. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +0 -36
  275. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +0 -21
  276. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +0 -39
  277. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +0 -29
  278. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +0 -18
  279. package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +0 -22
  280. package/generator/test/generic_mock_api_tests/conftest.py +0 -75
  281. package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
  282. package/generator/test/generic_mock_api_tests/data/image.png +0 -0
  283. package/generator/test/generic_mock_api_tests/test_authentication.py +0 -130
  284. package/generator/test/generic_mock_api_tests/test_encode_array.py +0 -126
  285. package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -128
  286. package/generator/test/generic_mock_api_tests/test_encode_datetime.py +0 -123
  287. package/generator/test/generic_mock_api_tests/test_headasboolean.py +0 -33
  288. package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +0 -27
  289. package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +0 -33
  290. package/generator/test/generic_mock_api_tests/test_parameters_path.py +0 -22
  291. package/generator/test/generic_mock_api_tests/test_parameters_query.py +0 -17
  292. package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +0 -93
  293. package/generator/test/generic_mock_api_tests/test_payload_media_type.py +0 -25
  294. package/generator/test/generic_mock_api_tests/test_payload_pageable.py +0 -99
  295. package/generator/test/generic_mock_api_tests/test_payload_xml.py +0 -135
  296. package/generator/test/generic_mock_api_tests/test_response_status_code_range.py +0 -36
  297. package/generator/test/generic_mock_api_tests/test_routes.py +0 -285
  298. package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +0 -17
  299. package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +0 -21
  300. package/generator/test/generic_mock_api_tests/test_server_path_single.py +0 -17
  301. package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +0 -25
  302. package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +0 -30
  303. package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +0 -34
  304. package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +0 -18
  305. package/generator/test/generic_mock_api_tests/test_specs_documentation.py +0 -51
  306. package/generator/test/generic_mock_api_tests/test_streaming_jsonl.py +0 -25
  307. package/generator/test/generic_mock_api_tests/test_typetest_array.py +0 -111
  308. package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +0 -86
  309. package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +0 -23
  310. package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +0 -25
  311. package/generator/test/generic_mock_api_tests/test_typetest_file.py +0 -52
  312. package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +0 -29
  313. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +0 -58
  314. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +0 -79
  315. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +0 -31
  316. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +0 -32
  317. package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +0 -60
  318. package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +0 -28
  319. package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +0 -40
  320. package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +0 -314
  321. package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +0 -102
  322. package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +0 -174
  323. package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +0 -286
  324. package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -53
  325. package/generator/test/generic_mock_api_tests/test_typetest_union.py +0 -80
  326. package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +0 -290
  327. package/generator/test/generic_mock_api_tests/test_versioning_added.py +0 -33
  328. package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +0 -20
  329. package/generator/test/generic_mock_api_tests/test_versioning_removed.py +0 -37
  330. package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +0 -27
  331. package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +0 -17
  332. package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +0 -21
  333. package/generator/test/unbranded/mock_api_tests/asynctests/test_auth_flow_async.py +0 -19
  334. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
  335. package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
  336. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
  337. package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
  338. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
  339. package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -218
  340. package/generator/test/unbranded/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
  341. package/generator/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +0 -73
  342. package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +0 -24
  343. package/generator/test/unbranded/mock_api_tests/conftest.py +0 -91
  344. package/generator/test/unbranded/mock_api_tests/data/image.jpg +0 -0
  345. package/generator/test/unbranded/mock_api_tests/data/image.png +0 -0
  346. package/generator/test/unbranded/mock_api_tests/test_auth_flow.py +0 -17
  347. package/generator/test/unbranded/mock_api_tests/test_encode_duration.py +0 -60
  348. package/generator/test/unbranded/mock_api_tests/test_encode_numeric.py +0 -32
  349. package/generator/test/unbranded/mock_api_tests/test_parameters_basic.py +0 -22
  350. package/generator/test/unbranded/mock_api_tests/test_parameters_spread.py +0 -66
  351. package/generator/test/unbranded/mock_api_tests/test_payload_content_negotiation.py +0 -33
  352. package/generator/test/unbranded/mock_api_tests/test_payload_multipart.py +0 -200
  353. package/generator/test/unbranded/mock_api_tests/test_serialization_encoded_name_json.py +0 -22
  354. package/generator/test/unbranded/mock_api_tests/test_special_words.py +0 -66
  355. package/generator/test/unbranded/mock_api_tests/test_unbranded.py +0 -65
  356. package/generator/test/unbranded/requirements.txt +0 -69
  357. package/generator/test/unbranded/tox.ini +0 -64
  358. package/generator/test/unittests/conftest.py +0 -15
  359. package/generator/test/unittests/requirements.txt +0 -3
  360. package/generator/test/unittests/test_enums.py +0 -89
  361. package/generator/test/unittests/test_model_base_serialization.py +0 -4906
  362. package/generator/test/unittests/test_model_base_xml_serialization.py +0 -1239
  363. package/generator/test/unittests/test_name_converter.py +0 -35
  364. package/generator/test/unittests/test_optional_return_type.py +0 -268
  365. package/generator/test/unittests/test_parameter_ordering.py +0 -104
  366. package/generator/test/unittests/test_sort_schema.py +0 -93
  367. package/generator/test/unittests/tox.ini +0 -5
  368. /package/eng/scripts/ci/{pyproject.toml → config/pyproject.toml} +0 -0
@@ -1,21 +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 versioning.madeoptional.aio import MadeOptionalClient
8
- from versioning.madeoptional.models import TestModel
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with MadeOptionalClient(endpoint="http://localhost:3000", version="v2") as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test(client: MadeOptionalClient):
19
- assert await client.test(
20
- TestModel(prop="foo"),
21
- ) == TestModel(prop="foo")
@@ -1,39 +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 versioning.removed.aio import RemovedClient
8
- from versioning.removed.models import ModelV2, EnumV2, ModelV3, EnumV3
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with RemovedClient(endpoint="http://localhost:3000", version="v2") as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_v2(client: RemovedClient):
19
- assert await client.v2(ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER_V2, union_prop="bar")) == ModelV2(
20
- prop="foo", enum_prop=EnumV2.ENUM_MEMBER_V2, union_prop="bar"
21
- )
22
-
23
-
24
- @pytest.mark.asyncio
25
- async def test_model_v3():
26
- async with RemovedClient(endpoint="http://localhost:3000", version="v1") as client1:
27
- model1 = ModelV3(id="123", enum_prop=EnumV3.ENUM_MEMBER_V1)
28
- result = await client1.model_v3(model1)
29
- assert result == model1
30
-
31
- async with RemovedClient(endpoint="http://localhost:3000", version="v2preview") as client2:
32
- model2 = ModelV3(id="123")
33
- result = await client2.model_v3(model2)
34
- assert result == model2
35
-
36
- async with RemovedClient(endpoint="http://localhost:3000", version="v2") as client3:
37
- model3 = ModelV3(id="123", enum_prop=EnumV3.ENUM_MEMBER_V1)
38
- result = await client3.model_v3(model3)
39
- assert result == model3
@@ -1,29 +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 versioning.renamedfrom.aio import RenamedFromClient
8
- from versioning.renamedfrom.models import NewModel, NewEnum
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with RenamedFromClient(endpoint="http://localhost:3000", version="v2") as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test_new_op(client: RenamedFromClient):
19
- assert await client.new_op(
20
- NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10),
21
- new_query="bar",
22
- ) == NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
23
-
24
-
25
- @pytest.mark.asyncio
26
- async def test_new_interface_test(client: RenamedFromClient):
27
- assert await client.new_interface.new_op_in_new_interface(
28
- NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
29
- ) == NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
@@ -1,18 +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 versioning.returntypechangedfrom.aio import ReturnTypeChangedFromClient
8
-
9
-
10
- @pytest.fixture
11
- async def client():
12
- async with ReturnTypeChangedFromClient(endpoint="http://localhost:3000", version="v2") as client:
13
- yield client
14
-
15
-
16
- @pytest.mark.asyncio
17
- async def test(client: ReturnTypeChangedFromClient):
18
- assert await client.test("test") == "test"
@@ -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 versioning.typechangedfrom.aio import TypeChangedFromClient
8
- from versioning.typechangedfrom.models import TestModel
9
-
10
-
11
- @pytest.fixture
12
- async def client():
13
- async with TypeChangedFromClient(endpoint="http://localhost:3000", version="v2") as client:
14
- yield client
15
-
16
-
17
- @pytest.mark.asyncio
18
- async def test(client: TypeChangedFromClient):
19
- assert await client.test(
20
- TestModel(prop="foo", changed_prop="bar"),
21
- param="baz",
22
- ) == TestModel(prop="foo", changed_prop="bar")
@@ -1,75 +0,0 @@
1
- # -------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Corporation. All rights reserved.
3
- # Licensed under the MIT License. See License.txt in the project root for
4
- # license information.
5
- # --------------------------------------------------------------------------
6
- import os
7
- import subprocess
8
- import signal
9
- import pytest
10
- import importlib
11
- from pathlib import Path
12
-
13
- DATA_FOLDER = Path(__file__).parent.parent
14
-
15
-
16
- def start_server_process():
17
- azure_http_path = Path(os.path.dirname(__file__)) / Path("../../../node_modules/@azure-tools/azure-http-specs")
18
- http_path = Path(os.path.dirname(__file__)) / Path("../../../node_modules/@typespec/http-specs")
19
- if "unbranded" in Path(os.getcwd()).parts:
20
- os.chdir(http_path.resolve())
21
- cmd = "npx tsp-spector serve ./specs"
22
- else:
23
- os.chdir(azure_http_path.resolve())
24
- cmd = f"npx tsp-spector serve ./specs {(http_path / 'specs').resolve()}"
25
- if os.name == "nt":
26
- return subprocess.Popen(cmd, shell=True)
27
- return subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid)
28
-
29
-
30
- def terminate_server_process(process):
31
- if os.name == "nt":
32
- process.kill()
33
- else:
34
- os.killpg(os.getpgid(process.pid), signal.SIGTERM) # Send the signal to all the process groups
35
-
36
-
37
- @pytest.fixture(scope="session", autouse=True)
38
- def testserver():
39
- """Start spector mock api tests"""
40
- server = start_server_process()
41
- yield
42
- terminate_server_process(server)
43
-
44
-
45
- """
46
- Use to disambiguate the core library we use
47
- """
48
-
49
-
50
- @pytest.fixture
51
- def core_library():
52
- try:
53
- return importlib.import_module("azure.core")
54
- except ModuleNotFoundError:
55
- return importlib.import_module("corehttp")
56
-
57
-
58
- @pytest.fixture
59
- def key_credential(core_library):
60
- try:
61
- return core_library.credentials.AzureKeyCredential
62
- except AttributeError:
63
- return core_library.credentials.ServiceKeyCredential
64
-
65
-
66
- @pytest.fixture
67
- def png_data() -> bytes:
68
- with open(str(DATA_FOLDER / "data/image.png"), "rb") as file_in:
69
- return file_in.read()
70
-
71
-
72
- @pytest.fixture
73
- def jpg_data() -> bytes:
74
- with open(str(DATA_FOLDER / "data/image.jpg"), "rb") as file_in:
75
- return file_in.read()
@@ -1,130 +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 authentication.apikey import ApiKeyClient
8
- from authentication.oauth2 import OAuth2Client
9
- from authentication.union import UnionClient
10
- from setuppy.authentication.union import UnionClient as SetuppyUnionClient
11
- from authentication.noauth.union import UnionClient as NoauthUnionClient
12
- from authentication.http.custom import CustomClient
13
-
14
- # Utilities functions
15
-
16
-
17
- @pytest.fixture
18
- def api_key_client(key_credential):
19
- client = None
20
-
21
- def _build_client(client_type, key: str = "valid-key"):
22
- client = client_type(key_credential(key))
23
- return client
24
-
25
- yield _build_client
26
- if client:
27
- client.close()
28
-
29
-
30
- @pytest.fixture
31
- def token_credential(core_library):
32
- class FakeCredential:
33
- @staticmethod
34
- def get_token(*scopes):
35
- return core_library.credentials.AccessToken(token="".join(scopes), expires_on=1800)
36
-
37
- @staticmethod
38
- def get_token_info(*scopes, **kwargs):
39
- return core_library.credentials.AccessTokenInfo(token="".join(scopes), expires_on=1800)
40
-
41
- return FakeCredential()
42
-
43
-
44
- @pytest.fixture
45
- def oauth2_client(token_credential):
46
- client = None
47
-
48
- def _build_client(client_type):
49
- client = client_type(token_credential)
50
- return client
51
-
52
- yield _build_client
53
- if client:
54
- client.close()
55
-
56
-
57
- @pytest.fixture
58
- def http_custom_client(key_credential):
59
- client = None
60
-
61
- def _build_client(key: str = "valid-key"):
62
- client = CustomClient(key_credential(key))
63
- return client
64
-
65
- yield _build_client
66
- if client:
67
- client.close()
68
-
69
-
70
- # Tests
71
-
72
-
73
- def test_api_key_valid(api_key_client):
74
- client = api_key_client(ApiKeyClient)
75
- client.valid()
76
-
77
-
78
- def test_api_key_invalid(api_key_client, core_library):
79
- client = api_key_client(ApiKeyClient, "invalid-key")
80
- with pytest.raises(core_library.exceptions.HttpResponseError) as ex:
81
- client.invalid()
82
- assert ex.value.status_code == 403
83
- assert ex.value.reason == "Forbidden"
84
-
85
-
86
- def test_oauth2_valid(oauth2_client):
87
- client = oauth2_client(OAuth2Client)
88
- client.valid(enforce_https=False)
89
-
90
-
91
- def test_oauth2_invalid(oauth2_client, core_library):
92
- client = oauth2_client(OAuth2Client)
93
- with pytest.raises(core_library.exceptions.HttpResponseError) as ex:
94
- client.invalid(enforce_https=False)
95
- assert ex.value.status_code == 403
96
-
97
-
98
- @pytest.mark.parametrize("union_client_type", [UnionClient, SetuppyUnionClient])
99
- def test_union_keyvalid(api_key_client, union_client_type):
100
- client = api_key_client(union_client_type)
101
- client.valid_key()
102
-
103
-
104
- @pytest.mark.parametrize("union_client_type", [UnionClient, SetuppyUnionClient])
105
- def test_union_tokenvalid(oauth2_client, union_client_type):
106
- client = oauth2_client(union_client_type)
107
- client.valid_token(enforce_https=False)
108
-
109
-
110
- def test_noauth_union_valid_no_auth():
111
- client = NoauthUnionClient()
112
- client.valid_no_auth()
113
-
114
-
115
- def test_noauth_union_valid_token(oauth2_client):
116
- client = oauth2_client(NoauthUnionClient)
117
- client.valid_token(enforce_https=False)
118
-
119
-
120
- def test_http_custom_valid(http_custom_client):
121
- client = http_custom_client()
122
- client.valid()
123
-
124
-
125
- def test_http_custom_invalid(http_custom_client, core_library):
126
- client = http_custom_client("invalid-key")
127
- with pytest.raises(core_library.exceptions.HttpResponseError) as ex:
128
- client.invalid()
129
- assert ex.value.status_code == 403
130
- assert ex.value.reason == "Forbidden"
@@ -1,126 +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
-
7
- import pytest
8
- from encode.array import ArrayClient, models
9
-
10
-
11
- @pytest.fixture
12
- def client():
13
- with ArrayClient() as client:
14
- yield client
15
-
16
-
17
- def test_comma_delimited(client: ArrayClient):
18
- body = models.CommaDelimitedArrayProperty(value=["blue", "red", "green"])
19
- result = client.property.comma_delimited(body)
20
- assert result.value == ["blue", "red", "green"]
21
-
22
-
23
- def test_space_delimited(client: ArrayClient):
24
- body = models.SpaceDelimitedArrayProperty(value=["blue", "red", "green"])
25
- result = client.property.space_delimited(body)
26
- assert result.value == ["blue", "red", "green"]
27
-
28
-
29
- def test_pipe_delimited(client: ArrayClient):
30
- body = models.PipeDelimitedArrayProperty(value=["blue", "red", "green"])
31
- result = client.property.pipe_delimited(body)
32
- assert result.value == ["blue", "red", "green"]
33
-
34
-
35
- def test_newline_delimited(client: ArrayClient):
36
- body = models.NewlineDelimitedArrayProperty(value=["blue", "red", "green"])
37
- result = client.property.newline_delimited(body)
38
- assert result.value == ["blue", "red", "green"]
39
-
40
-
41
- def test_enum_comma_delimited(client: ArrayClient):
42
- body = models.CommaDelimitedEnumArrayProperty(value=[models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN])
43
- result = client.property.enum_comma_delimited(body)
44
- assert result.value == [models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN]
45
-
46
-
47
- def test_enum_space_delimited(client: ArrayClient):
48
- body = models.SpaceDelimitedEnumArrayProperty(value=[models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN])
49
- result = client.property.enum_space_delimited(body)
50
- assert result.value == [models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN]
51
-
52
-
53
- def test_enum_pipe_delimited(client: ArrayClient):
54
- body = models.PipeDelimitedEnumArrayProperty(value=[models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN])
55
- result = client.property.enum_pipe_delimited(body)
56
- assert result.value == [models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN]
57
-
58
-
59
- def test_enum_newline_delimited(client: ArrayClient):
60
- body = models.NewlineDelimitedEnumArrayProperty(value=[models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN])
61
- result = client.property.enum_newline_delimited(body)
62
- assert result.value == [models.Colors.BLUE, models.Colors.RED, models.Colors.GREEN]
63
-
64
-
65
- def test_extensible_enum_comma_delimited(client: ArrayClient):
66
- body = models.CommaDelimitedExtensibleEnumArrayProperty(
67
- value=[
68
- models.ColorsExtensibleEnum.BLUE,
69
- models.ColorsExtensibleEnum.RED,
70
- models.ColorsExtensibleEnum.GREEN,
71
- ]
72
- )
73
- result = client.property.extensible_enum_comma_delimited(body)
74
- assert result.value == [
75
- models.ColorsExtensibleEnum.BLUE,
76
- models.ColorsExtensibleEnum.RED,
77
- models.ColorsExtensibleEnum.GREEN,
78
- ]
79
-
80
-
81
- def test_extensible_enum_space_delimited(client: ArrayClient):
82
- body = models.SpaceDelimitedExtensibleEnumArrayProperty(
83
- value=[
84
- models.ColorsExtensibleEnum.BLUE,
85
- models.ColorsExtensibleEnum.RED,
86
- models.ColorsExtensibleEnum.GREEN,
87
- ]
88
- )
89
- result = client.property.extensible_enum_space_delimited(body)
90
- assert result.value == [
91
- models.ColorsExtensibleEnum.BLUE,
92
- models.ColorsExtensibleEnum.RED,
93
- models.ColorsExtensibleEnum.GREEN,
94
- ]
95
-
96
-
97
- def test_extensible_enum_pipe_delimited(client: ArrayClient):
98
- body = models.PipeDelimitedExtensibleEnumArrayProperty(
99
- value=[
100
- models.ColorsExtensibleEnum.BLUE,
101
- models.ColorsExtensibleEnum.RED,
102
- models.ColorsExtensibleEnum.GREEN,
103
- ]
104
- )
105
- result = client.property.extensible_enum_pipe_delimited(body)
106
- assert result.value == [
107
- models.ColorsExtensibleEnum.BLUE,
108
- models.ColorsExtensibleEnum.RED,
109
- models.ColorsExtensibleEnum.GREEN,
110
- ]
111
-
112
-
113
- def test_extensible_enum_newline_delimited(client: ArrayClient):
114
- body = models.NewlineDelimitedExtensibleEnumArrayProperty(
115
- value=[
116
- models.ColorsExtensibleEnum.BLUE,
117
- models.ColorsExtensibleEnum.RED,
118
- models.ColorsExtensibleEnum.GREEN,
119
- ]
120
- )
121
- result = client.property.extensible_enum_newline_delimited(body)
122
- assert result.value == [
123
- models.ColorsExtensibleEnum.BLUE,
124
- models.ColorsExtensibleEnum.RED,
125
- models.ColorsExtensibleEnum.GREEN,
126
- ]
@@ -1,128 +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
-
8
- import pytest
9
- from encode.bytes import BytesClient
10
- from encode.bytes.models import (
11
- DefaultBytesProperty,
12
- Base64urlBytesProperty,
13
- Base64BytesProperty,
14
- Base64urlArrayBytesProperty,
15
- )
16
-
17
- FILE_FOLDER = Path(__file__).parent
18
-
19
-
20
- @pytest.fixture
21
- def client():
22
- with BytesClient() as client:
23
- yield client
24
-
25
-
26
- def test_query(client: BytesClient):
27
- client.query.default(
28
- value=bytes("test", "utf-8"),
29
- )
30
- client.query.base64(
31
- value=bytes("test", "utf-8"),
32
- )
33
- client.query.base64_url(
34
- value=bytes("test", "utf-8"),
35
- )
36
- client.query.base64_url_array(
37
- value=[
38
- bytes("test", "utf-8"),
39
- bytes("test", "utf-8"),
40
- ],
41
- )
42
-
43
-
44
- def test_property(client: BytesClient):
45
- result = client.property.default(
46
- DefaultBytesProperty(
47
- value=bytes("test", "utf-8"),
48
- )
49
- )
50
- assert result.value == bytes("test", "utf-8")
51
-
52
- result = client.property.base64(
53
- Base64BytesProperty(
54
- value=bytes("test", "utf-8"),
55
- )
56
- )
57
- assert result.value == bytes("test", "utf-8")
58
-
59
- result = client.property.base64_url(
60
- Base64urlBytesProperty(
61
- value=bytes("test", "utf-8"),
62
- )
63
- )
64
- assert result.value == bytes("test", "utf-8")
65
-
66
- result = client.property.base64_url_array(
67
- Base64urlArrayBytesProperty(
68
- value=[
69
- bytes("test", "utf-8"),
70
- bytes("test", "utf-8"),
71
- ],
72
- )
73
- )
74
- assert result.value == [
75
- bytes("test", "utf-8"),
76
- bytes("test", "utf-8"),
77
- ]
78
-
79
-
80
- def test_header(client: BytesClient):
81
- client.header.default(
82
- value=bytes("test", "utf-8"),
83
- )
84
- client.header.base64(
85
- value=bytes("test", "utf-8"),
86
- )
87
- client.header.base64_url(
88
- value=bytes("test", "utf-8"),
89
- )
90
- client.header.base64_url_array(
91
- value=[
92
- bytes("test", "utf-8"),
93
- bytes("test", "utf-8"),
94
- ],
95
- )
96
-
97
-
98
- @pytest.fixture
99
- def png_data() -> bytes:
100
- with open(str(FILE_FOLDER / "data/image.png"), "rb") as file_in:
101
- return file_in.read()
102
-
103
-
104
- def test_request_body(client: BytesClient, png_data: bytes):
105
- client.request_body.default(
106
- value=png_data,
107
- )
108
- client.request_body.octet_stream(
109
- value=png_data,
110
- )
111
- client.request_body.custom_content_type(
112
- value=png_data,
113
- )
114
- client.request_body.base64(
115
- value=bytes("test", "utf-8"),
116
- )
117
- client.request_body.base64_url(
118
- value=bytes("test", "utf-8"),
119
- )
120
-
121
-
122
- def test_response_body(client: BytesClient, png_data: bytes):
123
- expected = b"test"
124
- assert b"".join(client.response_body.default()) == png_data
125
- assert expected == client.response_body.base64()
126
- assert b"".join(client.response_body.octet_stream()) == png_data
127
- assert b"".join(client.response_body.custom_content_type()) == png_data
128
- assert expected == client.response_body.base64_url()