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