@typespec/http-client-python 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +118 -0
- package/dist/emitter/code-model.d.ts +4 -0
- package/dist/emitter/code-model.d.ts.map +1 -0
- package/dist/emitter/code-model.js +195 -0
- package/dist/emitter/code-model.js.map +1 -0
- package/dist/emitter/emitter.d.ts +6 -0
- package/dist/emitter/emitter.d.ts.map +1 -0
- package/dist/emitter/emitter.js +104 -0
- package/dist/emitter/emitter.js.map +1 -0
- package/dist/emitter/external-process.d.ts +20 -0
- package/dist/emitter/external-process.d.ts.map +1 -0
- package/dist/emitter/external-process.js +44 -0
- package/dist/emitter/external-process.js.map +1 -0
- package/dist/emitter/http.d.ts +7 -0
- package/dist/emitter/http.d.ts.map +1 -0
- package/dist/emitter/http.js +268 -0
- package/dist/emitter/http.js.map +1 -0
- package/dist/emitter/index.d.ts +3 -0
- package/dist/emitter/index.d.ts.map +1 -0
- package/dist/emitter/index.js +3 -0
- package/dist/emitter/index.js.map +1 -0
- package/dist/emitter/lib.d.ts +30 -0
- package/dist/emitter/lib.d.ts.map +1 -0
- package/dist/emitter/lib.js +33 -0
- package/dist/emitter/lib.js.map +1 -0
- package/dist/emitter/types.d.ts +36 -0
- package/dist/emitter/types.d.ts.map +1 -0
- package/dist/emitter/types.js +491 -0
- package/dist/emitter/types.js.map +1 -0
- package/dist/emitter/utils.d.ts +26 -0
- package/dist/emitter/utils.d.ts.map +1 -0
- package/dist/emitter/utils.js +155 -0
- package/dist/emitter/utils.js.map +1 -0
- package/emitter/src/code-model.ts +272 -0
- package/emitter/src/emitter.ts +127 -0
- package/emitter/src/external-process.ts +52 -0
- package/emitter/src/http.ts +382 -0
- package/emitter/src/index.ts +2 -0
- package/emitter/src/lib.ts +59 -0
- package/emitter/src/types.ts +573 -0
- package/emitter/src/utils.ts +215 -0
- package/emitter/temp/tsconfig.tsbuildinfo +1 -0
- package/emitter/test/utils.test.ts +22 -0
- package/emitter/tsconfig.build.json +11 -0
- package/emitter/tsconfig.json +7 -0
- package/emitter/vitest.config.ts +4 -0
- package/eng/scripts/Build-Packages.ps1 +86 -0
- package/eng/scripts/Check-GitChanges.ps1 +22 -0
- package/eng/scripts/Functions.ps1 +26 -0
- package/eng/scripts/Generate.ps1 +11 -0
- package/eng/scripts/Generation.psm1 +22 -0
- package/eng/scripts/Initialize-Repository.ps1 +40 -0
- package/eng/scripts/Test-Packages.ps1 +65 -0
- package/eng/scripts/ci/format.ts +3 -0
- package/eng/scripts/ci/lint.ts +39 -0
- package/eng/scripts/ci/mypy.ini +38 -0
- package/eng/scripts/ci/pylintrc +59 -0
- package/eng/scripts/ci/pyproject.toml +18 -0
- package/eng/scripts/ci/pyrightconfig.json +6 -0
- package/eng/scripts/ci/regenerate.ts +299 -0
- package/eng/scripts/ci/run-ci.ts +88 -0
- package/eng/scripts/ci/run_apiview.py +40 -0
- package/eng/scripts/ci/run_mypy.py +49 -0
- package/eng/scripts/ci/run_pylint.py +50 -0
- package/eng/scripts/ci/run_pyright.py +58 -0
- package/eng/scripts/ci/util.py +72 -0
- package/eng/scripts/ci/utils.ts +48 -0
- package/eng/scripts/setup/__pycache__/venvtools.cpython-38.pyc +0 -0
- package/eng/scripts/setup/install.py +53 -0
- package/eng/scripts/setup/prepare.py +42 -0
- package/eng/scripts/setup/run-python3.ts +25 -0
- package/eng/scripts/setup/run_tsp.py +42 -0
- package/eng/scripts/setup/system-requirements.ts +261 -0
- package/eng/scripts/setup/venvtools.py +87 -0
- package/generator/LICENSE +21 -0
- package/generator/README.md +1 -0
- package/generator/dev_requirements.txt +13 -0
- package/generator/pygen/__init__.py +107 -0
- package/generator/pygen/_version.py +7 -0
- package/generator/pygen/black.py +71 -0
- package/generator/pygen/codegen/__init__.py +338 -0
- package/generator/pygen/codegen/_utils.py +17 -0
- package/generator/pygen/codegen/models/__init__.py +204 -0
- package/generator/pygen/codegen/models/base.py +186 -0
- package/generator/pygen/codegen/models/base_builder.py +118 -0
- package/generator/pygen/codegen/models/client.py +433 -0
- package/generator/pygen/codegen/models/code_model.py +237 -0
- package/generator/pygen/codegen/models/combined_type.py +149 -0
- package/generator/pygen/codegen/models/constant_type.py +129 -0
- package/generator/pygen/codegen/models/credential_types.py +214 -0
- package/generator/pygen/codegen/models/dictionary_type.py +127 -0
- package/generator/pygen/codegen/models/enum_type.py +238 -0
- package/generator/pygen/codegen/models/imports.py +291 -0
- package/generator/pygen/codegen/models/list_type.py +143 -0
- package/generator/pygen/codegen/models/lro_operation.py +142 -0
- package/generator/pygen/codegen/models/lro_paging_operation.py +32 -0
- package/generator/pygen/codegen/models/model_type.py +359 -0
- package/generator/pygen/codegen/models/operation.py +530 -0
- package/generator/pygen/codegen/models/operation_group.py +184 -0
- package/generator/pygen/codegen/models/paging_operation.py +155 -0
- package/generator/pygen/codegen/models/parameter.py +412 -0
- package/generator/pygen/codegen/models/parameter_list.py +387 -0
- package/generator/pygen/codegen/models/primitive_types.py +659 -0
- package/generator/pygen/codegen/models/property.py +170 -0
- package/generator/pygen/codegen/models/request_builder.py +189 -0
- package/generator/pygen/codegen/models/request_builder_parameter.py +115 -0
- package/generator/pygen/codegen/models/response.py +348 -0
- package/generator/pygen/codegen/models/utils.py +21 -0
- package/generator/pygen/codegen/serializers/__init__.py +574 -0
- package/generator/pygen/codegen/serializers/base_serializer.py +21 -0
- package/generator/pygen/codegen/serializers/builder_serializer.py +1507 -0
- package/generator/pygen/codegen/serializers/client_serializer.py +294 -0
- package/generator/pygen/codegen/serializers/enum_serializer.py +15 -0
- package/generator/pygen/codegen/serializers/general_serializer.py +213 -0
- package/generator/pygen/codegen/serializers/import_serializer.py +126 -0
- package/generator/pygen/codegen/serializers/metadata_serializer.py +198 -0
- package/generator/pygen/codegen/serializers/model_init_serializer.py +33 -0
- package/generator/pygen/codegen/serializers/model_serializer.py +317 -0
- package/generator/pygen/codegen/serializers/operation_groups_serializer.py +89 -0
- package/generator/pygen/codegen/serializers/operations_init_serializer.py +44 -0
- package/generator/pygen/codegen/serializers/parameter_serializer.py +221 -0
- package/generator/pygen/codegen/serializers/patch_serializer.py +19 -0
- package/generator/pygen/codegen/serializers/request_builders_serializer.py +52 -0
- package/generator/pygen/codegen/serializers/sample_serializer.py +168 -0
- package/generator/pygen/codegen/serializers/test_serializer.py +292 -0
- package/generator/pygen/codegen/serializers/types_serializer.py +31 -0
- package/generator/pygen/codegen/serializers/utils.py +68 -0
- package/generator/pygen/codegen/templates/client.py.jinja2 +37 -0
- package/generator/pygen/codegen/templates/client_container.py.jinja2 +12 -0
- package/generator/pygen/codegen/templates/config.py.jinja2 +73 -0
- package/generator/pygen/codegen/templates/config_container.py.jinja2 +16 -0
- package/generator/pygen/codegen/templates/conftest.py.jinja2 +28 -0
- package/generator/pygen/codegen/templates/enum.py.jinja2 +13 -0
- package/generator/pygen/codegen/templates/enum_container.py.jinja2 +10 -0
- package/generator/pygen/codegen/templates/init.py.jinja2 +24 -0
- package/generator/pygen/codegen/templates/keywords.jinja2 +19 -0
- package/generator/pygen/codegen/templates/lro_operation.py.jinja2 +16 -0
- package/generator/pygen/codegen/templates/lro_paging_operation.py.jinja2 +18 -0
- package/generator/pygen/codegen/templates/macros.jinja2 +12 -0
- package/generator/pygen/codegen/templates/metadata.json.jinja2 +167 -0
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +1157 -0
- package/generator/pygen/codegen/templates/model_container.py.jinja2 +12 -0
- package/generator/pygen/codegen/templates/model_dpg.py.jinja2 +97 -0
- package/generator/pygen/codegen/templates/model_init.py.jinja2 +28 -0
- package/generator/pygen/codegen/templates/model_msrest.py.jinja2 +92 -0
- package/generator/pygen/codegen/templates/operation.py.jinja2 +21 -0
- package/generator/pygen/codegen/templates/operation_group.py.jinja2 +75 -0
- package/generator/pygen/codegen/templates/operation_groups_container.py.jinja2 +19 -0
- package/generator/pygen/codegen/templates/operation_tools.jinja2 +81 -0
- package/generator/pygen/codegen/templates/operations_folder_init.py.jinja2 +17 -0
- package/generator/pygen/codegen/templates/packaging_templates/CHANGELOG.md.jinja2 +6 -0
- package/generator/pygen/codegen/templates/packaging_templates/LICENSE.jinja2 +21 -0
- package/generator/pygen/codegen/templates/packaging_templates/MANIFEST.in.jinja2 +8 -0
- package/generator/pygen/codegen/templates/packaging_templates/README.md.jinja2 +107 -0
- package/generator/pygen/codegen/templates/packaging_templates/dev_requirements.txt.jinja2 +9 -0
- package/generator/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +108 -0
- package/generator/pygen/codegen/templates/paging_operation.py.jinja2 +21 -0
- package/generator/pygen/codegen/templates/patch.py.jinja2 +19 -0
- package/generator/pygen/codegen/templates/pkgutil_init.py.jinja2 +1 -0
- package/generator/pygen/codegen/templates/request_builder.py.jinja2 +28 -0
- package/generator/pygen/codegen/templates/request_builders.py.jinja2 +10 -0
- package/generator/pygen/codegen/templates/rest_init.py.jinja2 +12 -0
- package/generator/pygen/codegen/templates/sample.py.jinja2 +44 -0
- package/generator/pygen/codegen/templates/serialization.py.jinja2 +2114 -0
- package/generator/pygen/codegen/templates/test.py.jinja2 +50 -0
- package/generator/pygen/codegen/templates/testpreparer.py.jinja2 +26 -0
- package/generator/pygen/codegen/templates/types.py.jinja2 +7 -0
- package/generator/pygen/codegen/templates/validation.py.jinja2 +38 -0
- package/generator/pygen/codegen/templates/vendor.py.jinja2 +95 -0
- package/generator/pygen/codegen/templates/version.py.jinja2 +4 -0
- package/generator/pygen/m2r.py +65 -0
- package/generator/pygen/postprocess/__init__.py +183 -0
- package/generator/pygen/postprocess/get_all.py +19 -0
- package/generator/pygen/postprocess/venvtools.py +75 -0
- package/generator/pygen/preprocess/__init__.py +515 -0
- package/generator/pygen/preprocess/helpers.py +27 -0
- package/generator/pygen/preprocess/python_mappings.py +224 -0
- package/generator/pygen/utils.py +163 -0
- package/generator/pygen.egg-info/PKG-INFO +25 -0
- package/generator/pygen.egg-info/SOURCES.txt +66 -0
- package/generator/pygen.egg-info/dependency_links.txt +1 -0
- package/generator/pygen.egg-info/requires.txt +4 -0
- package/generator/pygen.egg-info/top_level.txt +1 -0
- package/generator/requirements.txt +12 -0
- package/generator/setup.py +55 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_models_common_types_managed_identity_async.py +63 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_models_resource_async.py +284 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +101 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +93 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +31 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +76 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +22 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +39 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +33 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +58 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +41 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +87 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +30 -0
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +30 -0
- package/generator/test/azure/mock_api_tests/conftest.py +150 -0
- package/generator/test/azure/mock_api_tests/test_azure_arm_models_common_types_managed_identity.py +60 -0
- package/generator/test/azure/mock_api_tests/test_azure_arm_models_resource.py +254 -0
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +92 -0
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +84 -0
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +28 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +70 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +20 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +32 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_model.py +30 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_page.py +51 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +35 -0
- package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +85 -0
- package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +29 -0
- package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +29 -0
- package/generator/test/azure/requirements.txt +89 -0
- package/generator/test/azure/tox.ini +56 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +121 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_client_naming_async.py +69 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_client_structure_async.py +62 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +133 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +127 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_duration_async.py +63 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_numeric_async.py +35 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +35 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_basic_async.py +24 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +30 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +44 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_spread_async.py +76 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_content_negotiation_async.py +37 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +98 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +27 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_multipart_async.py +153 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +19 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +103 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +128 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +331 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +24 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +18 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +25 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +18 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +28 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +34 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +38 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +19 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_special_words_async.py +42 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +118 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +98 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +25 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +27 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +32 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +70 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +85 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +34 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +34 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +67 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +32 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +47 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +352 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +110 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +197 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +315 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +60 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +90 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +36 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +21 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +21 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +29 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +18 -0
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +22 -0
- package/generator/test/generic_mock_api_tests/conftest.py +113 -0
- 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 +113 -0
- package/generator/test/generic_mock_api_tests/test_client_naming.py +57 -0
- package/generator/test/generic_mock_api_tests/test_client_structure.py +57 -0
- package/generator/test/generic_mock_api_tests/test_encode_bytes.py +128 -0
- package/generator/test/generic_mock_api_tests/test_encode_datetime.py +123 -0
- package/generator/test/generic_mock_api_tests/test_encode_duration.py +60 -0
- package/generator/test/generic_mock_api_tests/test_encode_numeric.py +31 -0
- package/generator/test/generic_mock_api_tests/test_headasboolean.py +33 -0
- package/generator/test/generic_mock_api_tests/test_parameters_basic.py +22 -0
- package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +27 -0
- package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +37 -0
- package/generator/test/generic_mock_api_tests/test_parameters_spread.py +66 -0
- package/generator/test/generic_mock_api_tests/test_payload_content_negotiation.py +33 -0
- package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +93 -0
- package/generator/test/generic_mock_api_tests/test_payload_media_type.py +25 -0
- package/generator/test/generic_mock_api_tests/test_payload_multipart.py +140 -0
- package/generator/test/generic_mock_api_tests/test_payload_pageable.py +18 -0
- package/generator/test/generic_mock_api_tests/test_payload_xml.py +93 -0
- package/generator/test/generic_mock_api_tests/test_resiliency_srv_driven.py +122 -0
- package/generator/test/generic_mock_api_tests/test_routes.py +285 -0
- package/generator/test/generic_mock_api_tests/test_serialization_encoded_name_json.py +21 -0
- package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +17 -0
- package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +21 -0
- package/generator/test/generic_mock_api_tests/test_server_path_single.py +17 -0
- package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +25 -0
- package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +30 -0
- package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +34 -0
- package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +18 -0
- package/generator/test/generic_mock_api_tests/test_special_words.py +37 -0
- package/generator/test/generic_mock_api_tests/test_typetest_array.py +103 -0
- package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +86 -0
- package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +23 -0
- package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +25 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +29 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +58 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +79 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +31 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +32 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +60 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +28 -0
- package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +40 -0
- package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +313 -0
- package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +102 -0
- package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +174 -0
- package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +286 -0
- package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +53 -0
- package/generator/test/generic_mock_api_tests/test_typetest_union.py +80 -0
- package/generator/test/generic_mock_api_tests/test_versioning_added.py +33 -0
- package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +20 -0
- package/generator/test/generic_mock_api_tests/test_versioning_removed.py +20 -0
- package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +27 -0
- package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +17 -0
- package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +21 -0
- package/generator/test/generic_mock_api_tests/unittests/test_model_base_serialization.py +4067 -0
- package/generator/test/generic_mock_api_tests/unittests/test_model_base_xml_serialization.py +1001 -0
- package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +24 -0
- package/generator/test/unbranded/mock_api_tests/cadl-ranch-config.yaml +27 -0
- package/generator/test/unbranded/mock_api_tests/conftest.py +35 -0
- package/generator/test/unbranded/mock_api_tests/test_unbranded.py +57 -0
- package/generator/test/unbranded/requirements.txt +72 -0
- package/generator/test/unbranded/tox.ini +56 -0
- package/package.json +93 -0
|
@@ -0,0 +1,35 @@
|
|
|
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 specs.azure.core.scalar import ScalarClient, models
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@pytest.fixture
|
|
11
|
+
def client():
|
|
12
|
+
with ScalarClient() as client:
|
|
13
|
+
yield client
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_azure_location_scalar_get(client: ScalarClient):
|
|
17
|
+
result = client.azure_location_scalar.get()
|
|
18
|
+
assert result == "eastus"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_azure_location_scalar_put(client: ScalarClient):
|
|
22
|
+
client.azure_location_scalar.put("eastus")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_azure_location_scalar_post(client: ScalarClient):
|
|
26
|
+
result = client.azure_location_scalar.post(models.AzureLocationModel(location="eastus"))
|
|
27
|
+
assert result == models.AzureLocationModel(location="eastus")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def test_azure_location_scalar_header(client: ScalarClient):
|
|
31
|
+
client.azure_location_scalar.header(region="eastus")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def test_azure_location_scalar_query(client: ScalarClient):
|
|
35
|
+
client.azure_location_scalar.query(region="eastus")
|
|
@@ -0,0 +1,85 @@
|
|
|
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 functools
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
from azure.core.exceptions import HttpResponseError
|
|
11
|
+
from azure.core import MatchConditions
|
|
12
|
+
from specs.azure.core.traits import TraitsClient
|
|
13
|
+
from specs.azure.core.traits.models import UserActionParam
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@pytest.fixture
|
|
17
|
+
def client():
|
|
18
|
+
with TraitsClient() as client:
|
|
19
|
+
yield client
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_get(client: TraitsClient, check_client_request_id_header):
|
|
23
|
+
def assert_test_get(**kwargs):
|
|
24
|
+
checked = {}
|
|
25
|
+
result, header = client.smoke_test(
|
|
26
|
+
id=1,
|
|
27
|
+
foo="123",
|
|
28
|
+
if_unmodified_since=datetime(year=2022, month=8, day=26, hour=14, minute=38, second=0),
|
|
29
|
+
if_modified_since=datetime(year=2021, month=8, day=26, hour=14, minute=38, second=0),
|
|
30
|
+
cls=lambda x, y, z: (y, z),
|
|
31
|
+
raw_request_hook=functools.partial(
|
|
32
|
+
check_client_request_id_header, header="x-ms-client-request-id", checked=checked
|
|
33
|
+
),
|
|
34
|
+
**kwargs,
|
|
35
|
+
)
|
|
36
|
+
assert result.id == 1
|
|
37
|
+
assert result.name == "Madge"
|
|
38
|
+
assert header["ETag"] == "11bdc430-65e8-45ad-81d9-8ffa60d55b59"
|
|
39
|
+
assert header["bar"] == "456"
|
|
40
|
+
assert header["x-ms-client-request-id"] == checked["x-ms-client-request-id"]
|
|
41
|
+
|
|
42
|
+
assert_test_get(etag="valid", match_condition=MatchConditions.IfNotModified)
|
|
43
|
+
assert_test_get(etag="invalid", match_condition=MatchConditions.IfModified)
|
|
44
|
+
with pytest.raises(HttpResponseError):
|
|
45
|
+
assert_test_get()
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def test_repeatable_action(client: TraitsClient, check_repeatability_header):
|
|
49
|
+
result, header = client.repeatable_action(
|
|
50
|
+
id=1,
|
|
51
|
+
body=UserActionParam(user_action_value="test"),
|
|
52
|
+
cls=lambda x, y, z: (y, z),
|
|
53
|
+
raw_request_hook=check_repeatability_header,
|
|
54
|
+
)
|
|
55
|
+
assert result.user_action_result == "test"
|
|
56
|
+
assert header["Repeatability-Result"] == "accepted"
|
|
57
|
+
|
|
58
|
+
result, header = client.repeatable_action(
|
|
59
|
+
id=1,
|
|
60
|
+
body=UserActionParam(user_action_value="test"),
|
|
61
|
+
cls=lambda x, y, z: (y, z),
|
|
62
|
+
headers={
|
|
63
|
+
"Repeatability-Request-ID": "5942d803-e3fa-4f96-8f67-607d7bd607f5",
|
|
64
|
+
"Repeatability-First-Sent": "Sun, 06 Nov 1994 08:49:37 GMT",
|
|
65
|
+
},
|
|
66
|
+
raw_request_hook=check_repeatability_header,
|
|
67
|
+
)
|
|
68
|
+
assert result.user_action_result == "test"
|
|
69
|
+
assert header["Repeatability-Result"] == "accepted"
|
|
70
|
+
|
|
71
|
+
with pytest.raises(HttpResponseError):
|
|
72
|
+
client.repeatable_action(
|
|
73
|
+
id=1,
|
|
74
|
+
body=UserActionParam(user_action_value="test"),
|
|
75
|
+
cls=lambda x, y, z: (y, z),
|
|
76
|
+
headers={"Repeatability-Request-ID": "wrong-id"},
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
with pytest.raises(HttpResponseError):
|
|
80
|
+
client.repeatable_action(
|
|
81
|
+
id=1,
|
|
82
|
+
body=UserActionParam(user_action_value="test"),
|
|
83
|
+
cls=lambda x, y, z: (y, z),
|
|
84
|
+
headers={"Repeatability-First-Sent": "wrong-datetime"},
|
|
85
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
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 specs.azure.example.basic import AzureExampleClient
|
|
8
|
+
from specs.azure.example.basic.models import ActionRequest, Model
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
def client():
|
|
13
|
+
with AzureExampleClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def test_basic_action(client: AzureExampleClient):
|
|
18
|
+
body = ActionRequest(
|
|
19
|
+
string_property="text",
|
|
20
|
+
model_property=Model(int32_property=1, float32_property=1.5, enum_property="EnumValue1"),
|
|
21
|
+
array_property=["item"],
|
|
22
|
+
record_property={"record": "value"},
|
|
23
|
+
)
|
|
24
|
+
result = client.basic_action(
|
|
25
|
+
body=body,
|
|
26
|
+
query_param="query",
|
|
27
|
+
header_param="header",
|
|
28
|
+
)
|
|
29
|
+
assert result.string_property == body.string_property
|
|
@@ -0,0 +1,29 @@
|
|
|
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 functools
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
|
|
10
|
+
from azure.specialheaders.xmsclientrequestid import XmsClientRequestIdClient
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@pytest.fixture
|
|
14
|
+
def client():
|
|
15
|
+
with XmsClientRequestIdClient() as client:
|
|
16
|
+
yield client
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def test_get(client: XmsClientRequestIdClient, check_client_request_id_header):
|
|
20
|
+
checked = {}
|
|
21
|
+
result, resp = client.get(
|
|
22
|
+
cls=lambda x, y, z: (y, x),
|
|
23
|
+
raw_request_hook=functools.partial(
|
|
24
|
+
check_client_request_id_header, header="x-ms-client-request-id", checked=checked
|
|
25
|
+
),
|
|
26
|
+
)
|
|
27
|
+
assert result is None
|
|
28
|
+
assert resp.http_response.headers["x-ms-client-request-id"] == checked["x-ms-client-request-id"]
|
|
29
|
+
pass
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
aiohttp;python_full_version>="3.5.2"
|
|
2
|
+
requests==2.32.2
|
|
3
|
+
pytest
|
|
4
|
+
pytest-asyncio==0.14.0;python_full_version>="3.5.2"
|
|
5
|
+
azure-core==1.30.0
|
|
6
|
+
azure-mgmt-core==1.3.2
|
|
7
|
+
pyright==1.1.379
|
|
8
|
+
pylint==3.2.7
|
|
9
|
+
tox==4.18.1
|
|
10
|
+
mypy==1.10.1
|
|
11
|
+
|
|
12
|
+
# only for azure
|
|
13
|
+
-e ./generated/azure-client-generator-core-access
|
|
14
|
+
-e ./generated/azure-client-generator-core-usage
|
|
15
|
+
-e ./generated/azure-client-generator-core-flatten-property
|
|
16
|
+
-e ./generated/azure-core-basic
|
|
17
|
+
-e ./generated/azure-core-scalar
|
|
18
|
+
-e ./generated/azurecore-lro-rpc
|
|
19
|
+
-e ./generated/azure-core-lro-standard
|
|
20
|
+
-e ./generated/azure-core-model
|
|
21
|
+
-e ./generated/azure-core-traits
|
|
22
|
+
-e ./generated/azure-core-page
|
|
23
|
+
-e ./generated/azure-special-headers-client-request-id/
|
|
24
|
+
-e ./generated/azure-example-basic
|
|
25
|
+
-e ./generated/azure-resource-manager-models-common-types-managed-identity
|
|
26
|
+
-e ./generated/azure-resource-manager-models-resources
|
|
27
|
+
|
|
28
|
+
# common test case
|
|
29
|
+
-e ./generated/authentication-api-key
|
|
30
|
+
-e ./generated/authentication-http-custom
|
|
31
|
+
-e ./generated/authentication-oauth2
|
|
32
|
+
-e ./generated/authentication-union
|
|
33
|
+
-e ./generated/client-naming
|
|
34
|
+
-e ./generated/encode-duration
|
|
35
|
+
-e ./generated/encode-numeric
|
|
36
|
+
-e ./generated/parameters-basic
|
|
37
|
+
-e ./generated/parameters-collection-format
|
|
38
|
+
-e ./generated/parameters-spread
|
|
39
|
+
-e ./generated/resiliency-srv-driven1
|
|
40
|
+
-e ./generated/resiliency-srv-driven2
|
|
41
|
+
-e ./generated/serialization-encoded-name-json
|
|
42
|
+
-e ./generated/server-endpoint-not-defined
|
|
43
|
+
-e ./generated/server-path-multiple
|
|
44
|
+
-e ./generated/server-path-single
|
|
45
|
+
-e ./generated/server-versions-versioned
|
|
46
|
+
-e ./generated/server-versions-not-versioned
|
|
47
|
+
-e ./generated/special-words
|
|
48
|
+
-e ./generated/typetest-array
|
|
49
|
+
-e ./generated/typetest-dictionary
|
|
50
|
+
-e ./generated/typetest-enum-extensible
|
|
51
|
+
-e ./generated/typetest-enum-fixed
|
|
52
|
+
-e ./generated/typetest-model-enumdiscriminator
|
|
53
|
+
-e ./generated/typetest-model-nesteddiscriminator
|
|
54
|
+
-e ./generated/typetest-model-notdiscriminated
|
|
55
|
+
-e ./generated/typetest-model-singlediscriminator
|
|
56
|
+
-e ./generated/typetest-model-recursive
|
|
57
|
+
-e ./generated/typetest-model-usage
|
|
58
|
+
-e ./generated/typetest-model-visibility
|
|
59
|
+
-e ./generated/typetest-property-nullable
|
|
60
|
+
-e ./generated/typetest-property-optional
|
|
61
|
+
-e ./generated/typetest-property-valuetypes
|
|
62
|
+
-e ./generated/typetest-property-additionalproperties
|
|
63
|
+
-e ./generated/typetest-scalar
|
|
64
|
+
-e ./generated/typetest-union
|
|
65
|
+
-e ./generated/typetest-model-empty
|
|
66
|
+
-e ./generated/headasbooleantrue
|
|
67
|
+
-e ./generated/headasbooleanfalse
|
|
68
|
+
-e ./generated/parameters-body-optionality
|
|
69
|
+
-e ./generated/special-headers-repeatability
|
|
70
|
+
-e ./generated/special-headers-conditional-request
|
|
71
|
+
-e ./generated/encode-datetime
|
|
72
|
+
-e ./generated/encode-bytes
|
|
73
|
+
-e ./generated/client-structure-default
|
|
74
|
+
-e ./generated/client-structure-multiclient
|
|
75
|
+
-e ./generated/client-structure-renamedoperation
|
|
76
|
+
-e ./generated/client-structure-twooperationgroup
|
|
77
|
+
-e ./generated/payload-content-negotiation
|
|
78
|
+
-e ./generated/payload-json-merge-patch
|
|
79
|
+
-e ./generated/payload-pageable
|
|
80
|
+
-e ./generated/payload-multipart
|
|
81
|
+
-e ./generated/payload-media-type
|
|
82
|
+
-e ./generated/payload-xml
|
|
83
|
+
-e ./generated/routes
|
|
84
|
+
-e ./generated/versioning-added
|
|
85
|
+
-e ./generated/versioning-madeoptional
|
|
86
|
+
-e ./generated/versioning-removed
|
|
87
|
+
-e ./generated/versioning-renamedfrom
|
|
88
|
+
-e ./generated/versioning-returntypechangedfrom
|
|
89
|
+
-e ./generated/versioning-typechangedfrom
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[tox]
|
|
2
|
+
envlist=base, lint, mypy, pyright, apiview
|
|
3
|
+
skipsdist=True
|
|
4
|
+
|
|
5
|
+
[testenv:ci]
|
|
6
|
+
deps=
|
|
7
|
+
-r requirements.txt
|
|
8
|
+
commands =
|
|
9
|
+
# pytest
|
|
10
|
+
pytest mock_api_tests ../generic_mock_api_tests
|
|
11
|
+
|
|
12
|
+
# pylint
|
|
13
|
+
pip install azure-pylint-guidelines-checker==0.4.1 --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
|
|
14
|
+
python ../../../eng/scripts/ci/run_pylint.py -t azure -s "generated" {posargs}
|
|
15
|
+
|
|
16
|
+
# mypy
|
|
17
|
+
python ../../../eng/scripts/ci/run_mypy.py -t azure -s "generated" {posargs}
|
|
18
|
+
|
|
19
|
+
# pyright
|
|
20
|
+
python ../../../eng/scripts/ci/run_pyright.py -t azure -s "generated" {posargs}
|
|
21
|
+
|
|
22
|
+
# apiview
|
|
23
|
+
; pip install apiview-stub-generator==0.3.12 --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
|
|
24
|
+
; python ../../../eng/scripts/ci/run_apiview.py -t azure -s "generated" {posargs}
|
|
25
|
+
|
|
26
|
+
[testenv:test]
|
|
27
|
+
deps=
|
|
28
|
+
-r requirements.txt
|
|
29
|
+
commands =
|
|
30
|
+
pytest mock_api_tests ../generic_mock_api_tests
|
|
31
|
+
|
|
32
|
+
[testenv:lint]
|
|
33
|
+
deps=
|
|
34
|
+
-r requirements.txt
|
|
35
|
+
commands =
|
|
36
|
+
pip install azure-pylint-guidelines-checker==0.4.1 --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
|
|
37
|
+
python ../../../eng/scripts/ci/run_pylint.py -t azure -s "generated" {posargs}
|
|
38
|
+
|
|
39
|
+
[testenv:mypy]
|
|
40
|
+
deps=
|
|
41
|
+
-r requirements.txt
|
|
42
|
+
commands =
|
|
43
|
+
python ../../../eng/scripts/ci/run_mypy.py -t azure -s "generated" {posargs}
|
|
44
|
+
|
|
45
|
+
[testenv:pyright]
|
|
46
|
+
deps=
|
|
47
|
+
-r requirements.txt
|
|
48
|
+
commands =
|
|
49
|
+
python ../../../eng/scripts/ci/run_pyright.py -t azure -s "generated" {posargs}
|
|
50
|
+
|
|
51
|
+
[testenv:apiview]
|
|
52
|
+
deps=
|
|
53
|
+
-r requirements.txt
|
|
54
|
+
commands =
|
|
55
|
+
pip install apiview-stub-generator==0.3.12 --index-url="https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
|
|
56
|
+
python ../../../eng/scripts/ci/run_apiview.py -t azure -s "generated" {posargs}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from authentication.apikey.aio import ApiKeyClient
|
|
8
|
+
from authentication.http.custom.aio import CustomClient
|
|
9
|
+
from authentication.oauth2.aio import OAuth2Client
|
|
10
|
+
from authentication.union.aio import UnionClient
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# Utilities functions
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@pytest.fixture
|
|
17
|
+
async def api_key_client(key_credential):
|
|
18
|
+
client = None
|
|
19
|
+
|
|
20
|
+
def _build_client(client_type):
|
|
21
|
+
client = client_type(key_credential("valid-key"))
|
|
22
|
+
return client
|
|
23
|
+
|
|
24
|
+
yield _build_client
|
|
25
|
+
if client:
|
|
26
|
+
await client.close()
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@pytest.fixture()
|
|
30
|
+
def token_credential(core_library):
|
|
31
|
+
class FakeCredential:
|
|
32
|
+
@staticmethod
|
|
33
|
+
async def get_token(*scopes):
|
|
34
|
+
return core_library.credentials.AccessToken(token="".join(scopes), expires_on=1800)
|
|
35
|
+
|
|
36
|
+
return FakeCredential()
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@pytest.fixture
|
|
40
|
+
async def oauth2_client(token_credential):
|
|
41
|
+
client = None
|
|
42
|
+
|
|
43
|
+
def _build_client(client_type):
|
|
44
|
+
client = client_type(token_credential)
|
|
45
|
+
return client
|
|
46
|
+
|
|
47
|
+
yield _build_client
|
|
48
|
+
if client:
|
|
49
|
+
await client.close()
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@pytest.fixture
|
|
53
|
+
async def http_custom_client(key_credential):
|
|
54
|
+
client = None
|
|
55
|
+
|
|
56
|
+
def _build_client():
|
|
57
|
+
client = CustomClient(key_credential("valid-key"))
|
|
58
|
+
return client
|
|
59
|
+
|
|
60
|
+
yield _build_client
|
|
61
|
+
if client:
|
|
62
|
+
await client.close()
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# Tests
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
@pytest.mark.asyncio
|
|
69
|
+
async def test_api_key_valid(api_key_client):
|
|
70
|
+
client = api_key_client(ApiKeyClient)
|
|
71
|
+
await client.valid()
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@pytest.mark.asyncio
|
|
75
|
+
async def test_api_key_invalid(api_key_client, core_library):
|
|
76
|
+
client = api_key_client(ApiKeyClient)
|
|
77
|
+
with pytest.raises(core_library.exceptions.HttpResponseError) as ex:
|
|
78
|
+
await client.invalid()
|
|
79
|
+
assert ex.value.status_code == 403
|
|
80
|
+
assert ex.value.reason == "Forbidden"
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@pytest.mark.asyncio
|
|
84
|
+
async def test_oauth2_valid(oauth2_client):
|
|
85
|
+
client = oauth2_client(OAuth2Client)
|
|
86
|
+
await client.valid(enforce_https=False)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@pytest.mark.asyncio
|
|
90
|
+
async def test_oauth2_invalid(oauth2_client, core_library):
|
|
91
|
+
client = oauth2_client(OAuth2Client)
|
|
92
|
+
with pytest.raises(core_library.exceptions.HttpResponseError) as ex:
|
|
93
|
+
await client.invalid(enforce_https=False)
|
|
94
|
+
assert ex.value.status_code == 403
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@pytest.mark.asyncio
|
|
98
|
+
async def test_union_keyvalid(api_key_client):
|
|
99
|
+
client = api_key_client(UnionClient)
|
|
100
|
+
await client.valid_key()
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@pytest.mark.asyncio
|
|
104
|
+
async def test_union_tokenvalid(oauth2_client):
|
|
105
|
+
client = oauth2_client(UnionClient)
|
|
106
|
+
await client.valid_token(enforce_https=False)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@pytest.mark.asyncio
|
|
110
|
+
async def test_http_custom_valid(http_custom_client):
|
|
111
|
+
client = http_custom_client()
|
|
112
|
+
await client.valid()
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@pytest.mark.asyncio
|
|
116
|
+
async def test_http_custom_invalid(http_custom_client, core_library):
|
|
117
|
+
client = http_custom_client()
|
|
118
|
+
with pytest.raises(core_library.exceptions.HttpResponseError) as ex:
|
|
119
|
+
await client.invalid()
|
|
120
|
+
assert ex.value.status_code == 403
|
|
121
|
+
assert ex.value.reason == "Forbidden"
|
|
@@ -0,0 +1,69 @@
|
|
|
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 client.naming.aio import NamingClient
|
|
8
|
+
from client.naming import models
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with NamingClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_client(client: NamingClient):
|
|
19
|
+
await client.client(models.ClientNameModel(client_name=True))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.asyncio
|
|
23
|
+
async def test_language(client: NamingClient):
|
|
24
|
+
await client.language(models.LanguageClientNameModel(python_name=True))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@pytest.mark.asyncio
|
|
28
|
+
async def test_compatible_with_encoded_name(client: NamingClient):
|
|
29
|
+
await client.compatible_with_encoded_name(models.ClientNameAndJsonEncodedNameModel(client_name=True))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@pytest.mark.asyncio
|
|
33
|
+
async def test_operation(client: NamingClient):
|
|
34
|
+
await client.client_name()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@pytest.mark.asyncio
|
|
38
|
+
async def test_parameter(client: NamingClient):
|
|
39
|
+
await client.parameter(client_name="true")
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@pytest.mark.asyncio
|
|
43
|
+
async def test_header_request(client: NamingClient):
|
|
44
|
+
await client.request(client_name="true")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@pytest.mark.asyncio
|
|
48
|
+
async def test_header_response(client: NamingClient):
|
|
49
|
+
assert (await client.response(cls=lambda x, y, z: z))["default-name"] == "true"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@pytest.mark.asyncio
|
|
53
|
+
async def test_model_client(client: NamingClient):
|
|
54
|
+
await client.client_model.client(models.ClientModel(default_name=True))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@pytest.mark.asyncio
|
|
58
|
+
async def test_model_language(client: NamingClient):
|
|
59
|
+
await client.client_model.language(models.PythonModel(default_name=True))
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@pytest.mark.asyncio
|
|
63
|
+
async def test_union_enum_member_name(client: NamingClient):
|
|
64
|
+
await client.union_enum.union_enum_member_name(models.ExtensibleEnum.CLIENT_ENUM_VALUE1)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
@pytest.mark.asyncio
|
|
68
|
+
async def test_union_enum_name(client: NamingClient):
|
|
69
|
+
await client.union_enum.union_enum_name(models.ClientExtensibleEnum.ENUM_VALUE1)
|
|
@@ -0,0 +1,62 @@
|
|
|
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 client.structure.service.models import ClientType
|
|
8
|
+
from client.structure.service.aio import ServiceClient
|
|
9
|
+
from client.structure.multiclient.aio import ClientAClient, ClientBClient
|
|
10
|
+
from client.structure.renamedoperation.aio import RenamedOperationClient
|
|
11
|
+
from client.structure.twooperationgroup.aio import TwoOperationGroupClient
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@pytest.mark.asyncio
|
|
15
|
+
async def test_structure_default():
|
|
16
|
+
client = ServiceClient(endpoint="http://localhost:3000", client=ClientType.DEFAULT)
|
|
17
|
+
await client.one()
|
|
18
|
+
await client.two()
|
|
19
|
+
await client.foo.three()
|
|
20
|
+
await client.foo.four()
|
|
21
|
+
await client.bar.five()
|
|
22
|
+
await client.bar.six()
|
|
23
|
+
await client.baz.foo.seven()
|
|
24
|
+
await client.qux.eight()
|
|
25
|
+
await client.qux.bar.nine()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@pytest.mark.asyncio
|
|
29
|
+
async def test_structure_multiclient():
|
|
30
|
+
client_a = ClientAClient(endpoint="http://localhost:3000", client=ClientType.MULTI_CLIENT)
|
|
31
|
+
await client_a.renamed_one()
|
|
32
|
+
await client_a.renamed_three()
|
|
33
|
+
await client_a.renamed_five()
|
|
34
|
+
|
|
35
|
+
client_b = ClientBClient(endpoint="http://localhost:3000", client=ClientType.MULTI_CLIENT)
|
|
36
|
+
await client_b.renamed_two()
|
|
37
|
+
await client_b.renamed_four()
|
|
38
|
+
await client_b.renamed_six()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@pytest.mark.asyncio
|
|
42
|
+
async def test_structure_renamed_operation():
|
|
43
|
+
client = RenamedOperationClient(endpoint="http://localhost:3000", client=ClientType.RENAMED_OPERATION)
|
|
44
|
+
await client.renamed_one()
|
|
45
|
+
await client.renamed_three()
|
|
46
|
+
await client.renamed_five()
|
|
47
|
+
|
|
48
|
+
await client.group.renamed_two()
|
|
49
|
+
await client.group.renamed_four()
|
|
50
|
+
await client.group.renamed_six()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@pytest.mark.asyncio
|
|
54
|
+
async def test_structure_two_operation_group():
|
|
55
|
+
client = TwoOperationGroupClient(endpoint="http://localhost:3000", client=ClientType.RENAMED_OPERATION)
|
|
56
|
+
await client.group1.one()
|
|
57
|
+
await client.group1.three()
|
|
58
|
+
await client.group1.four()
|
|
59
|
+
|
|
60
|
+
await client.group2.two()
|
|
61
|
+
await client.group2.five()
|
|
62
|
+
await client.group2.six()
|