@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,133 @@
|
|
|
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 pathlib import Path
|
|
8
|
+
from encode.bytes.aio import BytesClient
|
|
9
|
+
from encode.bytes.models import (
|
|
10
|
+
DefaultBytesProperty,
|
|
11
|
+
Base64urlBytesProperty,
|
|
12
|
+
Base64BytesProperty,
|
|
13
|
+
Base64urlArrayBytesProperty,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
FILE_FOLDER = Path(__file__).parent.parent
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@pytest.fixture
|
|
21
|
+
async def client():
|
|
22
|
+
async with BytesClient() as client:
|
|
23
|
+
yield client
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@pytest.mark.asyncio
|
|
27
|
+
async def test_query(client: BytesClient):
|
|
28
|
+
await client.query.default(
|
|
29
|
+
value=bytes("test", "utf-8"),
|
|
30
|
+
)
|
|
31
|
+
await client.query.base64(
|
|
32
|
+
value=bytes("test", "utf-8"),
|
|
33
|
+
)
|
|
34
|
+
await client.query.base64_url(
|
|
35
|
+
value=bytes("test", "utf-8"),
|
|
36
|
+
)
|
|
37
|
+
await client.query.base64_url_array(
|
|
38
|
+
value=[
|
|
39
|
+
bytes("test", "utf-8"),
|
|
40
|
+
bytes("test", "utf-8"),
|
|
41
|
+
],
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@pytest.mark.asyncio
|
|
46
|
+
async def test_property(client: BytesClient):
|
|
47
|
+
result = await client.property.default(
|
|
48
|
+
DefaultBytesProperty(
|
|
49
|
+
value=bytes("test", "utf-8"),
|
|
50
|
+
)
|
|
51
|
+
)
|
|
52
|
+
assert result.value == bytes("test", "utf-8")
|
|
53
|
+
|
|
54
|
+
result = await client.property.base64(
|
|
55
|
+
Base64BytesProperty(
|
|
56
|
+
value=bytes("test", "utf-8"),
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
assert result.value == bytes("test", "utf-8")
|
|
60
|
+
|
|
61
|
+
result = await client.property.base64_url(
|
|
62
|
+
Base64urlBytesProperty(
|
|
63
|
+
value=bytes("test", "utf-8"),
|
|
64
|
+
)
|
|
65
|
+
)
|
|
66
|
+
assert result.value == bytes("test", "utf-8")
|
|
67
|
+
|
|
68
|
+
result = await client.property.base64_url_array(
|
|
69
|
+
Base64urlArrayBytesProperty(
|
|
70
|
+
value=[
|
|
71
|
+
bytes("test", "utf-8"),
|
|
72
|
+
bytes("test", "utf-8"),
|
|
73
|
+
],
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
assert result.value == [
|
|
77
|
+
bytes("test", "utf-8"),
|
|
78
|
+
bytes("test", "utf-8"),
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@pytest.mark.asyncio
|
|
83
|
+
async def test_header(client: BytesClient):
|
|
84
|
+
await client.header.default(
|
|
85
|
+
value=bytes("test", "utf-8"),
|
|
86
|
+
)
|
|
87
|
+
await client.header.base64(
|
|
88
|
+
value=bytes("test", "utf-8"),
|
|
89
|
+
)
|
|
90
|
+
await client.header.base64_url(
|
|
91
|
+
value=bytes("test", "utf-8"),
|
|
92
|
+
)
|
|
93
|
+
await client.header.base64_url_array(
|
|
94
|
+
value=[
|
|
95
|
+
bytes("test", "utf-8"),
|
|
96
|
+
bytes("test", "utf-8"),
|
|
97
|
+
],
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@pytest.fixture
|
|
102
|
+
def png_data() -> bytes:
|
|
103
|
+
with open(str(FILE_FOLDER / "data/image.png"), "rb") as file_in:
|
|
104
|
+
return file_in.read()
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
@pytest.mark.asyncio
|
|
108
|
+
async def test_request_body(client: BytesClient, png_data: bytes):
|
|
109
|
+
await client.request_body.default(
|
|
110
|
+
value=bytes("test", "utf-8"),
|
|
111
|
+
)
|
|
112
|
+
await client.request_body.octet_stream(
|
|
113
|
+
value=png_data,
|
|
114
|
+
)
|
|
115
|
+
await client.request_body.custom_content_type(
|
|
116
|
+
value=png_data,
|
|
117
|
+
)
|
|
118
|
+
await client.request_body.base64(
|
|
119
|
+
value=bytes("test", "utf-8"),
|
|
120
|
+
)
|
|
121
|
+
await client.request_body.base64_url(
|
|
122
|
+
value=bytes("test", "utf-8"),
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
@pytest.mark.asyncio
|
|
127
|
+
async def test_response_body(client: BytesClient, png_data: bytes):
|
|
128
|
+
expected = b"test"
|
|
129
|
+
assert expected == await client.response_body.default()
|
|
130
|
+
assert expected == await client.response_body.base64()
|
|
131
|
+
assert expected == await client.response_body.base64_url()
|
|
132
|
+
assert b"".join([d async for d in (await client.response_body.octet_stream())]) == png_data
|
|
133
|
+
assert b"".join([d async for d in (await client.response_body.custom_content_type())]) == png_data
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import datetime
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
from encode.datetime.aio import DatetimeClient
|
|
10
|
+
from encode.datetime.models import (
|
|
11
|
+
DefaultDatetimeProperty,
|
|
12
|
+
Rfc3339DatetimeProperty,
|
|
13
|
+
Rfc7231DatetimeProperty,
|
|
14
|
+
UnixTimestampDatetimeProperty,
|
|
15
|
+
UnixTimestampArrayDatetimeProperty,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@pytest.fixture
|
|
20
|
+
async def client():
|
|
21
|
+
async with DatetimeClient() as client:
|
|
22
|
+
yield client
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.asyncio
|
|
26
|
+
async def test_query(client: DatetimeClient):
|
|
27
|
+
await client.query.default(
|
|
28
|
+
value=datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc),
|
|
29
|
+
)
|
|
30
|
+
await client.query.rfc3339(
|
|
31
|
+
value=datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc),
|
|
32
|
+
)
|
|
33
|
+
await client.query.rfc7231(
|
|
34
|
+
value=datetime.datetime(2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc),
|
|
35
|
+
)
|
|
36
|
+
await client.query.unix_timestamp(
|
|
37
|
+
value=datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
38
|
+
)
|
|
39
|
+
await client.query.unix_timestamp_array(
|
|
40
|
+
value=[
|
|
41
|
+
datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
42
|
+
datetime.datetime(2023, 6, 14, 9, 17, 36, tzinfo=datetime.timezone.utc),
|
|
43
|
+
],
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@pytest.mark.asyncio
|
|
48
|
+
async def test_property(client: DatetimeClient):
|
|
49
|
+
result = await client.property.default(
|
|
50
|
+
DefaultDatetimeProperty(
|
|
51
|
+
value=datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc),
|
|
52
|
+
)
|
|
53
|
+
)
|
|
54
|
+
assert result.value == datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc)
|
|
55
|
+
|
|
56
|
+
result = await client.property.rfc3339(
|
|
57
|
+
Rfc3339DatetimeProperty(
|
|
58
|
+
value=datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc),
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
assert result.value == datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc)
|
|
62
|
+
|
|
63
|
+
result = await client.property.rfc7231(
|
|
64
|
+
Rfc7231DatetimeProperty(
|
|
65
|
+
value=datetime.datetime(2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc),
|
|
66
|
+
)
|
|
67
|
+
)
|
|
68
|
+
assert result.value == datetime.datetime(2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc)
|
|
69
|
+
|
|
70
|
+
result = await client.property.unix_timestamp(
|
|
71
|
+
UnixTimestampDatetimeProperty(
|
|
72
|
+
value=datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
73
|
+
)
|
|
74
|
+
)
|
|
75
|
+
assert result.value == datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc)
|
|
76
|
+
|
|
77
|
+
result = await client.property.unix_timestamp_array(
|
|
78
|
+
UnixTimestampArrayDatetimeProperty(
|
|
79
|
+
value=[
|
|
80
|
+
datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
81
|
+
datetime.datetime(2023, 6, 14, 9, 17, 36, tzinfo=datetime.timezone.utc),
|
|
82
|
+
],
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
assert result.value == [
|
|
86
|
+
datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
87
|
+
datetime.datetime(2023, 6, 14, 9, 17, 36, tzinfo=datetime.timezone.utc),
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@pytest.mark.asyncio
|
|
92
|
+
async def test_header(client: DatetimeClient):
|
|
93
|
+
await client.header.default(
|
|
94
|
+
value=datetime.datetime(2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc),
|
|
95
|
+
)
|
|
96
|
+
await client.header.rfc3339(
|
|
97
|
+
value=datetime.datetime(2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc),
|
|
98
|
+
)
|
|
99
|
+
await client.header.rfc7231(
|
|
100
|
+
value=datetime.datetime(2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc),
|
|
101
|
+
)
|
|
102
|
+
await client.header.unix_timestamp(
|
|
103
|
+
value=datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
104
|
+
)
|
|
105
|
+
await client.header.unix_timestamp_array(
|
|
106
|
+
value=[
|
|
107
|
+
datetime.datetime(2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc),
|
|
108
|
+
datetime.datetime(2023, 6, 14, 9, 17, 36, tzinfo=datetime.timezone.utc),
|
|
109
|
+
]
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
@pytest.mark.asyncio
|
|
114
|
+
async def test_response_header(client: DatetimeClient):
|
|
115
|
+
cls = lambda x, y, z: z
|
|
116
|
+
assert (await client.response_header.default(cls=cls))["value"] == datetime.datetime(
|
|
117
|
+
2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc
|
|
118
|
+
)
|
|
119
|
+
assert (await client.response_header.rfc3339(cls=cls))["value"] == datetime.datetime(
|
|
120
|
+
2022, 8, 26, 18, 38, 0, tzinfo=datetime.timezone.utc
|
|
121
|
+
)
|
|
122
|
+
assert (await client.response_header.rfc7231(cls=cls))["value"] == datetime.datetime(
|
|
123
|
+
2022, 8, 26, 14, 38, 0, tzinfo=datetime.timezone.utc
|
|
124
|
+
)
|
|
125
|
+
assert (await client.response_header.unix_timestamp(cls=cls))["value"] == datetime.datetime(
|
|
126
|
+
2023, 6, 12, 10, 47, 44, tzinfo=datetime.timezone.utc
|
|
127
|
+
)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import datetime
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
from encode.duration.aio import DurationClient
|
|
10
|
+
from encode.duration.models import (
|
|
11
|
+
Int32SecondsDurationProperty,
|
|
12
|
+
ISO8601DurationProperty,
|
|
13
|
+
FloatSecondsDurationProperty,
|
|
14
|
+
DefaultDurationProperty,
|
|
15
|
+
FloatSecondsDurationArrayProperty,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@pytest.fixture
|
|
20
|
+
async def client():
|
|
21
|
+
async with DurationClient() as client:
|
|
22
|
+
yield client
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.asyncio
|
|
26
|
+
async def test_query(client: DurationClient):
|
|
27
|
+
await client.query.default(input=datetime.timedelta(days=40))
|
|
28
|
+
await client.query.iso8601(input=datetime.timedelta(days=40))
|
|
29
|
+
await client.query.int32_seconds(input=36)
|
|
30
|
+
await client.query.int32_seconds_array(input=[36, 47])
|
|
31
|
+
await client.query.float_seconds(input=35.625)
|
|
32
|
+
await client.query.float64_seconds(input=35.625)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@pytest.mark.asyncio
|
|
36
|
+
async def test_property(client: DurationClient):
|
|
37
|
+
result = await client.property.default(DefaultDurationProperty(value=datetime.timedelta(days=40)))
|
|
38
|
+
assert result.value == datetime.timedelta(days=40)
|
|
39
|
+
result = await client.property.default(DefaultDurationProperty(value="P40D"))
|
|
40
|
+
assert result.value == datetime.timedelta(days=40)
|
|
41
|
+
result = await client.property.iso8601(ISO8601DurationProperty(value=datetime.timedelta(days=40)))
|
|
42
|
+
assert result.value == datetime.timedelta(days=40)
|
|
43
|
+
result = await client.property.iso8601(ISO8601DurationProperty(value="P40D"))
|
|
44
|
+
assert result.value == datetime.timedelta(days=40)
|
|
45
|
+
result = await client.property.int32_seconds(Int32SecondsDurationProperty(value=36))
|
|
46
|
+
assert result.value == 36
|
|
47
|
+
result = await client.property.float_seconds(FloatSecondsDurationProperty(value=35.625))
|
|
48
|
+
assert abs(result.value - 35.625) < 0.0001
|
|
49
|
+
result = await client.property.float64_seconds(FloatSecondsDurationProperty(value=35.625))
|
|
50
|
+
assert abs(result.value - 35.625) < 0.0001
|
|
51
|
+
result = await client.property.float_seconds_array(FloatSecondsDurationArrayProperty(value=[35.625, 46.75]))
|
|
52
|
+
assert abs(result.value[0] - 35.625) < 0.0001
|
|
53
|
+
assert abs(result.value[1] - 46.75) < 0.0001
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@pytest.mark.asyncio
|
|
57
|
+
async def test_header(client: DurationClient):
|
|
58
|
+
await client.header.default(duration=datetime.timedelta(days=40))
|
|
59
|
+
await client.header.iso8601(duration=datetime.timedelta(days=40))
|
|
60
|
+
await client.header.iso8601_array(duration=[datetime.timedelta(days=40), datetime.timedelta(days=50)])
|
|
61
|
+
await client.header.int32_seconds(duration=36)
|
|
62
|
+
await client.header.float_seconds(duration=35.625)
|
|
63
|
+
await client.header.float64_seconds(duration=35.625)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from encode.numeric.aio import NumericClient
|
|
8
|
+
from encode.numeric import models
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with NumericClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_safeint_as_string(client: NumericClient):
|
|
19
|
+
result = await client.property.safeint_as_string(models.SafeintAsStringProperty(value=10000000000))
|
|
20
|
+
assert result.value == 10000000000
|
|
21
|
+
assert result["value"] == "10000000000"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@pytest.mark.asyncio
|
|
25
|
+
async def test_uint32_as_string_optional(client: NumericClient):
|
|
26
|
+
result = await client.property.uint32_as_string_optional(models.Uint32AsStringProperty(value=1))
|
|
27
|
+
assert result.value == 1
|
|
28
|
+
assert result["value"] == "1"
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.mark.asyncio
|
|
32
|
+
async def test_uint8_as_string_optional(client: NumericClient):
|
|
33
|
+
result = await client.property.uint8_as_string(models.Uint32AsStringProperty(value=255))
|
|
34
|
+
assert result.value == 255
|
|
35
|
+
assert result["value"] == "255"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from headasbooleantrue.aio import VisibilityClient as HeadAsBooleanTrueClient
|
|
8
|
+
from headasbooleantrue import models as models_true
|
|
9
|
+
|
|
10
|
+
from headasbooleanfalse.aio import VisibilityClient as HeadAsBooleanFalseClient
|
|
11
|
+
from headasbooleanfalse import models as models_false
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@pytest.fixture
|
|
15
|
+
async def client_true():
|
|
16
|
+
async with HeadAsBooleanTrueClient() as client:
|
|
17
|
+
yield client
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@pytest.fixture
|
|
21
|
+
async def client_false():
|
|
22
|
+
async with HeadAsBooleanFalseClient() as client:
|
|
23
|
+
yield client
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@pytest.mark.asyncio
|
|
27
|
+
async def test_head_true(client_true):
|
|
28
|
+
body = models_true.VisibilityModel(query_prop=123)
|
|
29
|
+
assert await client_true.head_model(body) == True
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@pytest.mark.asyncio
|
|
33
|
+
async def test_head_false(client_false):
|
|
34
|
+
body = models_false.VisibilityModel(query_prop=123)
|
|
35
|
+
assert await client_false.head_model(body) is None
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from parameters.basic.aio import BasicClient
|
|
8
|
+
from parameters.basic.models import User
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with BasicClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_explicit_simple(client: BasicClient):
|
|
19
|
+
await client.explicit_body.simple(User(name="foo"))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.asyncio
|
|
23
|
+
async def test_implicit_simple(client: BasicClient):
|
|
24
|
+
await client.implicit_body.simple(name="foo")
|
package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from parameters.bodyoptionality.aio import BodyOptionalityClient
|
|
8
|
+
from parameters.bodyoptionality.models import BodyModel
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with BodyOptionalityClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_required_explicit(client: BodyOptionalityClient):
|
|
19
|
+
await client.required_explicit(BodyModel(name="foo"))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.asyncio
|
|
23
|
+
async def test_required_implicit(client: BodyOptionalityClient):
|
|
24
|
+
await client.required_implicit(name="foo")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@pytest.mark.asyncio
|
|
28
|
+
async def test_optional_explicit(client: BodyOptionalityClient):
|
|
29
|
+
await client.optional_explicit.set(BodyModel(name="foo"))
|
|
30
|
+
await client.optional_explicit.omit()
|
package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from parameters.collectionformat.aio import CollectionFormatClient
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@pytest.fixture
|
|
11
|
+
async def client():
|
|
12
|
+
async with CollectionFormatClient() as client:
|
|
13
|
+
yield client
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@pytest.mark.asyncio
|
|
17
|
+
async def test_query_multi(client: CollectionFormatClient):
|
|
18
|
+
await client.query.multi(colors=["blue", "red", "green"])
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@pytest.mark.asyncio
|
|
22
|
+
async def test_query_csv(client: CollectionFormatClient):
|
|
23
|
+
await client.query.csv(colors=["blue", "red", "green"])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@pytest.mark.asyncio
|
|
27
|
+
async def test_query_pipes(client: CollectionFormatClient):
|
|
28
|
+
await client.query.pipes(colors=["blue", "red", "green"])
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@pytest.mark.asyncio
|
|
32
|
+
async def test_query_ssv(client: CollectionFormatClient):
|
|
33
|
+
await client.query.ssv(colors=["blue", "red", "green"])
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@pytest.mark.asyncio
|
|
37
|
+
@pytest.mark.skip(reason="https://github.com/aio-libs/aiohttp/issues/5904")
|
|
38
|
+
async def test_query_tsv(client: CollectionFormatClient):
|
|
39
|
+
await client.query.tsv(colors=["blue", "red", "green"])
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@pytest.mark.asyncio
|
|
43
|
+
async def test_csv_header(client: CollectionFormatClient):
|
|
44
|
+
await client.header.csv(colors=["blue", "red", "green"])
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import pytest
|
|
7
|
+
from parameters.spread.aio import SpreadClient
|
|
8
|
+
from parameters.spread.models import BodyParameter
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture
|
|
12
|
+
async def client():
|
|
13
|
+
async with SpreadClient() as client:
|
|
14
|
+
yield client
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.asyncio
|
|
18
|
+
async def test_model_body(client: SpreadClient):
|
|
19
|
+
await client.model.spread_as_request_body(name="foo")
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.asyncio
|
|
23
|
+
async def test_model_composite_request_only_with_body(client: SpreadClient):
|
|
24
|
+
await client.model.spread_composite_request_only_with_body(BodyParameter(name="foo"))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@pytest.mark.asyncio
|
|
28
|
+
async def test_model_composite_request_without_body(client: SpreadClient):
|
|
29
|
+
await client.model.spread_composite_request_without_body(name="foo", test_header="bar")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@pytest.mark.asyncio
|
|
33
|
+
async def test_model_composite_request(client: SpreadClient):
|
|
34
|
+
await client.model.spread_composite_request(name="foo", body=BodyParameter(name="foo"), test_header="bar")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@pytest.mark.asyncio
|
|
38
|
+
async def test_model_composite_request_mix(client: SpreadClient):
|
|
39
|
+
await client.model.spread_composite_request_mix(name="foo", prop="foo", test_header="bar")
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@pytest.mark.asyncio
|
|
43
|
+
async def test_alias_body(client: SpreadClient):
|
|
44
|
+
await client.alias.spread_as_request_body(name="foo")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@pytest.mark.asyncio
|
|
48
|
+
async def test_alias_parameter(client: SpreadClient):
|
|
49
|
+
await client.alias.spread_as_request_parameter("1", x_ms_test_header="bar", name="foo")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@pytest.mark.asyncio
|
|
53
|
+
async def test_alias_multiple_parameter(client: SpreadClient):
|
|
54
|
+
await client.alias.spread_with_multiple_parameters(
|
|
55
|
+
"1",
|
|
56
|
+
x_ms_test_header="bar",
|
|
57
|
+
required_string="foo",
|
|
58
|
+
required_int_list=[1, 2],
|
|
59
|
+
optional_string_list=["foo", "bar"],
|
|
60
|
+
optional_int=1,
|
|
61
|
+
)
|
|
62
|
+
await client.alias.spread_with_multiple_parameters(
|
|
63
|
+
"1",
|
|
64
|
+
{"requiredString": "foo", "optionalInt": 1, "requiredIntList": [1, 2], "optionalStringList": ["foo", "bar"]},
|
|
65
|
+
x_ms_test_header="bar",
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@pytest.mark.asyncio
|
|
70
|
+
async def test_inner_model(client: SpreadClient):
|
|
71
|
+
await client.alias.spread_parameter_with_inner_model(id="1", x_ms_test_header="bar", body={"name": "foo"})
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@pytest.mark.asyncio
|
|
75
|
+
async def test_inner_alias(client: SpreadClient):
|
|
76
|
+
await client.alias.spread_parameter_with_inner_alias(id="1", x_ms_test_header="bar", body={"name": "foo", "age": 1})
|
package/generator/test/generic_mock_api_tests/asynctests/test_payload_content_negotiation_async.py
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# -------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
+
# license information.
|
|
5
|
+
# --------------------------------------------------------------------------
|
|
6
|
+
import base64
|
|
7
|
+
import pytest
|
|
8
|
+
from payload.contentnegotiation.aio import ContentNegotiationClient
|
|
9
|
+
from payload.contentnegotiation.models import PngImageAsJson
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.fixture
|
|
13
|
+
async def client():
|
|
14
|
+
async with ContentNegotiationClient(endpoint="http://localhost:3000") as client:
|
|
15
|
+
yield client
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@pytest.mark.asyncio
|
|
19
|
+
async def test_get_avatar_as_png(client: ContentNegotiationClient, png_data: bytes):
|
|
20
|
+
assert b"".join([d async for d in (await client.same_body.get_avatar_as_png())]) == png_data
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@pytest.mark.asyncio
|
|
24
|
+
async def test_get_avatar_as_jpeg(client: ContentNegotiationClient, jpg_data: bytes):
|
|
25
|
+
assert b"".join([d async for d in (await client.same_body.get_avatar_as_jpeg())]) == jpg_data
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@pytest.mark.asyncio
|
|
29
|
+
async def test_different_body_get_avatar_as_png(client: ContentNegotiationClient, png_data: bytes):
|
|
30
|
+
assert b"".join([d async for d in (await client.different_body.get_avatar_as_png())]) == png_data
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@pytest.mark.asyncio
|
|
34
|
+
async def test_different_body_get_avatar_as_json(client: ContentNegotiationClient, png_data: bytes):
|
|
35
|
+
result = await client.different_body.get_avatar_as_json()
|
|
36
|
+
expected = PngImageAsJson(content=base64.b64encode(png_data).decode())
|
|
37
|
+
assert result == expected
|