@typespec/http-client-python 0.28.1 → 0.28.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/emitter/code-model.d.ts.map +1 -1
- package/dist/emitter/code-model.js +6 -6
- package/dist/emitter/code-model.js.map +1 -1
- package/dist/emitter/emitter.d.ts.map +1 -1
- package/dist/emitter/emitter.js +27 -28
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/lib.d.ts +4 -1
- package/dist/emitter/lib.d.ts.map +1 -1
- package/dist/emitter/lib.js.map +1 -1
- package/dist/emitter/system-requirements.js +6 -4
- package/dist/emitter/system-requirements.js.map +1 -1
- package/dist/emitter/types.d.ts +2 -5
- package/dist/emitter/types.d.ts.map +1 -1
- package/dist/emitter/types.js +55 -58
- package/dist/emitter/types.js.map +1 -1
- package/dist/emitter/utils.d.ts.map +1 -1
- package/dist/emitter/utils.js +16 -17
- package/dist/emitter/utils.js.map +1 -1
- package/emitter/src/code-model.ts +6 -13
- package/emitter/src/emitter.ts +29 -31
- package/emitter/src/lib.ts +4 -0
- package/emitter/src/system-requirements.ts +4 -4
- package/emitter/src/types.ts +67 -57
- package/emitter/src/utils.ts +16 -18
- package/emitter/temp/tsconfig.tsbuildinfo +1 -1
- package/eng/scripts/Build-Packages.ps1 +62 -37
- package/eng/scripts/Check-GitChanges.ps1 +30 -3
- package/eng/scripts/Functions.ps1 +54 -15
- package/eng/scripts/Generate.ps1 +42 -8
- package/eng/scripts/Generation.psm1 +44 -15
- package/eng/scripts/Initialize-Repository.ps1 +29 -11
- package/eng/scripts/Test-Packages.ps1 +47 -31
- package/eng/scripts/ci/config/eslint-ci.config.mjs +54 -0
- package/eng/scripts/ci/dev_requirements.txt +1 -0
- package/eng/scripts/ci/format.ts +232 -2
- package/eng/scripts/ci/lint.ts +216 -20
- package/eng/scripts/ci/regenerate-common.ts +18 -14
- package/eng/scripts/ci/regenerate.ts +305 -68
- package/eng/scripts/ci/run-tests.ts +402 -0
- package/eng/scripts/ci/run_mypy.py +4 -3
- package/eng/scripts/ci/run_pylint.py +4 -3
- package/eng/scripts/ci/run_pyright.py +4 -3
- package/eng/scripts/ci/typecheck.ts +225 -0
- package/eng/scripts/ci/util.py +1 -1
- package/eng/scripts/ci/utils.ts +5 -5
- package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
- package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
- package/eng/scripts/setup/build.ts +1 -1
- package/eng/scripts/setup/build_pygen_wheel.py +1 -0
- package/eng/scripts/setup/install.py +1 -0
- package/eng/scripts/setup/prepare.py +1 -0
- package/eng/scripts/setup/prepare.ts +1 -1
- package/eng/scripts/setup/run_tsp.py +3 -3
- package/eng/scripts/setup/system-requirements.ts +8 -4
- package/eng/scripts/setup/venvtools.py +1 -0
- package/generator/build/lib/pygen/codegen/models/operation.py +9 -8
- package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +157 -64
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/codegen/models/operation.py +9 -8
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +157 -64
- package/package.json +48 -42
- package/eng/scripts/ci/run-ci.ts +0 -89
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_commonproperties_async.py +0 -94
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_largeheader_async.py +0 -30
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_nonresource_async.py +0 -36
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_operationtemplates_async.py +0 -205
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_resource_async.py +0 -478
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +0 -101
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_header_async.py +0 -18
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_path_async.py +0 -18
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_query_async.py +0 -18
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +0 -46
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +0 -58
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +0 -82
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_deserialize_empty_string_as_null_async.py +0 -20
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +0 -115
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_hierrarchy_building_async.py +0 -53
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +0 -28
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_override_async.py +0 -106
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +0 -38
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +0 -76
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +0 -22
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +0 -39
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +0 -33
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +0 -80
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +0 -41
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +0 -87
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_encode_duration_async.py +0 -19
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +0 -30
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_payload_pageable_async.py +0 -19
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py +0 -248
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +0 -110
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_shared_models_async.py +0 -132
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +0 -30
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_versioning_previewversion_async.py +0 -53
- package/generator/test/azure/mock_api_tests/asynctests/test_client_namespace_async.py +0 -34
- package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py +0 -69
- package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_enum_conflict_async.py +0 -37
- package/generator/test/azure/mock_api_tests/asynctests/test_client_overload_async.py +0 -27
- package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +0 -64
- package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +0 -31
- package/generator/test/azure/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
- package/generator/test/azure/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
- package/generator/test/azure/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
- package/generator/test/azure/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
- package/generator/test/azure/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
- package/generator/test/azure/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -216
- package/generator/test/azure/mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +0 -130
- package/generator/test/azure/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
- package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +0 -31
- package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +0 -71
- package/generator/test/azure/mock_api_tests/conftest.py +0 -207
- package/generator/test/azure/mock_api_tests/data/image.jpg +0 -0
- package/generator/test/azure/mock_api_tests/data/image.png +0 -0
- package/generator/test/azure/mock_api_tests/test_azure_arm_commonproperties.py +0 -89
- package/generator/test/azure/mock_api_tests/test_azure_arm_largeheader.py +0 -27
- package/generator/test/azure/mock_api_tests/test_azure_arm_nonresource.py +0 -34
- package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +0 -180
- package/generator/test/azure/mock_api_tests/test_azure_arm_resource.py +0 -436
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +0 -92
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_header.py +0 -17
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_path.py +0 -17
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_query.py +0 -17
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +0 -42
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +0 -51
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +0 -70
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_deserialize_empty_string_as_null.py +0 -19
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +0 -104
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_hierrarchy_building.py +0 -45
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +0 -27
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_override.py +0 -102
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +0 -32
- package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +0 -70
- package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +0 -20
- package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +0 -32
- package/generator/test/azure/mock_api_tests/test_azure_core_model.py +0 -30
- package/generator/test/azure/mock_api_tests/test_azure_core_page.py +0 -71
- package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +0 -35
- package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +0 -85
- package/generator/test/azure/mock_api_tests/test_azure_encode_duration.py +0 -18
- package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +0 -29
- package/generator/test/azure/mock_api_tests/test_azure_payload_pageable.py +0 -18
- package/generator/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +0 -235
- package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +0 -104
- package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service_shared_models.py +0 -128
- package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +0 -29
- package/generator/test/azure/mock_api_tests/test_azure_versioning_previewversion.py +0 -50
- package/generator/test/azure/mock_api_tests/test_clear_output_folder.py +0 -23
- package/generator/test/azure/mock_api_tests/test_client_namespace.py +0 -32
- package/generator/test/azure/mock_api_tests/test_client_naming.py +0 -57
- package/generator/test/azure/mock_api_tests/test_client_naming_enum_conflict.py +0 -35
- package/generator/test/azure/mock_api_tests/test_client_overload.py +0 -25
- package/generator/test/azure/mock_api_tests/test_client_structure.py +0 -60
- package/generator/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +0 -29
- package/generator/test/azure/mock_api_tests/test_encode_duration.py +0 -60
- package/generator/test/azure/mock_api_tests/test_encode_numeric.py +0 -31
- package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +0 -251
- package/generator/test/azure/mock_api_tests/test_parameters_basic.py +0 -22
- package/generator/test/azure/mock_api_tests/test_parameters_spread.py +0 -66
- package/generator/test/azure/mock_api_tests/test_payload_content_negotiation.py +0 -33
- package/generator/test/azure/mock_api_tests/test_payload_multipart.py +0 -198
- package/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py +0 -124
- package/generator/test/azure/mock_api_tests/test_serialization_encoded_name_json.py +0 -21
- package/generator/test/azure/mock_api_tests/test_service_multi_service.py +0 -29
- package/generator/test/azure/mock_api_tests/test_special_words.py +0 -63
- package/generator/test/azure/requirements.txt +0 -125
- package/generator/test/azure/tox.ini +0 -64
- package/generator/test/data/image.jpg +0 -0
- package/generator/test/data/image.png +0 -0
- package/generator/test/dev_requirements.txt +0 -8
- package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +0 -140
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_array_async.py +0 -139
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -132
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +0 -127
- package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +0 -35
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +0 -30
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +0 -38
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +0 -24
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +0 -98
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +0 -27
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +0 -134
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +0 -150
- package/generator/test/generic_mock_api_tests/asynctests/test_response_status_code_range_async.py +0 -38
- package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +0 -331
- package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +0 -25
- package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +0 -28
- package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +0 -34
- package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +0 -38
- package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +0 -19
- package/generator/test/generic_mock_api_tests/asynctests/test_specs_documentation_async.py +0 -59
- package/generator/test/generic_mock_api_tests/asynctests/test_streaming_jsonl_async.py +0 -27
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +0 -127
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +0 -98
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +0 -25
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +0 -27
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_file_async.py +0 -59
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +0 -32
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +0 -70
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +0 -85
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +0 -34
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +0 -34
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +0 -67
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +0 -32
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +0 -47
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +0 -353
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +0 -110
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +0 -197
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +0 -315
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +0 -60
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +0 -90
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +0 -36
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +0 -21
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +0 -39
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +0 -29
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +0 -22
- package/generator/test/generic_mock_api_tests/conftest.py +0 -75
- package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
- package/generator/test/generic_mock_api_tests/data/image.png +0 -0
- package/generator/test/generic_mock_api_tests/test_authentication.py +0 -130
- package/generator/test/generic_mock_api_tests/test_encode_array.py +0 -126
- package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -128
- package/generator/test/generic_mock_api_tests/test_encode_datetime.py +0 -123
- package/generator/test/generic_mock_api_tests/test_headasboolean.py +0 -33
- package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +0 -27
- package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +0 -33
- package/generator/test/generic_mock_api_tests/test_parameters_path.py +0 -22
- package/generator/test/generic_mock_api_tests/test_parameters_query.py +0 -17
- package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +0 -93
- package/generator/test/generic_mock_api_tests/test_payload_media_type.py +0 -25
- package/generator/test/generic_mock_api_tests/test_payload_pageable.py +0 -99
- package/generator/test/generic_mock_api_tests/test_payload_xml.py +0 -135
- package/generator/test/generic_mock_api_tests/test_response_status_code_range.py +0 -36
- package/generator/test/generic_mock_api_tests/test_routes.py +0 -285
- package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +0 -17
- package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +0 -21
- package/generator/test/generic_mock_api_tests/test_server_path_single.py +0 -17
- package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +0 -25
- package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +0 -30
- package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +0 -34
- package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +0 -18
- package/generator/test/generic_mock_api_tests/test_specs_documentation.py +0 -51
- package/generator/test/generic_mock_api_tests/test_streaming_jsonl.py +0 -25
- package/generator/test/generic_mock_api_tests/test_typetest_array.py +0 -111
- package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +0 -86
- package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +0 -23
- package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +0 -25
- package/generator/test/generic_mock_api_tests/test_typetest_file.py +0 -52
- package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +0 -29
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +0 -58
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +0 -79
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +0 -31
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +0 -32
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +0 -60
- package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +0 -28
- package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +0 -40
- package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +0 -314
- package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +0 -102
- package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +0 -174
- package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +0 -286
- package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -53
- package/generator/test/generic_mock_api_tests/test_typetest_union.py +0 -80
- package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +0 -290
- package/generator/test/generic_mock_api_tests/test_versioning_added.py +0 -33
- package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +0 -20
- package/generator/test/generic_mock_api_tests/test_versioning_removed.py +0 -37
- package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +0 -27
- package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +0 -17
- package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +0 -21
- package/generator/test/unbranded/mock_api_tests/asynctests/test_auth_flow_async.py +0 -19
- package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
- package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
- package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
- package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
- package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
- package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -218
- package/generator/test/unbranded/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
- package/generator/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +0 -73
- package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +0 -24
- package/generator/test/unbranded/mock_api_tests/conftest.py +0 -91
- package/generator/test/unbranded/mock_api_tests/data/image.jpg +0 -0
- package/generator/test/unbranded/mock_api_tests/data/image.png +0 -0
- package/generator/test/unbranded/mock_api_tests/test_auth_flow.py +0 -17
- package/generator/test/unbranded/mock_api_tests/test_encode_duration.py +0 -60
- package/generator/test/unbranded/mock_api_tests/test_encode_numeric.py +0 -32
- package/generator/test/unbranded/mock_api_tests/test_parameters_basic.py +0 -22
- package/generator/test/unbranded/mock_api_tests/test_parameters_spread.py +0 -66
- package/generator/test/unbranded/mock_api_tests/test_payload_content_negotiation.py +0 -33
- package/generator/test/unbranded/mock_api_tests/test_payload_multipart.py +0 -200
- package/generator/test/unbranded/mock_api_tests/test_serialization_encoded_name_json.py +0 -22
- package/generator/test/unbranded/mock_api_tests/test_special_words.py +0 -66
- package/generator/test/unbranded/mock_api_tests/test_unbranded.py +0 -65
- package/generator/test/unbranded/requirements.txt +0 -69
- package/generator/test/unbranded/tox.ini +0 -64
- package/generator/test/unittests/conftest.py +0 -15
- package/generator/test/unittests/requirements.txt +0 -3
- package/generator/test/unittests/test_enums.py +0 -89
- package/generator/test/unittests/test_model_base_serialization.py +0 -4906
- package/generator/test/unittests/test_model_base_xml_serialization.py +0 -1239
- package/generator/test/unittests/test_name_converter.py +0 -35
- package/generator/test/unittests/test_optional_return_type.py +0 -268
- package/generator/test/unittests/test_parameter_ordering.py +0 -104
- package/generator/test/unittests/test_sort_schema.py +0 -93
- package/generator/test/unittests/tox.ini +0 -5
- /package/eng/scripts/ci/{mypy.ini → config/mypy.ini} +0 -0
- /package/eng/scripts/ci/{pylintrc → config/pylintrc} +0 -0
- /package/eng/scripts/ci/{pyproject.toml → config/pyproject.toml} +0 -0
- /package/eng/scripts/ci/{pyrightconfig.json → config/pyrightconfig.json} +0 -0
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
-
# license information.
|
|
5
|
-
# --------------------------------------------------------------------------
|
|
6
|
-
import os
|
|
7
|
-
import subprocess
|
|
8
|
-
import signal
|
|
9
|
-
import pytest
|
|
10
|
-
import re
|
|
11
|
-
from typing import Literal
|
|
12
|
-
from pathlib import Path
|
|
13
|
-
|
|
14
|
-
FILE_FOLDER = Path(__file__).parent
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def start_server_process():
|
|
18
|
-
azure_http_path = Path(os.path.dirname(__file__)) / Path("../../../../node_modules/@azure-tools/azure-http-specs")
|
|
19
|
-
http_path = Path(os.path.dirname(__file__)) / Path("../../../../node_modules/@typespec/http-specs")
|
|
20
|
-
os.chdir(azure_http_path.resolve())
|
|
21
|
-
cmd = f"npx tsp-spector serve ./specs {(http_path / 'specs').resolve()}"
|
|
22
|
-
if os.name == "nt":
|
|
23
|
-
return subprocess.Popen(cmd, shell=True)
|
|
24
|
-
return subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def terminate_server_process(process):
|
|
28
|
-
if os.name == "nt":
|
|
29
|
-
process.kill()
|
|
30
|
-
else:
|
|
31
|
-
os.killpg(os.getpgid(process.pid), signal.SIGTERM) # Send the signal to all the process groups
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
@pytest.fixture(scope="session", autouse=True)
|
|
35
|
-
def testserver():
|
|
36
|
-
"""Start spector ranch mock api tests"""
|
|
37
|
-
server = start_server_process()
|
|
38
|
-
yield
|
|
39
|
-
terminate_server_process(server)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
_VALID_UUID = re.compile(r"^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$")
|
|
43
|
-
_VALID_RFC7231 = re.compile(
|
|
44
|
-
r"^(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s\d{2}\s"
|
|
45
|
-
r"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT$"
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def validate_format(value: str, format: Literal["uuid", "rfc7231"]):
|
|
50
|
-
if format == "uuid":
|
|
51
|
-
assert _VALID_UUID.match(value)
|
|
52
|
-
elif format == "rfc7231":
|
|
53
|
-
assert _VALID_RFC7231.match(value)
|
|
54
|
-
else:
|
|
55
|
-
raise ValueError("Unknown format")
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
@pytest.fixture
|
|
59
|
-
def check_repeatability_header():
|
|
60
|
-
def func(request):
|
|
61
|
-
validate_format(request.http_request.headers["Repeatability-Request-ID"], "uuid")
|
|
62
|
-
validate_format(request.http_request.headers["Repeatability-First-Sent"], "rfc7231")
|
|
63
|
-
|
|
64
|
-
return func
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@pytest.fixture
|
|
68
|
-
def check_client_request_id_header():
|
|
69
|
-
def func(request, header: str, checked: dict):
|
|
70
|
-
validate_format(request.http_request.headers[header], "uuid")
|
|
71
|
-
checked[header] = request.http_request.headers[header]
|
|
72
|
-
|
|
73
|
-
return func
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
# ================== after azure-core fix, the following code can be removed (begin) ==================
|
|
77
|
-
import urllib.parse
|
|
78
|
-
from azure.core.rest import HttpRequest
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
def update_api_version_of_status_link(status_link: str):
|
|
82
|
-
request_params = {}
|
|
83
|
-
parsed_status_link = urllib.parse.urlparse(status_link)
|
|
84
|
-
request_params = {
|
|
85
|
-
key.lower(): [urllib.parse.quote(v) for v in value]
|
|
86
|
-
for key, value in urllib.parse.parse_qs(parsed_status_link.query).items()
|
|
87
|
-
}
|
|
88
|
-
request_params["api-version"] = "2022-12-01-preview"
|
|
89
|
-
status_link = urllib.parse.urljoin(status_link, parsed_status_link.path)
|
|
90
|
-
return status_link, request_params
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
@pytest.fixture
|
|
94
|
-
def polling_method():
|
|
95
|
-
from azure.core.polling.base_polling import LROBasePolling
|
|
96
|
-
|
|
97
|
-
class TempLroBasePolling(LROBasePolling):
|
|
98
|
-
|
|
99
|
-
def request_status(self, status_link: str):
|
|
100
|
-
if self._path_format_arguments:
|
|
101
|
-
status_link = self._client.format_url(status_link, **self._path_format_arguments)
|
|
102
|
-
status_link, request_params = update_api_version_of_status_link(status_link)
|
|
103
|
-
if "request_id" not in self._operation_config:
|
|
104
|
-
self._operation_config["request_id"] = self._get_request_id()
|
|
105
|
-
|
|
106
|
-
rest_request = HttpRequest("GET", status_link, params=request_params)
|
|
107
|
-
return self._client.send_request(rest_request, _return_pipeline_response=True, **self._operation_config)
|
|
108
|
-
|
|
109
|
-
return TempLroBasePolling(0)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
@pytest.fixture
|
|
113
|
-
def async_polling_method():
|
|
114
|
-
from azure.core.polling.async_base_polling import AsyncLROBasePolling
|
|
115
|
-
|
|
116
|
-
class AsyncTempLroBasePolling(AsyncLROBasePolling):
|
|
117
|
-
|
|
118
|
-
async def request_status(self, status_link: str):
|
|
119
|
-
if self._path_format_arguments:
|
|
120
|
-
status_link = self._client.format_url(status_link, **self._path_format_arguments)
|
|
121
|
-
status_link, request_params = update_api_version_of_status_link(status_link)
|
|
122
|
-
# Re-inject 'x-ms-client-request-id' while polling
|
|
123
|
-
if "request_id" not in self._operation_config:
|
|
124
|
-
self._operation_config["request_id"] = self._get_request_id()
|
|
125
|
-
|
|
126
|
-
rest_request = HttpRequest("GET", status_link, params=request_params)
|
|
127
|
-
return await self._client.send_request(
|
|
128
|
-
rest_request, _return_pipeline_response=True, **self._operation_config
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
return AsyncTempLroBasePolling(0)
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
# ================== after azure-core fix, the up code can be removed (end) ==================
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
@pytest.fixture()
|
|
138
|
-
def credential():
|
|
139
|
-
"""I actually don't need anything, since the authentication policy
|
|
140
|
-
will bypass it.
|
|
141
|
-
"""
|
|
142
|
-
|
|
143
|
-
class FakeCredential:
|
|
144
|
-
pass
|
|
145
|
-
|
|
146
|
-
return FakeCredential()
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
@pytest.fixture()
|
|
150
|
-
def authentication_policy():
|
|
151
|
-
from azure.core.pipeline.policies import SansIOHTTPPolicy
|
|
152
|
-
|
|
153
|
-
return SansIOHTTPPolicy()
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
SPECIAL_WORDS = [
|
|
157
|
-
"and",
|
|
158
|
-
"as",
|
|
159
|
-
"assert",
|
|
160
|
-
"async",
|
|
161
|
-
"await",
|
|
162
|
-
"break",
|
|
163
|
-
"class",
|
|
164
|
-
"constructor",
|
|
165
|
-
"continue",
|
|
166
|
-
"def",
|
|
167
|
-
"del",
|
|
168
|
-
"elif",
|
|
169
|
-
"else",
|
|
170
|
-
"except",
|
|
171
|
-
"exec",
|
|
172
|
-
"finally",
|
|
173
|
-
"for",
|
|
174
|
-
"from",
|
|
175
|
-
"global",
|
|
176
|
-
"if",
|
|
177
|
-
"import",
|
|
178
|
-
"in",
|
|
179
|
-
"is",
|
|
180
|
-
"lambda",
|
|
181
|
-
"not",
|
|
182
|
-
"or",
|
|
183
|
-
"pass",
|
|
184
|
-
"raise",
|
|
185
|
-
"return",
|
|
186
|
-
"try",
|
|
187
|
-
"while",
|
|
188
|
-
"with",
|
|
189
|
-
"yield",
|
|
190
|
-
]
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
@pytest.fixture
|
|
194
|
-
def special_words() -> list[str]:
|
|
195
|
-
return SPECIAL_WORDS
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
@pytest.fixture
|
|
199
|
-
def png_data() -> bytes:
|
|
200
|
-
with open(str(FILE_FOLDER / "data/image.png"), "rb") as file_in:
|
|
201
|
-
return file_in.read()
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
@pytest.fixture
|
|
205
|
-
def jpg_data() -> bytes:
|
|
206
|
-
with open(str(FILE_FOLDER / "data/image.jpg"), "rb") as file_in:
|
|
207
|
-
return file_in.read()
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
-
import pytest
|
|
7
|
-
from azure.resourcemanager.commonproperties import CommonPropertiesClient
|
|
8
|
-
from azure.resourcemanager.commonproperties import models
|
|
9
|
-
from azure.core import exceptions
|
|
10
|
-
|
|
11
|
-
SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000"
|
|
12
|
-
RESOURCE_GROUP_NAME = "test-rg"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@pytest.fixture
|
|
16
|
-
def client(credential, authentication_policy):
|
|
17
|
-
with CommonPropertiesClient(
|
|
18
|
-
credential, SUBSCRIPTION_ID, "http://localhost:3000", authentication_policy=authentication_policy
|
|
19
|
-
) as client:
|
|
20
|
-
yield client
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def test_managed_identity_get(client):
|
|
24
|
-
result = client.managed_identity.get(
|
|
25
|
-
resource_group_name=RESOURCE_GROUP_NAME, managed_identity_tracked_resource_name="identity"
|
|
26
|
-
)
|
|
27
|
-
assert result.location == "eastus"
|
|
28
|
-
assert result.identity.type == "SystemAssigned"
|
|
29
|
-
assert result.properties.provisioning_state == "Succeeded"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def test_managed_identity_create_with_system_assigned(client):
|
|
33
|
-
result = client.managed_identity.create_with_system_assigned(
|
|
34
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
35
|
-
managed_identity_tracked_resource_name="identity",
|
|
36
|
-
resource=models.ManagedIdentityTrackedResource(
|
|
37
|
-
location="eastus", identity=models.ManagedServiceIdentity(type="SystemAssigned")
|
|
38
|
-
),
|
|
39
|
-
)
|
|
40
|
-
assert result.location == "eastus"
|
|
41
|
-
assert result.identity.type == "SystemAssigned"
|
|
42
|
-
assert result.properties.provisioning_state == "Succeeded"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def test_managed_identity_update_with_user_assigned_and_system_assigned(client):
|
|
46
|
-
result = client.managed_identity.update_with_user_assigned_and_system_assigned(
|
|
47
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
48
|
-
managed_identity_tracked_resource_name="identity",
|
|
49
|
-
properties=models.ManagedIdentityTrackedResource(
|
|
50
|
-
location="eastus",
|
|
51
|
-
identity=models.ManagedServiceIdentity(
|
|
52
|
-
type="SystemAssigned,UserAssigned",
|
|
53
|
-
user_assigned_identities={
|
|
54
|
-
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": models.UserAssignedIdentity()
|
|
55
|
-
},
|
|
56
|
-
),
|
|
57
|
-
),
|
|
58
|
-
)
|
|
59
|
-
assert result.location == "eastus"
|
|
60
|
-
assert result.identity.type == "SystemAssigned,UserAssigned"
|
|
61
|
-
assert result.properties.provisioning_state == "Succeeded"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def test_error_get_for_predefined_error(client):
|
|
65
|
-
try:
|
|
66
|
-
client.error.get_for_predefined_error(
|
|
67
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
68
|
-
confidential_resource_name="confidential",
|
|
69
|
-
)
|
|
70
|
-
except exceptions.ResourceNotFoundError as e:
|
|
71
|
-
assert e.status_code == 404
|
|
72
|
-
assert (
|
|
73
|
-
e.error.message
|
|
74
|
-
== "The Resource 'Azure.ResourceManager.CommonProperties/confidentialResources/confidential' under resource group 'test-rg' was not found."
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
def test_error_create_for_user_defined_error(client):
|
|
79
|
-
try:
|
|
80
|
-
client.error.create_for_user_defined_error(
|
|
81
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
82
|
-
confidential_resource_name="confidential",
|
|
83
|
-
resource=models.ConfidentialResource(
|
|
84
|
-
location="eastus", properties=models.ConfidentialResourceProperties(username="00")
|
|
85
|
-
),
|
|
86
|
-
)
|
|
87
|
-
except exceptions.HttpResponseError as e:
|
|
88
|
-
assert e.status_code == 400
|
|
89
|
-
assert e.error.message == "Username should not contain only numbers."
|
|
@@ -1,27 +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 azure.resourcemanager.largeheader import LargeHeaderClient
|
|
8
|
-
from azure.resourcemanager.largeheader import models
|
|
9
|
-
|
|
10
|
-
SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000"
|
|
11
|
-
RESOURCE_GROUP_NAME = "test-rg"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@pytest.fixture
|
|
15
|
-
def client(credential, authentication_policy):
|
|
16
|
-
with LargeHeaderClient(
|
|
17
|
-
credential, SUBSCRIPTION_ID, "http://localhost:3000", authentication_policy=authentication_policy
|
|
18
|
-
) as client:
|
|
19
|
-
yield client
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def test_large_headers_begin_two6_k(client: LargeHeaderClient):
|
|
23
|
-
result = client.large_headers.begin_two6_k(
|
|
24
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
25
|
-
large_header_name="header1",
|
|
26
|
-
).result()
|
|
27
|
-
assert result == models.CancelResult(succeeded=True)
|
|
@@ -1,34 +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 azure.resourcemanager.nonresource import NonResourceClient
|
|
8
|
-
from azure.resourcemanager.nonresource import models
|
|
9
|
-
|
|
10
|
-
SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000"
|
|
11
|
-
RESOURCE_GROUP_NAME = "test-rg"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@pytest.fixture
|
|
15
|
-
def client(credential, authentication_policy):
|
|
16
|
-
with NonResourceClient(
|
|
17
|
-
credential, SUBSCRIPTION_ID, "http://localhost:3000", authentication_policy=authentication_policy
|
|
18
|
-
) as client:
|
|
19
|
-
yield client
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def test_non_resource_create(client: NonResourceClient):
|
|
23
|
-
result = client.non_resource_operations.create(
|
|
24
|
-
location="eastus", parameter="hello", body=models.NonResource(id="id", name="hello", type="nonResource")
|
|
25
|
-
)
|
|
26
|
-
assert result == models.NonResource(id="id", name="hello", type="nonResource")
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def test_non_resource_get(client: NonResourceClient):
|
|
30
|
-
result = client.non_resource_operations.get(
|
|
31
|
-
location="eastus",
|
|
32
|
-
parameter="hello",
|
|
33
|
-
)
|
|
34
|
-
assert result == models.NonResource(id="id", name="hello", type="nonResource")
|
|
@@ -1,180 +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 azure.resourcemanager.operationtemplates import OperationTemplatesClient
|
|
8
|
-
from azure.resourcemanager.operationtemplates import models
|
|
9
|
-
|
|
10
|
-
SUBSCRIPTION_ID = "00000000-0000-0000-0000-000000000000"
|
|
11
|
-
RESOURCE_GROUP_NAME = "test-rg"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@pytest.fixture
|
|
15
|
-
def client(credential, authentication_policy):
|
|
16
|
-
with OperationTemplatesClient(
|
|
17
|
-
credential,
|
|
18
|
-
SUBSCRIPTION_ID,
|
|
19
|
-
"http://localhost:3000",
|
|
20
|
-
authentication_policy=authentication_policy,
|
|
21
|
-
polling_interval=0,
|
|
22
|
-
) as client:
|
|
23
|
-
yield client
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def test_check_name_availability_check_global(client):
|
|
27
|
-
result = client.check_name_availability.check_global(
|
|
28
|
-
body=models.CheckNameAvailabilityRequest(name="checkName", type="Microsoft.Web/site")
|
|
29
|
-
)
|
|
30
|
-
assert result.name_available == False
|
|
31
|
-
assert result.reason == models.CheckNameAvailabilityReason.ALREADY_EXISTS
|
|
32
|
-
assert result.message == "Hostname 'checkName' already exists. Please select a different name."
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def test_check_name_availability_check_local(client):
|
|
36
|
-
result = client.check_name_availability.check_local(
|
|
37
|
-
location="westus",
|
|
38
|
-
body=models.CheckNameAvailabilityRequest(name="checkName", type="Microsoft.Web/site"),
|
|
39
|
-
)
|
|
40
|
-
assert result.name_available == False
|
|
41
|
-
assert result.reason == models.CheckNameAvailabilityReason.ALREADY_EXISTS
|
|
42
|
-
assert result.message == "Hostname 'checkName' already exists. Please select a different name."
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def test_operations_list(client):
|
|
46
|
-
result = client.operations.list().next()
|
|
47
|
-
assert result.name == "Microsoft.Compute/virtualMachines/write"
|
|
48
|
-
assert result.display.operation == "Create or Update Virtual Machine."
|
|
49
|
-
assert result.origin == "user,system"
|
|
50
|
-
assert result.action_type == "Internal"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
def test_lro_begin_create_or_replace(client):
|
|
54
|
-
result = client.lro.begin_create_or_replace(
|
|
55
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
56
|
-
order_name="order1",
|
|
57
|
-
resource=models.Order(
|
|
58
|
-
location="eastus",
|
|
59
|
-
properties=models.OrderProperties(product_id="product1", amount=1),
|
|
60
|
-
),
|
|
61
|
-
).result()
|
|
62
|
-
assert result.name == "order1"
|
|
63
|
-
assert (
|
|
64
|
-
result.id
|
|
65
|
-
== "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.OperationTemplates/orders/order1"
|
|
66
|
-
)
|
|
67
|
-
assert result.type == "Azure.ResourceManager.Resources/orders"
|
|
68
|
-
assert result.location == "eastus"
|
|
69
|
-
assert result.system_data.created_by == "AzureSDK"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def test_lro_begin_export(client):
|
|
73
|
-
client.lro.begin_export(
|
|
74
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
75
|
-
order_name="order1",
|
|
76
|
-
body=models.ExportRequest(format="csv"),
|
|
77
|
-
).result()
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
def test_lro_begin_delete(client):
|
|
81
|
-
client.lro.begin_delete(
|
|
82
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
83
|
-
order_name="order1",
|
|
84
|
-
).result()
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
def test_optional_body_get(client):
|
|
88
|
-
result = client.optional_body.get(
|
|
89
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
90
|
-
widget_name="widget1",
|
|
91
|
-
)
|
|
92
|
-
assert result.name == "widget1"
|
|
93
|
-
assert (
|
|
94
|
-
result.id
|
|
95
|
-
== "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.OperationTemplates/widgets/widget1"
|
|
96
|
-
)
|
|
97
|
-
assert result.type == "Azure.ResourceManager.OperationTemplates/widgets"
|
|
98
|
-
assert result.location == "eastus"
|
|
99
|
-
assert result.properties.name == "widget1"
|
|
100
|
-
assert result.properties.description == "A test widget"
|
|
101
|
-
assert result.properties.provisioning_state == "Succeeded"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
def test_optional_body_patch_without_body(client):
|
|
105
|
-
result = client.optional_body.patch(
|
|
106
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
107
|
-
widget_name="widget1",
|
|
108
|
-
)
|
|
109
|
-
assert result.name == "widget1"
|
|
110
|
-
assert result.properties.name == "widget1"
|
|
111
|
-
assert result.properties.description == "A test widget"
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def test_optional_body_patch_with_body(client):
|
|
115
|
-
result = client.optional_body.patch(
|
|
116
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
117
|
-
widget_name="widget1",
|
|
118
|
-
properties=models.Widget(
|
|
119
|
-
location="eastus",
|
|
120
|
-
properties=models.WidgetProperties(name="updated-widget", description="Updated description"),
|
|
121
|
-
),
|
|
122
|
-
)
|
|
123
|
-
assert result.name == "widget1"
|
|
124
|
-
assert result.properties.name == "updated-widget"
|
|
125
|
-
assert result.properties.description == "Updated description"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
def test_optional_body_post_without_body(client):
|
|
129
|
-
result = client.optional_body.post(
|
|
130
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
131
|
-
widget_name="widget1",
|
|
132
|
-
)
|
|
133
|
-
assert result.result == "Action completed successfully"
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
def test_optional_body_post_with_body(client):
|
|
137
|
-
result = client.optional_body.post(
|
|
138
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
139
|
-
widget_name="widget1",
|
|
140
|
-
body=models.ActionRequest(action_type="perform", parameters="test-parameters"),
|
|
141
|
-
)
|
|
142
|
-
assert result.result == "Action completed successfully with parameters"
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def test_optional_body_provider_post_without_body(client):
|
|
146
|
-
result = client.optional_body.provider_post()
|
|
147
|
-
assert result.total_allowed == 50
|
|
148
|
-
assert result.status == "Changed to default allowance"
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
def test_optional_body_provider_post_with_body(client):
|
|
152
|
-
result = client.optional_body.provider_post(
|
|
153
|
-
body=models.ChangeAllowanceRequest(total_allowed=100, reason="Increased demand"),
|
|
154
|
-
)
|
|
155
|
-
assert result.total_allowed == 100
|
|
156
|
-
assert result.status == "Changed to requested allowance"
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
def test_lro_begin_export_array(client):
|
|
160
|
-
result = client.lro.begin_export_array(
|
|
161
|
-
body=models.ExportRequest(format="csv"),
|
|
162
|
-
).result()
|
|
163
|
-
assert len(result) == 2
|
|
164
|
-
assert result[0].content == "order1,product1,1"
|
|
165
|
-
assert result[1].content == "order2,product2,2"
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
def test_lro_paging_begin_post_paging_lro(client):
|
|
169
|
-
result = client.lro_paging.begin_post_paging_lro(
|
|
170
|
-
resource_group_name=RESOURCE_GROUP_NAME,
|
|
171
|
-
product_name="default",
|
|
172
|
-
).result()
|
|
173
|
-
items = list(result)
|
|
174
|
-
assert len(items) == 2
|
|
175
|
-
assert items[0].name == "product1"
|
|
176
|
-
assert items[0].properties.product_id == "product1"
|
|
177
|
-
assert items[0].properties.provisioning_state == "Succeeded"
|
|
178
|
-
assert items[1].name == "product2"
|
|
179
|
-
assert items[1].properties.product_id == "product2"
|
|
180
|
-
assert items[1].properties.provisioning_state == "Succeeded"
|