@typespec/http-client-python 0.28.2 → 0.28.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/emitter/code-model.d.ts.map +1 -1
- package/dist/emitter/code-model.js +6 -6
- package/dist/emitter/code-model.js.map +1 -1
- package/dist/emitter/emitter.d.ts.map +1 -1
- package/dist/emitter/emitter.js +27 -28
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/lib.d.ts +4 -1
- package/dist/emitter/lib.d.ts.map +1 -1
- package/dist/emitter/lib.js.map +1 -1
- package/dist/emitter/system-requirements.js +6 -4
- package/dist/emitter/system-requirements.js.map +1 -1
- package/dist/emitter/types.d.ts +2 -5
- package/dist/emitter/types.d.ts.map +1 -1
- package/dist/emitter/types.js +55 -58
- package/dist/emitter/types.js.map +1 -1
- package/dist/emitter/utils.d.ts.map +1 -1
- package/dist/emitter/utils.js +16 -17
- package/dist/emitter/utils.js.map +1 -1
- package/emitter/src/code-model.ts +6 -13
- package/emitter/src/emitter.ts +29 -31
- package/emitter/src/lib.ts +4 -0
- package/emitter/src/system-requirements.ts +4 -4
- package/emitter/src/types.ts +67 -57
- package/emitter/src/utils.ts +16 -18
- package/emitter/temp/tsconfig.tsbuildinfo +1 -1
- package/eng/scripts/Build-Packages.ps1 +62 -37
- package/eng/scripts/Check-GitChanges.ps1 +30 -3
- package/eng/scripts/Functions.ps1 +54 -15
- package/eng/scripts/Generate.ps1 +42 -8
- package/eng/scripts/Generation.psm1 +44 -15
- package/eng/scripts/Initialize-Repository.ps1 +29 -11
- package/eng/scripts/Test-Packages.ps1 +47 -31
- package/eng/scripts/ci/config/eslint-ci.config.mjs +54 -0
- package/eng/scripts/ci/dev_requirements.txt +1 -0
- package/eng/scripts/ci/format.ts +232 -2
- package/eng/scripts/ci/lint.ts +216 -20
- package/eng/scripts/ci/regenerate-common.ts +18 -14
- package/eng/scripts/ci/regenerate.ts +305 -68
- package/eng/scripts/ci/run-tests.ts +402 -0
- package/eng/scripts/ci/run_mypy.py +4 -3
- package/eng/scripts/ci/run_pylint.py +4 -3
- package/eng/scripts/ci/run_pyright.py +4 -3
- package/eng/scripts/ci/typecheck.ts +225 -0
- package/eng/scripts/ci/util.py +1 -1
- package/eng/scripts/ci/utils.ts +5 -5
- package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
- package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
- package/eng/scripts/setup/build.ts +1 -1
- package/eng/scripts/setup/build_pygen_wheel.py +1 -0
- package/eng/scripts/setup/install.py +1 -0
- package/eng/scripts/setup/prepare.py +1 -0
- package/eng/scripts/setup/prepare.ts +1 -1
- package/eng/scripts/setup/run_tsp.py +3 -3
- package/eng/scripts/setup/system-requirements.ts +8 -4
- package/eng/scripts/setup/venvtools.py +1 -0
- package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +157 -64
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +157 -64
- package/package.json +48 -42
- package/eng/scripts/ci/run-ci.ts +0 -89
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_commonproperties_async.py +0 -94
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_largeheader_async.py +0 -30
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_nonresource_async.py +0 -36
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_operationtemplates_async.py +0 -205
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_arm_resource_async.py +0 -478
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_access_async.py +0 -101
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_header_async.py +0 -18
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_path_async.py +0 -18
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_api_version_query_async.py +0 -18
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_default_value_async.py +0 -46
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_initialization_async.py +0 -58
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_client_location_async.py +0 -82
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_deserialize_empty_string_as_null_async.py +0 -20
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_flatten_async.py +0 -115
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_hierrarchy_building_async.py +0 -53
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +0 -28
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_override_async.py +0 -106
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_usage_async.py +0 -38
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_basic_async.py +0 -76
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_rpc_async.py +0 -22
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_lro_standard_async.py +0 -39
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_model_async.py +0 -33
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_page_async.py +0 -80
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_scalar_async.py +0 -41
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_core_traits_async.py +0 -87
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_encode_duration_async.py +0 -19
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_example_basic_async.py +0 -30
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_payload_pageable_async.py +0 -19
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_method_subscription_id_async.py +0 -248
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_async.py +0 -110
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_resource_manager_multi_service_shared_models_async.py +0 -132
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_special_headers_client_request_id_async.py +0 -30
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_versioning_previewversion_async.py +0 -53
- package/generator/test/azure/mock_api_tests/asynctests/test_client_namespace_async.py +0 -34
- package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_async.py +0 -69
- package/generator/test/azure/mock_api_tests/asynctests/test_client_naming_enum_conflict_async.py +0 -37
- package/generator/test/azure/mock_api_tests/asynctests/test_client_overload_async.py +0 -27
- package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +0 -64
- package/generator/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +0 -31
- package/generator/test/azure/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
- package/generator/test/azure/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
- package/generator/test/azure/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
- package/generator/test/azure/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
- package/generator/test/azure/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
- package/generator/test/azure/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -216
- package/generator/test/azure/mock_api_tests/asynctests/test_resiliency_srv_driven_async.py +0 -130
- package/generator/test/azure/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
- package/generator/test/azure/mock_api_tests/asynctests/test_service_multi_service_async.py +0 -31
- package/generator/test/azure/mock_api_tests/asynctests/test_special_words_async.py +0 -71
- package/generator/test/azure/mock_api_tests/conftest.py +0 -207
- package/generator/test/azure/mock_api_tests/data/image.jpg +0 -0
- package/generator/test/azure/mock_api_tests/data/image.png +0 -0
- package/generator/test/azure/mock_api_tests/test_azure_arm_commonproperties.py +0 -89
- package/generator/test/azure/mock_api_tests/test_azure_arm_largeheader.py +0 -27
- package/generator/test/azure/mock_api_tests/test_azure_arm_nonresource.py +0 -34
- package/generator/test/azure/mock_api_tests/test_azure_arm_operationtemplates.py +0 -180
- package/generator/test/azure/mock_api_tests/test_azure_arm_resource.py +0 -436
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_access.py +0 -92
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_header.py +0 -17
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_path.py +0 -17
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_api_version_query.py +0 -17
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_default_value.py +0 -42
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_initialization.py +0 -51
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_client_location.py +0 -70
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_deserialize_empty_string_as_null.py +0 -19
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_flatten.py +0 -104
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_hierrarchy_building.py +0 -45
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +0 -27
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_override.py +0 -102
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_usage.py +0 -32
- package/generator/test/azure/mock_api_tests/test_azure_core_basic.py +0 -70
- package/generator/test/azure/mock_api_tests/test_azure_core_lro_rpc.py +0 -20
- package/generator/test/azure/mock_api_tests/test_azure_core_lro_standard.py +0 -32
- package/generator/test/azure/mock_api_tests/test_azure_core_model.py +0 -30
- package/generator/test/azure/mock_api_tests/test_azure_core_page.py +0 -71
- package/generator/test/azure/mock_api_tests/test_azure_core_scalar.py +0 -35
- package/generator/test/azure/mock_api_tests/test_azure_core_traits.py +0 -85
- package/generator/test/azure/mock_api_tests/test_azure_encode_duration.py +0 -18
- package/generator/test/azure/mock_api_tests/test_azure_example_basic.py +0 -29
- package/generator/test/azure/mock_api_tests/test_azure_payload_pageable.py +0 -18
- package/generator/test/azure/mock_api_tests/test_azure_resource_manager_method_subscription_id.py +0 -235
- package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service.py +0 -104
- package/generator/test/azure/mock_api_tests/test_azure_resource_manager_multi_service_shared_models.py +0 -128
- package/generator/test/azure/mock_api_tests/test_azure_special_headers_client_request_id.py +0 -29
- package/generator/test/azure/mock_api_tests/test_azure_versioning_previewversion.py +0 -50
- package/generator/test/azure/mock_api_tests/test_clear_output_folder.py +0 -23
- package/generator/test/azure/mock_api_tests/test_client_namespace.py +0 -32
- package/generator/test/azure/mock_api_tests/test_client_naming.py +0 -57
- package/generator/test/azure/mock_api_tests/test_client_naming_enum_conflict.py +0 -35
- package/generator/test/azure/mock_api_tests/test_client_overload.py +0 -25
- package/generator/test/azure/mock_api_tests/test_client_structure.py +0 -60
- package/generator/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +0 -29
- package/generator/test/azure/mock_api_tests/test_encode_duration.py +0 -60
- package/generator/test/azure/mock_api_tests/test_encode_numeric.py +0 -31
- package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +0 -251
- package/generator/test/azure/mock_api_tests/test_parameters_basic.py +0 -22
- package/generator/test/azure/mock_api_tests/test_parameters_spread.py +0 -66
- package/generator/test/azure/mock_api_tests/test_payload_content_negotiation.py +0 -33
- package/generator/test/azure/mock_api_tests/test_payload_multipart.py +0 -198
- package/generator/test/azure/mock_api_tests/test_resiliency_srv_driven.py +0 -124
- package/generator/test/azure/mock_api_tests/test_serialization_encoded_name_json.py +0 -21
- package/generator/test/azure/mock_api_tests/test_service_multi_service.py +0 -29
- package/generator/test/azure/mock_api_tests/test_special_words.py +0 -63
- package/generator/test/azure/requirements.txt +0 -125
- package/generator/test/azure/tox.ini +0 -64
- package/generator/test/data/image.jpg +0 -0
- package/generator/test/data/image.png +0 -0
- package/generator/test/dev_requirements.txt +0 -8
- package/generator/test/generic_mock_api_tests/asynctests/test_authentication_async.py +0 -140
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_array_async.py +0 -139
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_bytes_async.py +0 -132
- package/generator/test/generic_mock_api_tests/asynctests/test_encode_datetime_async.py +0 -127
- package/generator/test/generic_mock_api_tests/asynctests/test_headasboolean_async.py +0 -35
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_body_optionality_async.py +0 -30
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_collection_format_async.py +0 -38
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_path_async.py +0 -24
- package/generator/test/generic_mock_api_tests/asynctests/test_parameters_query_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_json_merge_patch_async.py +0 -98
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_media_type_async.py +0 -27
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +0 -134
- package/generator/test/generic_mock_api_tests/asynctests/test_payload_xml_async.py +0 -150
- package/generator/test/generic_mock_api_tests/asynctests/test_response_status_code_range_async.py +0 -38
- package/generator/test/generic_mock_api_tests/asynctests/test_routes_async.py +0 -331
- package/generator/test/generic_mock_api_tests/asynctests/test_server_endpoint_not_defined_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_server_path_multiple_async.py +0 -25
- package/generator/test/generic_mock_api_tests/asynctests/test_server_path_single_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_not_versioned_async.py +0 -28
- package/generator/test/generic_mock_api_tests/asynctests/test_server_versions_versioned_async.py +0 -34
- package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_conditional_request_async.py +0 -38
- package/generator/test/generic_mock_api_tests/asynctests/test_special_headers_repeatability_async.py +0 -19
- package/generator/test/generic_mock_api_tests/asynctests/test_specs_documentation_async.py +0 -59
- package/generator/test/generic_mock_api_tests/asynctests/test_streaming_jsonl_async.py +0 -27
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_array_async.py +0 -127
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_dictionary_async.py +0 -98
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_extensible_async.py +0 -25
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_enum_fixed_async.py +0 -27
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_file_async.py +0 -59
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_empty_async.py +0 -32
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_enum_discriminator_async.py +0 -70
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_nested_discriminator_async.py +0 -85
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_not_discriminated_async.py +0 -34
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_recursive_async.py +0 -34
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_inheritance_single_discriminator_async.py +0 -67
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_usage_async.py +0 -32
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_model_visibility_async.py +0 -47
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_additionalproperties_async.py +0 -353
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_nullable_async.py +0 -110
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_optional_async.py +0 -197
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_property_valuetypes_async.py +0 -315
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_scalar_async.py +0 -60
- package/generator/test/generic_mock_api_tests/asynctests/test_typetest_union_async.py +0 -90
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_added_async.py +0 -36
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_made_optional_async.py +0 -21
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_removed_async.py +0 -39
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_renamed_from_async.py +0 -29
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_return_type_changed_from_async.py +0 -18
- package/generator/test/generic_mock_api_tests/asynctests/test_versioning_type_changed_from_async.py +0 -22
- package/generator/test/generic_mock_api_tests/conftest.py +0 -75
- package/generator/test/generic_mock_api_tests/data/image.jpg +0 -0
- package/generator/test/generic_mock_api_tests/data/image.png +0 -0
- package/generator/test/generic_mock_api_tests/test_authentication.py +0 -130
- package/generator/test/generic_mock_api_tests/test_encode_array.py +0 -126
- package/generator/test/generic_mock_api_tests/test_encode_bytes.py +0 -128
- package/generator/test/generic_mock_api_tests/test_encode_datetime.py +0 -123
- package/generator/test/generic_mock_api_tests/test_headasboolean.py +0 -33
- package/generator/test/generic_mock_api_tests/test_parameters_body_optionality.py +0 -27
- package/generator/test/generic_mock_api_tests/test_parameters_collection_format.py +0 -33
- package/generator/test/generic_mock_api_tests/test_parameters_path.py +0 -22
- package/generator/test/generic_mock_api_tests/test_parameters_query.py +0 -17
- package/generator/test/generic_mock_api_tests/test_payload_json_merge_patch.py +0 -93
- package/generator/test/generic_mock_api_tests/test_payload_media_type.py +0 -25
- package/generator/test/generic_mock_api_tests/test_payload_pageable.py +0 -99
- package/generator/test/generic_mock_api_tests/test_payload_xml.py +0 -135
- package/generator/test/generic_mock_api_tests/test_response_status_code_range.py +0 -36
- package/generator/test/generic_mock_api_tests/test_routes.py +0 -285
- package/generator/test/generic_mock_api_tests/test_server_endpoint_not_defined.py +0 -17
- package/generator/test/generic_mock_api_tests/test_server_path_multiple.py +0 -21
- package/generator/test/generic_mock_api_tests/test_server_path_single.py +0 -17
- package/generator/test/generic_mock_api_tests/test_server_versions_not_versioned.py +0 -25
- package/generator/test/generic_mock_api_tests/test_server_versions_versioned.py +0 -30
- package/generator/test/generic_mock_api_tests/test_special_headers_conditional_request.py +0 -34
- package/generator/test/generic_mock_api_tests/test_special_headers_repeatability.py +0 -18
- package/generator/test/generic_mock_api_tests/test_specs_documentation.py +0 -51
- package/generator/test/generic_mock_api_tests/test_streaming_jsonl.py +0 -25
- package/generator/test/generic_mock_api_tests/test_typetest_array.py +0 -111
- package/generator/test/generic_mock_api_tests/test_typetest_dictionary.py +0 -86
- package/generator/test/generic_mock_api_tests/test_typetest_enum_extensible.py +0 -23
- package/generator/test/generic_mock_api_tests/test_typetest_enum_fixed.py +0 -25
- package/generator/test/generic_mock_api_tests/test_typetest_file.py +0 -52
- package/generator/test/generic_mock_api_tests/test_typetest_model_empty.py +0 -29
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_enum_discriminator.py +0 -58
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_nested_discriminator.py +0 -79
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_not_discriminated.py +0 -31
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_recursive.py +0 -32
- package/generator/test/generic_mock_api_tests/test_typetest_model_inheritance_single_discriminator.py +0 -60
- package/generator/test/generic_mock_api_tests/test_typetest_model_usage.py +0 -28
- package/generator/test/generic_mock_api_tests/test_typetest_model_visibility.py +0 -40
- package/generator/test/generic_mock_api_tests/test_typetest_property_additionalproperties.py +0 -314
- package/generator/test/generic_mock_api_tests/test_typetest_property_nullable.py +0 -102
- package/generator/test/generic_mock_api_tests/test_typetest_property_optional.py +0 -174
- package/generator/test/generic_mock_api_tests/test_typetest_property_valuetypes.py +0 -286
- package/generator/test/generic_mock_api_tests/test_typetest_scalar.py +0 -53
- package/generator/test/generic_mock_api_tests/test_typetest_union.py +0 -80
- package/generator/test/generic_mock_api_tests/test_typetest_union_discriminated.py +0 -290
- package/generator/test/generic_mock_api_tests/test_versioning_added.py +0 -33
- package/generator/test/generic_mock_api_tests/test_versioning_made_optional.py +0 -20
- package/generator/test/generic_mock_api_tests/test_versioning_removed.py +0 -37
- package/generator/test/generic_mock_api_tests/test_versioning_renamed_from.py +0 -27
- package/generator/test/generic_mock_api_tests/test_versioning_return_type_changed_from.py +0 -17
- package/generator/test/generic_mock_api_tests/test_versioning_type_changed_from.py +0 -21
- package/generator/test/unbranded/mock_api_tests/asynctests/test_auth_flow_async.py +0 -19
- package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_duration_async.py +0 -63
- package/generator/test/unbranded/mock_api_tests/asynctests/test_encode_numeric_async.py +0 -35
- package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_basic_async.py +0 -24
- package/generator/test/unbranded/mock_api_tests/asynctests/test_parameters_spread_async.py +0 -76
- package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_content_negotiation_async.py +0 -37
- package/generator/test/unbranded/mock_api_tests/asynctests/test_payload_multipart_async.py +0 -218
- package/generator/test/unbranded/mock_api_tests/asynctests/test_serialization_encoded_name_json_async.py +0 -24
- package/generator/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +0 -73
- package/generator/test/unbranded/mock_api_tests/asynctests/test_unbranded_async.py +0 -24
- package/generator/test/unbranded/mock_api_tests/conftest.py +0 -91
- package/generator/test/unbranded/mock_api_tests/data/image.jpg +0 -0
- package/generator/test/unbranded/mock_api_tests/data/image.png +0 -0
- package/generator/test/unbranded/mock_api_tests/test_auth_flow.py +0 -17
- package/generator/test/unbranded/mock_api_tests/test_encode_duration.py +0 -60
- package/generator/test/unbranded/mock_api_tests/test_encode_numeric.py +0 -32
- package/generator/test/unbranded/mock_api_tests/test_parameters_basic.py +0 -22
- package/generator/test/unbranded/mock_api_tests/test_parameters_spread.py +0 -66
- package/generator/test/unbranded/mock_api_tests/test_payload_content_negotiation.py +0 -33
- package/generator/test/unbranded/mock_api_tests/test_payload_multipart.py +0 -200
- package/generator/test/unbranded/mock_api_tests/test_serialization_encoded_name_json.py +0 -22
- package/generator/test/unbranded/mock_api_tests/test_special_words.py +0 -66
- package/generator/test/unbranded/mock_api_tests/test_unbranded.py +0 -65
- package/generator/test/unbranded/requirements.txt +0 -69
- package/generator/test/unbranded/tox.ini +0 -64
- package/generator/test/unittests/conftest.py +0 -15
- package/generator/test/unittests/requirements.txt +0 -3
- package/generator/test/unittests/test_enums.py +0 -89
- package/generator/test/unittests/test_model_base_serialization.py +0 -4906
- package/generator/test/unittests/test_model_base_xml_serialization.py +0 -1239
- package/generator/test/unittests/test_name_converter.py +0 -35
- package/generator/test/unittests/test_optional_return_type.py +0 -268
- package/generator/test/unittests/test_parameter_ordering.py +0 -104
- package/generator/test/unittests/test_sort_schema.py +0 -93
- package/generator/test/unittests/tox.ini +0 -5
- /package/eng/scripts/ci/{mypy.ini → config/mypy.ini} +0 -0
- /package/eng/scripts/ci/{pylintrc → config/pylintrc} +0 -0
- /package/eng/scripts/ci/{pyproject.toml → config/pyproject.toml} +0 -0
- /package/eng/scripts/ci/{pyrightconfig.json → config/pyrightconfig.json} +0 -0
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
-
# license information.
|
|
5
|
-
# --------------------------------------------------------------------------
|
|
6
|
-
from pygen.preprocess import PreProcessPlugin
|
|
7
|
-
from pygen.preprocess.python_mappings import PadType
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def pad_reserved_words(name: str, pad_type: PadType) -> str:
|
|
11
|
-
return PreProcessPlugin(output_folder="").pad_reserved_words(name, pad_type, {})
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def test_escaped_reserved_words():
|
|
15
|
-
expected_conversion_model = {"Self": "Self", "And": "AndModel"}
|
|
16
|
-
for name in expected_conversion_model:
|
|
17
|
-
assert pad_reserved_words(name, pad_type=PadType.MODEL) == expected_conversion_model[name]
|
|
18
|
-
|
|
19
|
-
expected_conversion_method = {
|
|
20
|
-
"self": "self",
|
|
21
|
-
"and": "and_method",
|
|
22
|
-
"content_type": "content_type",
|
|
23
|
-
}
|
|
24
|
-
for name in expected_conversion_method:
|
|
25
|
-
assert pad_reserved_words(name, pad_type=PadType.METHOD) == expected_conversion_method[name]
|
|
26
|
-
|
|
27
|
-
expected_conversion_parameter = {
|
|
28
|
-
"content_type": "content_type_parameter",
|
|
29
|
-
"request_id": "request_id_parameter",
|
|
30
|
-
"elif": "elif_parameter",
|
|
31
|
-
"self": "self_parameter",
|
|
32
|
-
"continuation_token": "continuation_token_parameter",
|
|
33
|
-
}
|
|
34
|
-
for name in expected_conversion_parameter:
|
|
35
|
-
assert pad_reserved_words(name, pad_type=PadType.PARAMETER) == expected_conversion_parameter[name]
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
-
# license information.
|
|
5
|
-
# --------------------------------------------------------------------------
|
|
6
|
-
|
|
7
|
-
import pytest
|
|
8
|
-
from pygen.codegen.models import (
|
|
9
|
-
Operation,
|
|
10
|
-
LROOperation,
|
|
11
|
-
PagingOperation,
|
|
12
|
-
Response,
|
|
13
|
-
ParameterList,
|
|
14
|
-
CodeModel,
|
|
15
|
-
RequestBuilder,
|
|
16
|
-
Client,
|
|
17
|
-
)
|
|
18
|
-
from pygen.codegen.models.parameter_list import RequestBuilderParameterList
|
|
19
|
-
from pygen.codegen.models.primitive_types import StringType
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
@pytest.fixture
|
|
23
|
-
def code_model():
|
|
24
|
-
return CodeModel(
|
|
25
|
-
{
|
|
26
|
-
"clients": [
|
|
27
|
-
{
|
|
28
|
-
"name": "client",
|
|
29
|
-
"namespace": "blah",
|
|
30
|
-
"moduleName": "blah",
|
|
31
|
-
"parameters": [],
|
|
32
|
-
"url": "",
|
|
33
|
-
"operationGroups": [],
|
|
34
|
-
}
|
|
35
|
-
],
|
|
36
|
-
"namespace": "namespace",
|
|
37
|
-
},
|
|
38
|
-
options={
|
|
39
|
-
"show-send-request": True,
|
|
40
|
-
"builders-visibility": "public",
|
|
41
|
-
"show-operations": True,
|
|
42
|
-
"models-mode": "dpg",
|
|
43
|
-
"version-tolerant": True,
|
|
44
|
-
},
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
@pytest.fixture
|
|
49
|
-
def client(code_model):
|
|
50
|
-
return Client(
|
|
51
|
-
{
|
|
52
|
-
"name": "client",
|
|
53
|
-
"namespace": "blah",
|
|
54
|
-
"moduleName": "blah",
|
|
55
|
-
"parameters": [],
|
|
56
|
-
"url": "",
|
|
57
|
-
"operationGroups": [],
|
|
58
|
-
},
|
|
59
|
-
code_model,
|
|
60
|
-
parameters=[],
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
@pytest.fixture
|
|
65
|
-
def request_builder(code_model, client):
|
|
66
|
-
return RequestBuilder(
|
|
67
|
-
yaml_data={
|
|
68
|
-
"url": "http://fake.com",
|
|
69
|
-
"method": "GET",
|
|
70
|
-
"groupName": "blah",
|
|
71
|
-
"isOverload": False,
|
|
72
|
-
"apiVersions": [],
|
|
73
|
-
},
|
|
74
|
-
client=client,
|
|
75
|
-
code_model=code_model,
|
|
76
|
-
name="optional_return_type_test",
|
|
77
|
-
parameters=RequestBuilderParameterList({}, code_model, parameters=[]),
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
@pytest.fixture
|
|
82
|
-
def operation(code_model, request_builder, client):
|
|
83
|
-
return Operation(
|
|
84
|
-
yaml_data={
|
|
85
|
-
"url": "http://fake.com",
|
|
86
|
-
"method": "GET",
|
|
87
|
-
"groupName": "blah",
|
|
88
|
-
"isOverload": False,
|
|
89
|
-
"apiVersions": [],
|
|
90
|
-
},
|
|
91
|
-
client=client,
|
|
92
|
-
code_model=code_model,
|
|
93
|
-
request_builder=request_builder,
|
|
94
|
-
name="optional_return_type_test",
|
|
95
|
-
parameters=ParameterList({}, code_model, []),
|
|
96
|
-
responses=[],
|
|
97
|
-
exceptions=[],
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
@pytest.fixture
|
|
102
|
-
def lro_operation(code_model, request_builder, client):
|
|
103
|
-
return LROOperation(
|
|
104
|
-
yaml_data={
|
|
105
|
-
"url": "http://fake.com",
|
|
106
|
-
"method": "GET",
|
|
107
|
-
"groupName": "blah",
|
|
108
|
-
"isOverload": False,
|
|
109
|
-
"apiVersions": [],
|
|
110
|
-
},
|
|
111
|
-
client=client,
|
|
112
|
-
code_model=code_model,
|
|
113
|
-
request_builder=request_builder,
|
|
114
|
-
name="lro_optional_return_type_test",
|
|
115
|
-
parameters=ParameterList({}, code_model, []),
|
|
116
|
-
responses=[],
|
|
117
|
-
exceptions=[],
|
|
118
|
-
)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
@pytest.fixture
|
|
122
|
-
def paging_operation(code_model, request_builder, client):
|
|
123
|
-
return PagingOperation(
|
|
124
|
-
yaml_data={
|
|
125
|
-
"url": "http://fake.com",
|
|
126
|
-
"method": "GET",
|
|
127
|
-
"groupName": "blah",
|
|
128
|
-
"isOverload": False,
|
|
129
|
-
"apiVersions": [],
|
|
130
|
-
"pagerSync": "blah",
|
|
131
|
-
"pagerAsync": "blah",
|
|
132
|
-
},
|
|
133
|
-
client=client,
|
|
134
|
-
code_model=code_model,
|
|
135
|
-
request_builder=request_builder,
|
|
136
|
-
name="paging_optional_return_type_test",
|
|
137
|
-
parameters=ParameterList({}, code_model, []),
|
|
138
|
-
responses=[],
|
|
139
|
-
exceptions=[],
|
|
140
|
-
)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
@pytest.fixture
|
|
144
|
-
def base_type(code_model):
|
|
145
|
-
return StringType({"type": "string"}, code_model)
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
def test_success_with_body_and_fail_no_body(code_model, operation, base_type):
|
|
149
|
-
operation.responses = [
|
|
150
|
-
Response(
|
|
151
|
-
yaml_data={"statusCodes": [200]},
|
|
152
|
-
code_model=code_model,
|
|
153
|
-
headers=[],
|
|
154
|
-
type=base_type,
|
|
155
|
-
),
|
|
156
|
-
Response(
|
|
157
|
-
yaml_data={"statusCodes": [202]},
|
|
158
|
-
code_model=code_model,
|
|
159
|
-
headers=[],
|
|
160
|
-
type=base_type,
|
|
161
|
-
),
|
|
162
|
-
]
|
|
163
|
-
operation.exceptions = [
|
|
164
|
-
Response(
|
|
165
|
-
yaml_data={"statusCodes": ["default"]},
|
|
166
|
-
code_model=code_model,
|
|
167
|
-
headers=[],
|
|
168
|
-
type=None,
|
|
169
|
-
)
|
|
170
|
-
]
|
|
171
|
-
|
|
172
|
-
assert operation.has_optional_return_type is False
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
def test_success_no_body_fail_with_body(code_model, operation, base_type):
|
|
176
|
-
operation.responses = [
|
|
177
|
-
Response(
|
|
178
|
-
yaml_data={"statusCodes": [200]},
|
|
179
|
-
code_model=code_model,
|
|
180
|
-
headers=[],
|
|
181
|
-
type=None,
|
|
182
|
-
)
|
|
183
|
-
]
|
|
184
|
-
operation.exceptions = [
|
|
185
|
-
Response(
|
|
186
|
-
yaml_data={"statusCodes": ["default"]},
|
|
187
|
-
code_model=code_model,
|
|
188
|
-
headers=[],
|
|
189
|
-
type=base_type,
|
|
190
|
-
)
|
|
191
|
-
]
|
|
192
|
-
|
|
193
|
-
assert operation.has_optional_return_type is False
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def test_optional_return_type_operation(code_model, operation, base_type):
|
|
197
|
-
operation.responses = [
|
|
198
|
-
Response(
|
|
199
|
-
yaml_data={"statusCodes": [200]},
|
|
200
|
-
code_model=code_model,
|
|
201
|
-
headers=[],
|
|
202
|
-
type=base_type,
|
|
203
|
-
),
|
|
204
|
-
Response(
|
|
205
|
-
yaml_data={"statusCodes": [202]},
|
|
206
|
-
code_model=code_model,
|
|
207
|
-
headers=[],
|
|
208
|
-
type=None,
|
|
209
|
-
),
|
|
210
|
-
Response(
|
|
211
|
-
yaml_data={"statusCodes": ["default"]},
|
|
212
|
-
code_model=code_model,
|
|
213
|
-
headers=[],
|
|
214
|
-
type=base_type,
|
|
215
|
-
),
|
|
216
|
-
]
|
|
217
|
-
|
|
218
|
-
assert operation.has_optional_return_type is True
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
def test_lro_operation(code_model, lro_operation, base_type):
|
|
222
|
-
lro_operation.responses = [
|
|
223
|
-
Response(
|
|
224
|
-
yaml_data={"statusCodes": [200]},
|
|
225
|
-
code_model=code_model,
|
|
226
|
-
headers=[],
|
|
227
|
-
type=base_type,
|
|
228
|
-
),
|
|
229
|
-
Response(
|
|
230
|
-
yaml_data={"statusCodes": [202]},
|
|
231
|
-
code_model=code_model,
|
|
232
|
-
headers=[],
|
|
233
|
-
type=None,
|
|
234
|
-
),
|
|
235
|
-
Response(
|
|
236
|
-
yaml_data={"statusCodes": ["default"]},
|
|
237
|
-
code_model=code_model,
|
|
238
|
-
headers=[],
|
|
239
|
-
type=base_type,
|
|
240
|
-
),
|
|
241
|
-
]
|
|
242
|
-
|
|
243
|
-
assert lro_operation.has_optional_return_type is False
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
def test_paging_operation(code_model, paging_operation, base_type):
|
|
247
|
-
paging_operation.responses = [
|
|
248
|
-
Response(
|
|
249
|
-
yaml_data={"statusCodes": [200]},
|
|
250
|
-
code_model=code_model,
|
|
251
|
-
headers=[],
|
|
252
|
-
type=base_type,
|
|
253
|
-
),
|
|
254
|
-
Response(
|
|
255
|
-
yaml_data={"statusCodes": [202]},
|
|
256
|
-
code_model=code_model,
|
|
257
|
-
headers=[],
|
|
258
|
-
type=None,
|
|
259
|
-
),
|
|
260
|
-
Response(
|
|
261
|
-
yaml_data={"statusCodes": ["default"]},
|
|
262
|
-
code_model=code_model,
|
|
263
|
-
headers=[],
|
|
264
|
-
type=base_type,
|
|
265
|
-
),
|
|
266
|
-
]
|
|
267
|
-
|
|
268
|
-
assert paging_operation.has_optional_return_type is False
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
-
# license information.
|
|
5
|
-
# --------------------------------------------------------------------------
|
|
6
|
-
from pygen.codegen.models import Parameter, AnyType, CodeModel, StringType
|
|
7
|
-
from pygen.codegen.models.parameter_list import ParameterList
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def get_code_model():
|
|
11
|
-
return CodeModel(
|
|
12
|
-
{
|
|
13
|
-
"clients": [
|
|
14
|
-
{
|
|
15
|
-
"name": "client",
|
|
16
|
-
"namespace": "blah",
|
|
17
|
-
"moduleName": "blah",
|
|
18
|
-
"parameters": [],
|
|
19
|
-
"url": "",
|
|
20
|
-
"operationGroups": [],
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"namespace": "namespace",
|
|
24
|
-
},
|
|
25
|
-
options={
|
|
26
|
-
"show-send-request": True,
|
|
27
|
-
"builders-visibility": "public",
|
|
28
|
-
"show-operations": True,
|
|
29
|
-
"models-mode": "dpg",
|
|
30
|
-
"only-path-and-body-params-positional": True,
|
|
31
|
-
},
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def get_parameter(name, required, default_value=None, type=None):
|
|
36
|
-
if not type:
|
|
37
|
-
type = AnyType(
|
|
38
|
-
yaml_data={"type": "any"},
|
|
39
|
-
code_model=get_code_model(),
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
return Parameter(
|
|
43
|
-
yaml_data={
|
|
44
|
-
"wireName": name,
|
|
45
|
-
"clientName": name,
|
|
46
|
-
"location": "path",
|
|
47
|
-
"clientDefaultValue": default_value,
|
|
48
|
-
"optional": not required,
|
|
49
|
-
"implementation": "Method",
|
|
50
|
-
"inOverload": False,
|
|
51
|
-
"inOverloaded": False,
|
|
52
|
-
},
|
|
53
|
-
code_model=get_code_model(),
|
|
54
|
-
type=type,
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def test_sort_parameters_with_default_value_from_schema():
|
|
59
|
-
type = StringType(
|
|
60
|
-
yaml_data={"clientDefaultValue": "this_is_the_default", "type": "str"},
|
|
61
|
-
code_model=get_code_model(),
|
|
62
|
-
)
|
|
63
|
-
parameter_with_default_schema_value_required = get_parameter(
|
|
64
|
-
name="required_param_with_schema_default", required=True, type=type
|
|
65
|
-
)
|
|
66
|
-
required_parameter = get_parameter(name="required_parameter", required=True)
|
|
67
|
-
|
|
68
|
-
parameter_list = [parameter_with_default_schema_value_required, required_parameter]
|
|
69
|
-
|
|
70
|
-
assert [
|
|
71
|
-
required_parameter,
|
|
72
|
-
parameter_with_default_schema_value_required,
|
|
73
|
-
] == ParameterList({}, get_code_model(), parameter_list).method
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def test_sort_required_parameters():
|
|
77
|
-
required_default_value_parameter = get_parameter(
|
|
78
|
-
name="required_default_value_parameter", required=True, default_value="hello"
|
|
79
|
-
)
|
|
80
|
-
required_parameter = get_parameter(name="required_parameter", required=True)
|
|
81
|
-
|
|
82
|
-
parameter_list = [required_parameter, required_default_value_parameter]
|
|
83
|
-
|
|
84
|
-
assert [required_parameter, required_default_value_parameter] == ParameterList(
|
|
85
|
-
{}, get_code_model(), parameter_list
|
|
86
|
-
).method
|
|
87
|
-
|
|
88
|
-
# switch around ordering to confirm
|
|
89
|
-
|
|
90
|
-
parameter_list = [required_default_value_parameter, required_parameter]
|
|
91
|
-
|
|
92
|
-
assert [required_parameter, required_default_value_parameter] == ParameterList(
|
|
93
|
-
{}, get_code_model(), parameter_list
|
|
94
|
-
).method
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def test_sort_required_and_non_required_parameters():
|
|
98
|
-
required_parameter = get_parameter(name="required_parameter", required=True)
|
|
99
|
-
|
|
100
|
-
optional_parameter = get_parameter(name="optional_parameter", required=False)
|
|
101
|
-
|
|
102
|
-
parameter_list = [optional_parameter, required_parameter]
|
|
103
|
-
|
|
104
|
-
assert [required_parameter, optional_parameter] == ParameterList({}, get_code_model(), parameter_list).method
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# -------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
# Licensed under the MIT License. See License.txt in the project root for
|
|
4
|
-
# license information.
|
|
5
|
-
# --------------------------------------------------------------------------
|
|
6
|
-
|
|
7
|
-
from pygen.codegen.models import CodeModel, DPGModelType
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def get_code_model():
|
|
11
|
-
return CodeModel(
|
|
12
|
-
{
|
|
13
|
-
"clients": [
|
|
14
|
-
{
|
|
15
|
-
"name": "client",
|
|
16
|
-
"namespace": "blah",
|
|
17
|
-
"moduleName": "blah",
|
|
18
|
-
"parameters": [],
|
|
19
|
-
"url": "",
|
|
20
|
-
"operationGroups": [],
|
|
21
|
-
}
|
|
22
|
-
],
|
|
23
|
-
"namespace": "namespace",
|
|
24
|
-
},
|
|
25
|
-
options={
|
|
26
|
-
"show-send-request": True,
|
|
27
|
-
"builders-visibility": "public",
|
|
28
|
-
"show-operations": True,
|
|
29
|
-
"models-mode": "dpg",
|
|
30
|
-
},
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def get_object_schema(name, base_models):
|
|
35
|
-
return DPGModelType(
|
|
36
|
-
yaml_data={"name": name, "type": "model", "snakeCaseName": name},
|
|
37
|
-
code_model=get_code_model(),
|
|
38
|
-
parents=base_models,
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def test_pet_cat_kitten_horse_wood():
|
|
43
|
-
"""Horse -> Pet <- Cat <- Kitten, Wood"""
|
|
44
|
-
code_model = get_code_model()
|
|
45
|
-
pet = get_object_schema("Pet", None)
|
|
46
|
-
horse = get_object_schema("Horse", [pet])
|
|
47
|
-
cat = get_object_schema("Cat", [pet])
|
|
48
|
-
kitten = get_object_schema("Kitten", [cat])
|
|
49
|
-
wood = get_object_schema("Wood", None)
|
|
50
|
-
code_model.model_types = [wood, horse, cat, pet, kitten]
|
|
51
|
-
code_model.sort_model_types()
|
|
52
|
-
sorted_model_types = code_model.model_types
|
|
53
|
-
# assert pet is before cat
|
|
54
|
-
assert sorted_model_types.index(pet) < sorted_model_types.index(cat)
|
|
55
|
-
# assert pet is before horse
|
|
56
|
-
assert sorted_model_types.index(pet) < sorted_model_types.index(horse)
|
|
57
|
-
# assert cat is before kitten
|
|
58
|
-
assert sorted_model_types.index(cat) < sorted_model_types.index(kitten)
|
|
59
|
-
# assert wood in list
|
|
60
|
-
assert wood in sorted_model_types
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def test_multiple_inheritance():
|
|
64
|
-
"""CarbonObject <- Person <- Teacher -> Employee, Person <- Kid
|
|
65
|
-
|
|
|
66
|
-
ObjectOnEarth
|
|
67
|
-
"""
|
|
68
|
-
code_model = get_code_model()
|
|
69
|
-
carbon_object = get_object_schema("CarbonObject", [])
|
|
70
|
-
object_on_earth = get_object_schema("ObjectOnEarth", [])
|
|
71
|
-
person = get_object_schema("Person", [carbon_object, object_on_earth])
|
|
72
|
-
employee = get_object_schema("Employee", [])
|
|
73
|
-
teacher = get_object_schema("Teacher", [person, employee])
|
|
74
|
-
kid = get_object_schema("Kid", [person])
|
|
75
|
-
|
|
76
|
-
code_model.model_types = [
|
|
77
|
-
kid,
|
|
78
|
-
person,
|
|
79
|
-
teacher,
|
|
80
|
-
carbon_object,
|
|
81
|
-
employee,
|
|
82
|
-
object_on_earth,
|
|
83
|
-
]
|
|
84
|
-
code_model.sort_model_types()
|
|
85
|
-
sorted_model_types = code_model.model_types
|
|
86
|
-
# assert carbon object and object on earth is in front of person
|
|
87
|
-
assert sorted_model_types.index(carbon_object) < sorted_model_types.index(person)
|
|
88
|
-
assert sorted_model_types.index(object_on_earth) < sorted_model_types.index(person)
|
|
89
|
-
# assert person and employee are in front of teacher
|
|
90
|
-
assert sorted_model_types.index(person) < sorted_model_types.index(teacher)
|
|
91
|
-
assert sorted_model_types.index(employee) < sorted_model_types.index(teacher)
|
|
92
|
-
# assert person is before kid
|
|
93
|
-
assert sorted_model_types.index(person) < sorted_model_types.index(kid)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|