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