@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
package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
# cspell: ignore Hdvcmxk
|
|
2
|
+
# -------------------------------------------------------------------------
|
|
3
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
5
|
+
# license information.
|
|
6
|
+
# --------------------------------------------------------------------------
|
|
7
|
+
import decimal
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
import datetime
|
|
11
|
+
from typetest.property.valuetypes import models
|
|
12
|
+
from typetest.property.valuetypes.aio import ValueTypesClient
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.fixture
|
|
16
|
+
async def client():
|
|
17
|
+
async with ValueTypesClient() as client:
|
|
18
|
+
yield client
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@pytest.mark.asyncio
|
|
22
|
+
async def test_boolean(client: ValueTypesClient):
|
|
23
|
+
body = models.BooleanProperty(property=True)
|
|
24
|
+
assert body.property == body["property"]
|
|
25
|
+
await client.boolean.put(body)
|
|
26
|
+
|
|
27
|
+
resp = await client.boolean.get()
|
|
28
|
+
assert resp.property == resp["property"] == True
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.mark.asyncio
|
|
32
|
+
async def test_boolean_literal(client: ValueTypesClient):
|
|
33
|
+
body = models.BooleanLiteralProperty(property=True)
|
|
34
|
+
assert body.property == body["property"]
|
|
35
|
+
await client.boolean_literal.put(body)
|
|
36
|
+
|
|
37
|
+
resp = await client.boolean_literal.get()
|
|
38
|
+
assert resp.property == resp["property"] == True
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@pytest.mark.asyncio
|
|
42
|
+
async def test_bytes(client: ValueTypesClient):
|
|
43
|
+
body = models.BytesProperty(property=b"hello, world!")
|
|
44
|
+
assert body.property == b"hello, world!"
|
|
45
|
+
assert body["property"] == "aGVsbG8sIHdvcmxkIQ=="
|
|
46
|
+
await client.bytes.put(body)
|
|
47
|
+
|
|
48
|
+
resp = await client.bytes.get()
|
|
49
|
+
assert resp.property == b"hello, world!"
|
|
50
|
+
assert resp["property"] == "aGVsbG8sIHdvcmxkIQ=="
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@pytest.mark.asyncio
|
|
54
|
+
async def test_collections_int(client: ValueTypesClient):
|
|
55
|
+
body = models.CollectionsIntProperty(property=[1, 2])
|
|
56
|
+
assert body.property == body["property"]
|
|
57
|
+
await client.collections_int.put(body)
|
|
58
|
+
|
|
59
|
+
resp = await client.collections_int.get()
|
|
60
|
+
assert resp.property == resp["property"] == [1, 2]
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@pytest.mark.asyncio
|
|
64
|
+
async def test_collections_model(client: ValueTypesClient):
|
|
65
|
+
body = models.CollectionsModelProperty(property=[{"property": "hello"}, {"property": "world"}])
|
|
66
|
+
assert body.property[0].property == body["property"][0]["property"]
|
|
67
|
+
await client.collections_model.put(body)
|
|
68
|
+
|
|
69
|
+
resp = await client.collections_model.get()
|
|
70
|
+
assert resp.property[1].property == resp["property"][1]["property"]
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@pytest.mark.asyncio
|
|
74
|
+
async def test_collections_string(client: ValueTypesClient):
|
|
75
|
+
body = models.CollectionsStringProperty(property=["hello", "world"])
|
|
76
|
+
assert body.property == body["property"]
|
|
77
|
+
await client.collections_string.put(body)
|
|
78
|
+
|
|
79
|
+
resp = await client.collections_string.get()
|
|
80
|
+
assert resp.property == resp["property"] == ["hello", "world"]
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@pytest.mark.asyncio
|
|
84
|
+
async def test_datetime(client):
|
|
85
|
+
received_body = await client.datetime.get()
|
|
86
|
+
assert received_body == {"property": "2022-08-26T18:38:00Z"}
|
|
87
|
+
assert received_body.property.year == 2022
|
|
88
|
+
assert received_body.property.month == 8
|
|
89
|
+
assert received_body.property.day == 26
|
|
90
|
+
assert received_body.property.hour == 18
|
|
91
|
+
assert received_body.property.minute == 38
|
|
92
|
+
|
|
93
|
+
await client.datetime.put(models.DatetimeProperty(property=datetime.datetime(2022, 8, 26, hour=18, minute=38)))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@pytest.mark.asyncio
|
|
97
|
+
async def test_decimal(client: ValueTypesClient):
|
|
98
|
+
body = models.DecimalProperty(property=decimal.Decimal("0.33333"))
|
|
99
|
+
assert body.property == decimal.Decimal("0.33333")
|
|
100
|
+
assert body["property"] == 0.33333
|
|
101
|
+
await client.decimal.put(body)
|
|
102
|
+
|
|
103
|
+
resp = await client.decimal.get()
|
|
104
|
+
assert resp.property == decimal.Decimal("0.33333")
|
|
105
|
+
assert resp["property"] == 0.33333
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@pytest.mark.asyncio
|
|
109
|
+
async def test_decimal128(client: ValueTypesClient):
|
|
110
|
+
body = models.Decimal128Property(property=decimal.Decimal("0.33333"))
|
|
111
|
+
assert body.property == decimal.Decimal("0.33333")
|
|
112
|
+
assert body["property"] == 0.33333
|
|
113
|
+
await client.decimal128.put(body)
|
|
114
|
+
|
|
115
|
+
resp = await client.decimal128.get()
|
|
116
|
+
assert resp.property == decimal.Decimal("0.33333")
|
|
117
|
+
assert resp["property"] == 0.33333
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
@pytest.mark.asyncio
|
|
121
|
+
async def test_dictionary_string(client: ValueTypesClient):
|
|
122
|
+
body = models.DictionaryStringProperty(property={"k1": "hello", "k2": "world"})
|
|
123
|
+
assert body.property == body["property"]
|
|
124
|
+
await client.dictionary_string.put(body)
|
|
125
|
+
|
|
126
|
+
resp = await client.dictionary_string.get()
|
|
127
|
+
assert resp.property == resp["property"] == {"k1": "hello", "k2": "world"}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@pytest.mark.asyncio
|
|
131
|
+
async def test_duration(client: ValueTypesClient):
|
|
132
|
+
body = models.DurationProperty(property="P123DT22H14M12.011S")
|
|
133
|
+
assert body.property == datetime.timedelta(days=123, seconds=80052, microseconds=11000)
|
|
134
|
+
assert body["property"] == "P123DT22H14M12.011S"
|
|
135
|
+
await client.duration.put(body)
|
|
136
|
+
|
|
137
|
+
resp = await client.duration.get()
|
|
138
|
+
assert resp.property == datetime.timedelta(days=123, seconds=80052, microseconds=11000)
|
|
139
|
+
assert resp["property"] == "P123DT22H14M12.011S"
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
@pytest.mark.asyncio
|
|
143
|
+
async def test_enum(client: ValueTypesClient):
|
|
144
|
+
body = models.EnumProperty(property=models.InnerEnum.VALUE_ONE)
|
|
145
|
+
assert body.property == body["property"]
|
|
146
|
+
await client.enum.put(body)
|
|
147
|
+
|
|
148
|
+
resp = await client.enum.get()
|
|
149
|
+
assert resp.property == resp["property"] == "ValueOne"
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
@pytest.mark.asyncio
|
|
153
|
+
async def test_extensible_enum(client: ValueTypesClient):
|
|
154
|
+
body = models.ExtensibleEnumProperty(property="UnknownValue")
|
|
155
|
+
assert body.property == body["property"]
|
|
156
|
+
await client.extensible_enum.put(body)
|
|
157
|
+
|
|
158
|
+
resp = await client.extensible_enum.get()
|
|
159
|
+
assert resp.property == resp["property"] == "UnknownValue"
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
@pytest.mark.asyncio
|
|
163
|
+
async def test_float(client: ValueTypesClient):
|
|
164
|
+
body = models.FloatProperty(property=43.125)
|
|
165
|
+
assert body.property == body["property"]
|
|
166
|
+
await client.float.put(body)
|
|
167
|
+
|
|
168
|
+
resp = await client.float.get()
|
|
169
|
+
assert resp.property == resp["property"] == 43.125
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
@pytest.mark.asyncio
|
|
173
|
+
async def test_float_literal(client: ValueTypesClient):
|
|
174
|
+
body = models.FloatLiteralProperty(property=43.125)
|
|
175
|
+
assert body.property == body["property"]
|
|
176
|
+
await client.float_literal.put(body)
|
|
177
|
+
|
|
178
|
+
resp = await client.float_literal.get()
|
|
179
|
+
assert resp.property == resp["property"] == 43.125
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
@pytest.mark.asyncio
|
|
183
|
+
async def test_int(client: ValueTypesClient):
|
|
184
|
+
body = models.IntProperty(property=42)
|
|
185
|
+
assert body.property == body["property"]
|
|
186
|
+
await client.int_operations.put(body)
|
|
187
|
+
|
|
188
|
+
resp = await client.int_operations.get()
|
|
189
|
+
assert resp.property == resp["property"] == 42
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
@pytest.mark.asyncio
|
|
193
|
+
async def test_int_literal(client: ValueTypesClient):
|
|
194
|
+
body = models.IntLiteralProperty(property=42)
|
|
195
|
+
assert body.property == body["property"]
|
|
196
|
+
await client.int_literal.put(body)
|
|
197
|
+
|
|
198
|
+
resp = await client.int_literal.get()
|
|
199
|
+
assert resp.property == resp["property"] == 42
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
@pytest.mark.asyncio
|
|
203
|
+
async def test_model(client: ValueTypesClient):
|
|
204
|
+
body = models.ModelProperty(property={"property": "hello"})
|
|
205
|
+
assert body.property.property == body["property"]["property"]
|
|
206
|
+
await client.model.put(body)
|
|
207
|
+
|
|
208
|
+
resp = await client.model.get()
|
|
209
|
+
assert resp.property.property == resp["property"]["property"]
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
@pytest.mark.asyncio
|
|
213
|
+
async def test_never(client: ValueTypesClient):
|
|
214
|
+
assert await client.never.get() == models.NeverProperty()
|
|
215
|
+
await client.never.put(models.NeverProperty())
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
@pytest.mark.asyncio
|
|
219
|
+
async def test_string(client: ValueTypesClient):
|
|
220
|
+
body = models.StringProperty(property="hello")
|
|
221
|
+
assert body.property == body["property"]
|
|
222
|
+
await client.string.put(body)
|
|
223
|
+
|
|
224
|
+
resp = await client.string.get()
|
|
225
|
+
assert resp.property == resp["property"] == "hello"
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
@pytest.mark.asyncio
|
|
229
|
+
async def test_string_literal(client: ValueTypesClient):
|
|
230
|
+
body = models.StringLiteralProperty(property="hello")
|
|
231
|
+
assert body.property == body["property"]
|
|
232
|
+
await client.string_literal.put(body)
|
|
233
|
+
|
|
234
|
+
resp = await client.string_literal.get()
|
|
235
|
+
assert resp.property == resp["property"] == "hello"
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
@pytest.mark.asyncio
|
|
239
|
+
async def test_union_enum_value(client: ValueTypesClient):
|
|
240
|
+
body = models.UnionEnumValueProperty(property=models.ExtendedEnum.ENUM_VALUE2)
|
|
241
|
+
assert body.property == body["property"]
|
|
242
|
+
await client.union_enum_value.put(body)
|
|
243
|
+
|
|
244
|
+
resp = await client.union_enum_value.get()
|
|
245
|
+
assert resp.property == resp["property"] == "value2"
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
@pytest.mark.asyncio
|
|
249
|
+
async def test_union_float_literal(client: ValueTypesClient):
|
|
250
|
+
body = models.UnionFloatLiteralProperty(property=46.875)
|
|
251
|
+
assert body.property == body["property"]
|
|
252
|
+
await client.union_float_literal.put(body)
|
|
253
|
+
|
|
254
|
+
resp = await client.union_float_literal.get()
|
|
255
|
+
assert resp.property == resp["property"] == 46.875
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
@pytest.mark.asyncio
|
|
259
|
+
async def test_union_int_literal(client: ValueTypesClient):
|
|
260
|
+
body = models.UnionIntLiteralProperty(property=42)
|
|
261
|
+
assert body.property == body["property"]
|
|
262
|
+
await client.union_int_literal.put(body)
|
|
263
|
+
|
|
264
|
+
resp = await client.union_int_literal.get()
|
|
265
|
+
assert resp.property == resp["property"] == 42
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
@pytest.mark.asyncio
|
|
269
|
+
async def test_union_string_literal(client: ValueTypesClient):
|
|
270
|
+
body = models.UnionStringLiteralProperty(property="world")
|
|
271
|
+
assert body.property == body["property"]
|
|
272
|
+
await client.union_string_literal.put(body)
|
|
273
|
+
|
|
274
|
+
resp = await client.union_string_literal.get()
|
|
275
|
+
assert resp.property == resp["property"] == "world"
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
@pytest.mark.asyncio
|
|
279
|
+
async def test_unknown_array(client: ValueTypesClient):
|
|
280
|
+
body = models.UnknownArrayProperty(property=["hello", "world"])
|
|
281
|
+
assert body.property == body["property"]
|
|
282
|
+
await client.unknown_array.put(body)
|
|
283
|
+
|
|
284
|
+
resp = await client.unknown_array.get()
|
|
285
|
+
assert resp.property == resp["property"] == ["hello", "world"]
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
@pytest.mark.asyncio
|
|
289
|
+
async def test_unknown_dict(client: ValueTypesClient):
|
|
290
|
+
body = models.UnknownDictProperty(property={"k1": "hello", "k2": 42})
|
|
291
|
+
assert body.property == body["property"]
|
|
292
|
+
await client.unknown_dict.put(body)
|
|
293
|
+
|
|
294
|
+
resp = await client.unknown_dict.get()
|
|
295
|
+
assert resp.property == resp["property"] == {"k1": "hello", "k2": 42}
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
@pytest.mark.asyncio
|
|
299
|
+
async def test_unknown_int(client: ValueTypesClient):
|
|
300
|
+
body = models.UnknownIntProperty(property=42)
|
|
301
|
+
assert body.property == body["property"]
|
|
302
|
+
await client.unknown_int.put(body)
|
|
303
|
+
|
|
304
|
+
resp = await client.unknown_int.get()
|
|
305
|
+
assert resp.property == resp["property"] == 42
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
@pytest.mark.asyncio
|
|
309
|
+
async def test_unknown_string(client: ValueTypesClient):
|
|
310
|
+
body = models.UnknownStringProperty(property="hello")
|
|
311
|
+
assert body.property == body["property"]
|
|
312
|
+
await client.unknown_string.put(body)
|
|
313
|
+
|
|
314
|
+
resp = await client.unknown_string.get()
|
|
315
|
+
assert resp.property == resp["property"] == "hello"
|
|
@@ -0,0 +1,60 @@
|
|
|
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 decimal
|
|
7
|
+
from functools import reduce
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
from typetest.scalar.aio import ScalarClient
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@pytest.fixture
|
|
14
|
+
async def client():
|
|
15
|
+
async with ScalarClient() as client:
|
|
16
|
+
yield client
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@pytest.mark.asyncio
|
|
20
|
+
async def test_scalar_string(client: ScalarClient):
|
|
21
|
+
assert await client.string.get() == "test"
|
|
22
|
+
await client.string.put("test")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.asyncio
|
|
26
|
+
async def test_scalar_boolean(client: ScalarClient):
|
|
27
|
+
assert await client.boolean.get() == True
|
|
28
|
+
await client.boolean.put(True)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.mark.asyncio
|
|
32
|
+
async def test_scalar_unknown(client: ScalarClient):
|
|
33
|
+
assert await client.unknown.get() == "test"
|
|
34
|
+
await client.unknown.put("test")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@pytest.mark.asyncio
|
|
38
|
+
async def test_decimal128_type(client: ScalarClient):
|
|
39
|
+
assert await client.decimal128_type.response_body() == decimal.Decimal("0.33333")
|
|
40
|
+
await client.decimal128_type.request_body(decimal.Decimal("0.33333"))
|
|
41
|
+
await client.decimal128_type.request_parameter(value=decimal.Decimal("0.33333"))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@pytest.mark.asyncio
|
|
45
|
+
async def test_decimal_type(client: ScalarClient):
|
|
46
|
+
assert await client.decimal_type.response_body() == decimal.Decimal("0.33333")
|
|
47
|
+
await client.decimal_type.request_body(decimal.Decimal("0.33333"))
|
|
48
|
+
await client.decimal_type.request_parameter(value=decimal.Decimal("0.33333"))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@pytest.mark.asyncio
|
|
52
|
+
async def test_decimal128_verify(client: ScalarClient):
|
|
53
|
+
prepare = await client.decimal128_verify.prepare_verify()
|
|
54
|
+
await client.decimal128_verify.verify(reduce(lambda x, y: x + y, prepare))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@pytest.mark.asyncio
|
|
58
|
+
async def test_decimal_verify(client: ScalarClient):
|
|
59
|
+
prepare = await client.decimal_verify.prepare_verify()
|
|
60
|
+
await client.decimal_verify.verify(reduce(lambda x, y: x + y, prepare))
|
|
@@ -0,0 +1,90 @@
|
|
|
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 typetest.union.aio import UnionClient
|
|
8
|
+
from typetest.union import models
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with UnionClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_enums_only(client: UnionClient):
|
|
19
|
+
value = models.EnumsOnlyCases(lr="right", ud="up")
|
|
20
|
+
assert (await client.enums_only.get()) == {"prop": value}
|
|
21
|
+
await client.enums_only.send(prop=value)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@pytest.mark.asyncio
|
|
25
|
+
async def test_floats_only(client: UnionClient):
|
|
26
|
+
value = 2.2
|
|
27
|
+
assert (await client.floats_only.get()) == {"prop": value}
|
|
28
|
+
await client.floats_only.send(prop=value)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.mark.asyncio
|
|
32
|
+
async def test_ints_only(client: UnionClient):
|
|
33
|
+
value = 2
|
|
34
|
+
assert (await client.ints_only.get()) == {"prop": value}
|
|
35
|
+
await client.ints_only.send(prop=value)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@pytest.mark.asyncio
|
|
39
|
+
async def test_mixed_literals(client: UnionClient):
|
|
40
|
+
value = models.MixedLiteralsCases(string_literal="a", int_literal=2, float_literal=3.3, boolean_literal=True)
|
|
41
|
+
assert (await client.mixed_literals.get()) == {"prop": value}
|
|
42
|
+
await client.mixed_literals.send(prop=value)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@pytest.mark.asyncio
|
|
46
|
+
async def test_mixed_types(client: UnionClient):
|
|
47
|
+
value = models.MixedTypesCases(
|
|
48
|
+
model=models.Cat(name="test"),
|
|
49
|
+
literal="a",
|
|
50
|
+
int_property=2,
|
|
51
|
+
boolean=True,
|
|
52
|
+
array=[models.Cat(name="test"), "a", 2, True],
|
|
53
|
+
)
|
|
54
|
+
assert (await client.mixed_types.get()) == {"prop": value}
|
|
55
|
+
await client.mixed_types.send(prop=value)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@pytest.mark.asyncio
|
|
59
|
+
async def test_models_only(client: UnionClient):
|
|
60
|
+
value = models.Cat(name="test")
|
|
61
|
+
assert (await client.models_only.get()) == {"prop": value}
|
|
62
|
+
await client.models_only.send(prop=value)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@pytest.mark.asyncio
|
|
66
|
+
async def test_string_and_array(client: UnionClient):
|
|
67
|
+
value = models.StringAndArrayCases(string="test", array=["test1", "test2"])
|
|
68
|
+
assert (await client.string_and_array.get()) == {"prop": value}
|
|
69
|
+
await client.string_and_array.send(prop=value)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
@pytest.mark.asyncio
|
|
73
|
+
async def test_string_extensible(client: UnionClient):
|
|
74
|
+
value = "custom"
|
|
75
|
+
assert (await client.string_extensible.get()) == {"prop": value}
|
|
76
|
+
await client.string_extensible.send(prop=value)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@pytest.mark.asyncio
|
|
80
|
+
async def test_string_extensible_named(client: UnionClient):
|
|
81
|
+
value = "custom"
|
|
82
|
+
assert (await client.string_extensible_named.get()) == {"prop": value}
|
|
83
|
+
await client.string_extensible_named.send(prop=value)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@pytest.mark.asyncio
|
|
87
|
+
async def test_strings_only(client: UnionClient):
|
|
88
|
+
value = "b"
|
|
89
|
+
assert (await client.strings_only.get()) == {"prop": value}
|
|
90
|
+
await client.strings_only.send(prop=value)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from versioning.added.aio import AddedClient
|
|
8
|
+
from versioning.added.models import ModelV1, ModelV2, EnumV1, EnumV2
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with AddedClient(endpoint="http://localhost:3000", version="v2") as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_v1(client: AddedClient):
|
|
19
|
+
assert await client.v1(
|
|
20
|
+
ModelV1(prop="foo", enum_prop=EnumV1.ENUM_MEMBER_V2, union_prop=10),
|
|
21
|
+
header_v2="bar",
|
|
22
|
+
) == ModelV1(prop="foo", enum_prop=EnumV1.ENUM_MEMBER_V2, union_prop=10)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.asyncio
|
|
26
|
+
async def test_v2(client: AddedClient):
|
|
27
|
+
assert await client.v2(ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar")) == ModelV2(
|
|
28
|
+
prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@pytest.mark.asyncio
|
|
33
|
+
async def test_interface_v2(client: AddedClient):
|
|
34
|
+
assert await client.interface_v2.v2_in_interface(
|
|
35
|
+
ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar")
|
|
36
|
+
) == ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER, union_prop="bar")
|
package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from versioning.madeoptional.aio import MadeOptionalClient
|
|
8
|
+
from versioning.madeoptional.models import TestModel
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with MadeOptionalClient(endpoint="http://localhost:3000", version="v2") as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test(client: MadeOptionalClient):
|
|
19
|
+
assert await client.test(
|
|
20
|
+
TestModel(prop="foo"),
|
|
21
|
+
) == TestModel(prop="foo")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from versioning.removed.aio import RemovedClient
|
|
8
|
+
from versioning.removed.models import ModelV2, EnumV2
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with RemovedClient(endpoint="http://localhost:3000", version="v2") as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_v2(client: RemovedClient):
|
|
19
|
+
assert await client.v2(ModelV2(prop="foo", enum_prop=EnumV2.ENUM_MEMBER_V2, union_prop="bar")) == ModelV2(
|
|
20
|
+
prop="foo", enum_prop=EnumV2.ENUM_MEMBER_V2, union_prop="bar"
|
|
21
|
+
)
|
package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py
ADDED
|
@@ -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 versioning.renamedfrom.aio import RenamedFromClient
|
|
8
|
+
from versioning.renamedfrom.models import NewModel, NewEnum
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with RenamedFromClient(endpoint="http://localhost:3000", version="v2") as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_new_op(client: RenamedFromClient):
|
|
19
|
+
assert await client.new_op(
|
|
20
|
+
NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10),
|
|
21
|
+
new_query="bar",
|
|
22
|
+
) == NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.asyncio
|
|
26
|
+
async def test_new_interface_test(client: RenamedFromClient):
|
|
27
|
+
assert await client.new_interface.new_op_in_new_interface(
|
|
28
|
+
NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
|
|
29
|
+
) == NewModel(new_prop="foo", enum_prop=NewEnum.NEW_ENUM_MEMBER, union_prop=10)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from versioning.returntypechangedfrom.aio import ReturnTypeChangedFromClient
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@pytest.fixture
|
|
11
|
+
async def client():
|
|
12
|
+
async with ReturnTypeChangedFromClient(endpoint="http://localhost:3000", version="v2") as client:
|
|
13
|
+
yield client
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@pytest.mark.asyncio
|
|
17
|
+
async def test(client: ReturnTypeChangedFromClient):
|
|
18
|
+
assert await client.test("test") == "test"
|
package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from versioning.typechangedfrom.aio import TypeChangedFromClient
|
|
8
|
+
from versioning.typechangedfrom.models import TestModel
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with TypeChangedFromClient(endpoint="http://localhost:3000", version="v2") as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test(client: TypeChangedFromClient):
|
|
19
|
+
assert await client.test(
|
|
20
|
+
TestModel(prop="foo", changed_prop="bar"),
|
|
21
|
+
param="baz",
|
|
22
|
+
) == TestModel(prop="foo", changed_prop="bar")
|