Source: fastapi
Version: 0.115.5-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20241228 ftbfs-trixie
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> debian/rules build
> dh build --with python3 --buildsystem=pybuild
> dh_update_autotools_config -O--buildsystem=pybuild
> dh_autoreconf -O--buildsystem=pybuild
> dh_auto_configure -O--buildsystem=pybuild
> pybuild --configure -i python{version} -p "3.13 3.12"
> dh_auto_build -O--buildsystem=pybuild
> pybuild --build -i python{version} -p "3.13 3.12"
> I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build"
> module
> I: pybuild base:311: python3.13 -m build --skip-dependency-check
> --no-isolation --wheel --outdir
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fastapi
> * Building wheel...
> - Adding .pdm-build/fastapi-0.115.5.dist-info/METADATA ->
> fastapi-0.115.5.dist-info/METADATA
> - Adding .pdm-build/fastapi-0.115.5.dist-info/WHEEL ->
> fastapi-0.115.5.dist-info/WHEEL
> - Adding .pdm-build/fastapi-0.115.5.dist-info/entry_points.txt ->
> fastapi-0.115.5.dist-info/entry_points.txt
> - Adding .pdm-build/fastapi-0.115.5.dist-info/licenses/LICENSE ->
> fastapi-0.115.5.dist-info/licenses/LICENSE
> - Adding fastapi/__init__.py -> fastapi/__init__.py
> - Adding fastapi/__main__.py -> fastapi/__main__.py
> - Adding fastapi/_compat.py -> fastapi/_compat.py
> - Adding fastapi/applications.py -> fastapi/applications.py
> - Adding fastapi/background.py -> fastapi/background.py
> - Adding fastapi/cli.py -> fastapi/cli.py
> - Adding fastapi/concurrency.py -> fastapi/concurrency.py
> - Adding fastapi/datastructures.py -> fastapi/datastructures.py
> - Adding fastapi/dependencies/__init__.py -> fastapi/dependencies/__init__.py
> - Adding fastapi/dependencies/models.py -> fastapi/dependencies/models.py
> - Adding fastapi/dependencies/utils.py -> fastapi/dependencies/utils.py
> - Adding fastapi/encoders.py -> fastapi/encoders.py
> - Adding fastapi/exception_handlers.py -> fastapi/exception_handlers.py
> - Adding fastapi/exceptions.py -> fastapi/exceptions.py
> - Adding fastapi/logger.py -> fastapi/logger.py
> - Adding fastapi/middleware/__init__.py -> fastapi/middleware/__init__.py
> - Adding fastapi/middleware/cors.py -> fastapi/middleware/cors.py
> - Adding fastapi/middleware/gzip.py -> fastapi/middleware/gzip.py
> - Adding fastapi/middleware/httpsredirect.py ->
> fastapi/middleware/httpsredirect.py
> - Adding fastapi/middleware/trustedhost.py ->
> fastapi/middleware/trustedhost.py
> - Adding fastapi/middleware/wsgi.py -> fastapi/middleware/wsgi.py
> - Adding fastapi/openapi/__init__.py -> fastapi/openapi/__init__.py
> - Adding fastapi/openapi/constants.py -> fastapi/openapi/constants.py
> - Adding fastapi/openapi/docs.py -> fastapi/openapi/docs.py
> - Adding fastapi/openapi/models.py -> fastapi/openapi/models.py
> - Adding fastapi/openapi/utils.py -> fastapi/openapi/utils.py
> - Adding fastapi/param_functions.py -> fastapi/param_functions.py
> - Adding fastapi/params.py -> fastapi/params.py
> - Adding fastapi/py.typed -> fastapi/py.typed
> - Adding fastapi/requests.py -> fastapi/requests.py
> - Adding fastapi/responses.py -> fastapi/responses.py
> - Adding fastapi/routing.py -> fastapi/routing.py
> - Adding fastapi/security/__init__.py -> fastapi/security/__init__.py
> - Adding fastapi/security/api_key.py -> fastapi/security/api_key.py
> - Adding fastapi/security/base.py -> fastapi/security/base.py
> - Adding fastapi/security/http.py -> fastapi/security/http.py
> - Adding fastapi/security/oauth2.py -> fastapi/security/oauth2.py
> - Adding fastapi/security/open_id_connect_url.py ->
> fastapi/security/open_id_connect_url.py
> - Adding fastapi/security/utils.py -> fastapi/security/utils.py
> - Adding fastapi/staticfiles.py -> fastapi/staticfiles.py
> - Adding fastapi/templating.py -> fastapi/templating.py
> - Adding fastapi/testclient.py -> fastapi/testclient.py
> - Adding fastapi/types.py -> fastapi/types.py
> - Adding fastapi/utils.py -> fastapi/utils.py
> - Adding fastapi/websockets.py -> fastapi/websockets.py
> - Adding fastapi-0.115.5.dist-info/RECORD -> fastapi-0.115.5.dist-info/RECORD
> Successfully built fastapi-0.115.5-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with
> "installer" module
> I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build"
> module
> I: pybuild base:311: python3.12 -m build --skip-dependency-check
> --no-isolation --wheel --outdir
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_fastapi
> * Building wheel...
> - Adding .pdm-build/fastapi-0.115.5.dist-info/METADATA ->
> fastapi-0.115.5.dist-info/METADATA
> - Adding .pdm-build/fastapi-0.115.5.dist-info/WHEEL ->
> fastapi-0.115.5.dist-info/WHEEL
> - Adding .pdm-build/fastapi-0.115.5.dist-info/entry_points.txt ->
> fastapi-0.115.5.dist-info/entry_points.txt
> - Adding .pdm-build/fastapi-0.115.5.dist-info/licenses/LICENSE ->
> fastapi-0.115.5.dist-info/licenses/LICENSE
> - Adding fastapi/__init__.py -> fastapi/__init__.py
> - Adding fastapi/__main__.py -> fastapi/__main__.py
> - Adding fastapi/_compat.py -> fastapi/_compat.py
> - Adding fastapi/applications.py -> fastapi/applications.py
> - Adding fastapi/background.py -> fastapi/background.py
> - Adding fastapi/cli.py -> fastapi/cli.py
> - Adding fastapi/concurrency.py -> fastapi/concurrency.py
> - Adding fastapi/datastructures.py -> fastapi/datastructures.py
> - Adding fastapi/dependencies/__init__.py -> fastapi/dependencies/__init__.py
> - Adding fastapi/dependencies/models.py -> fastapi/dependencies/models.py
> - Adding fastapi/dependencies/utils.py -> fastapi/dependencies/utils.py
> - Adding fastapi/encoders.py -> fastapi/encoders.py
> - Adding fastapi/exception_handlers.py -> fastapi/exception_handlers.py
> - Adding fastapi/exceptions.py -> fastapi/exceptions.py
> - Adding fastapi/logger.py -> fastapi/logger.py
> - Adding fastapi/middleware/__init__.py -> fastapi/middleware/__init__.py
> - Adding fastapi/middleware/cors.py -> fastapi/middleware/cors.py
> - Adding fastapi/middleware/gzip.py -> fastapi/middleware/gzip.py
> - Adding fastapi/middleware/httpsredirect.py ->
> fastapi/middleware/httpsredirect.py
> - Adding fastapi/middleware/trustedhost.py ->
> fastapi/middleware/trustedhost.py
> - Adding fastapi/middleware/wsgi.py -> fastapi/middleware/wsgi.py
> - Adding fastapi/openapi/__init__.py -> fastapi/openapi/__init__.py
> - Adding fastapi/openapi/constants.py -> fastapi/openapi/constants.py
> - Adding fastapi/openapi/docs.py -> fastapi/openapi/docs.py
> - Adding fastapi/openapi/models.py -> fastapi/openapi/models.py
> - Adding fastapi/openapi/utils.py -> fastapi/openapi/utils.py
> - Adding fastapi/param_functions.py -> fastapi/param_functions.py
> - Adding fastapi/params.py -> fastapi/params.py
> - Adding fastapi/py.typed -> fastapi/py.typed
> - Adding fastapi/requests.py -> fastapi/requests.py
> - Adding fastapi/responses.py -> fastapi/responses.py
> - Adding fastapi/routing.py -> fastapi/routing.py
> - Adding fastapi/security/__init__.py -> fastapi/security/__init__.py
> - Adding fastapi/security/api_key.py -> fastapi/security/api_key.py
> - Adding fastapi/security/base.py -> fastapi/security/base.py
> - Adding fastapi/security/http.py -> fastapi/security/http.py
> - Adding fastapi/security/oauth2.py -> fastapi/security/oauth2.py
> - Adding fastapi/security/open_id_connect_url.py ->
> fastapi/security/open_id_connect_url.py
> - Adding fastapi/security/utils.py -> fastapi/security/utils.py
> - Adding fastapi/staticfiles.py -> fastapi/staticfiles.py
> - Adding fastapi/templating.py -> fastapi/templating.py
> - Adding fastapi/testclient.py -> fastapi/testclient.py
> - Adding fastapi/types.py -> fastapi/types.py
> - Adding fastapi/utils.py -> fastapi/utils.py
> - Adding fastapi/websockets.py -> fastapi/websockets.py
> - Adding fastapi-0.115.5.dist-info/RECORD -> fastapi-0.115.5.dist-info/RECORD
> Successfully built fastapi-0.115.5-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with
> "installer" module
> dh_auto_test -O--buildsystem=pybuild
> pybuild --test --test-pytest -i python{version} -p "3.13 3.12"
> I: pybuild base:311: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fastapi/build; python3.13 -m pytest
> -W ignore::DeprecationWarning -W ignore::ResourceWarning --ignore=docs_src/
> --ignore=tests/test_default_response_class.py
> --ignore-glob=tests/test_tutorial/test_security/test_tutorial005*
> --ignore-glob=tests/test_tutorial/test_sql_databases/test_tutorial*
> --ignore=tests/test_tutorial/test_custom_response/test_tutorial009c.py
> --ignore=tests/test_response_by_alias.py -k " not test_get_custom_response
> and not test_root and not test_async_testing and not test_orjson_non_str_keys
> and not test_dependency_gets_exception and not test_path_operation_img and
> not test_fastapi_cli and not test_openapi "
> ============================= test session starts
> ==============================
> platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: pyproject.toml
> plugins: anyio-4.6.2, inline-snapshot-0.17.1, typeguard-4.4.1
> collected 2243 items / 402 deselected / 1841 selected
>
> tests/test_additional_properties.py . [
> 0%]
> tests/test_additional_properties_bool.py .. [
> 0%]
> tests/test_additional_response_extra.py . [
> 0%]
> tests/test_additional_responses_router.py .... [
> 0%]
> tests/test_allow_inf_nan_in_enforcing.py ........................ [
> 1%]
> tests/test_ambiguous_params.py .. [
> 1%]
> tests/test_annotated.py ............ [
> 2%]
> tests/test_application.py ....... [
> 2%]
> tests/test_callable_endpoint.py . [
> 2%]
> tests/test_compat.py .ss...... [
> 3%]
> tests/test_computed_fields.py .. [
> 3%]
> tests/test_custom_middleware_exception.py .. [
> 3%]
> tests/test_custom_route_class.py .... [
> 3%]
> tests/test_custom_schema_fields.py .. [
> 3%]
> tests/test_custom_swagger_ui_redirect.py ... [
> 4%]
> tests/test_datastructures.py ...... [
> 4%]
> tests/test_datetime_custom_encoder.py .s [
> 4%]
> tests/test_default_response_class_router.py .............. [
> 5%]
> tests/test_dependency_cache.py .... [
> 5%]
> tests/test_dependency_class.py ........ [
> 5%]
> tests/test_dependency_contextmanager.py ...................... [
> 7%]
> tests/test_dependency_contextvars.py . [
> 7%]
> tests/test_dependency_duplicates.py .... [
> 7%]
> tests/test_dependency_normal_exceptions.py . [
> 7%]
> tests/test_dependency_overrides.py ................................ [
> 9%]
> tests/test_dependency_security_overrides.py ... [
> 9%]
> tests/test_deprecated_openapi_prefix.py . [
> 9%]
> tests/test_duplicate_models_openapi.py . [
> 9%]
> tests/test_empty_router.py .. [
> 9%]
> tests/test_enforce_once_required_parameter.py ... [
> 9%]
> tests/test_exception_handlers.py .... [
> 9%]
> tests/test_extra_routes.py ....... [
> 10%]
> tests/test_filter_pydantic_sub_model/test_filter_pydantic_sub_model_pv1.py s
> [ 10%]
> s [
> 10%]
> tests/test_filter_pydantic_sub_model_pv2.py .. [
> 10%]
> tests/test_forms_from_non_typing_sequences.py ... [
> 10%]
> tests/test_forms_single_model.py .... [
> 10%]
> tests/test_forms_single_param.py . [
> 11%]
> tests/test_generate_unique_id_function.py ........ [
> 11%]
> tests/test_generic_parameterless_depends.py . [
> 11%]
> tests/test_get_request_body.py . [
> 11%]
> tests/test_http_connection_injection.py .. [
> 11%]
> tests/test_include_route.py . [
> 11%]
> tests/test_include_router_defaults_overrides.py ........................ [
> 13%]
> .................. [
> 14%]
> tests/test_infer_param_optionality.py ........ [
> 14%]
> tests/test_inherited_custom_class.py .s [
> 14%]
> tests/test_invalid_path_param.py ....... [
> 14%]
> tests/test_invalid_sequence_param.py .... [
> 15%]
> tests/test_jsonable_encoder.py ......s....s....s.... [
> 16%]
> tests/test_local_docs.py ..... [
> 16%]
> tests/test_modules_same_name_body/test_main.py .... [
> 16%]
> tests/test_multi_body_errors.py ... [
> 16%]
> tests/test_multi_query_errors.py .. [
> 17%]
> tests/test_multipart_installation.py FFFFF.....F [
> 17%]
> tests/test_no_swagger_ui_redirect.py ... [
> 17%]
> tests/test_operations_signatures.py . [
> 17%]
> tests/test_param_class.py .. [
> 17%]
> tests/test_param_in_path_and_dependency.py . [
> 18%]
> tests/test_param_include_in_schema.py ....... [
> 18%]
> tests/test_params_repr.py ........................... [
> 19%]
> tests/test_path.py ..................................................... [
> 22%]
> ...................... [
> 23%]
> tests/test_put_no_body.py .. [
> 24%]
> tests/test_query.py ............................. [
> 25%]
> tests/test_read_with_orm_mode.py .s [
> 25%]
> tests/test_regex_deprecated_body.py ... [
> 25%]
> tests/test_regex_deprecated_params.py ... [
> 26%]
> tests/test_repeated_cookie_headers.py . [
> 26%]
> tests/test_repeated_dependency_schema.py .. [
> 26%]
> tests/test_repeated_parameter_alias.py . [
> 26%]
> tests/test_reponse_set_reponse_code_empty.py . [
> 26%]
> tests/test_required_noneable.py ....... [
> 26%]
> tests/test_response_change_status_code.py . [
> 26%]
> tests/test_response_code_no_body.py . [
> 26%]
> tests/test_response_model_as_return_annotation.py ...................... [
> 28%]
> ............... [
> 28%]
> tests/test_response_model_data_filter.py ... [
> 29%]
> tests/test_response_model_data_filter_no_inheritance.py ... [
> 29%]
> tests/test_response_model_include_exclude.py ...... [
> 29%]
> tests/test_response_model_invalid.py .... [
> 29%]
> tests/test_response_model_sub_types.py . [
> 29%]
> tests/test_route_scope.py ..... [
> 30%]
> tests/test_router_events.py ...... [
> 30%]
> tests/test_router_prefix_with_template.py . [
> 30%]
> tests/test_router_redirect_slashes.py .. [
> 30%]
> tests/test_schema_extra_examples.py . [
> 30%]
> tests/test_security_api_key_cookie.py .. [
> 30%]
> tests/test_security_api_key_cookie_description.py .. [
> 30%]
> tests/test_security_api_key_cookie_optional.py .. [
> 30%]
> tests/test_security_api_key_header.py .. [
> 31%]
> tests/test_security_api_key_header_description.py .. [
> 31%]
> tests/test_security_api_key_header_optional.py .. [
> 31%]
> tests/test_security_api_key_query.py .. [
> 31%]
> tests/test_security_api_key_query_description.py .. [
> 31%]
> tests/test_security_api_key_query_optional.py .. [
> 31%]
> tests/test_security_http_base.py .. [
> 31%]
> tests/test_security_http_base_description.py .. [
> 31%]
> tests/test_security_http_base_optional.py .. [
> 31%]
> tests/test_security_http_basic_optional.py .... [
> 32%]
> tests/test_security_http_basic_realm.py .... [
> 32%]
> tests/test_security_http_basic_realm_description.py .... [
> 32%]
> tests/test_security_http_bearer.py ... [
> 32%]
> tests/test_security_http_bearer_description.py ... [
> 32%]
> tests/test_security_http_bearer_optional.py ... [
> 33%]
> tests/test_security_http_digest.py ... [
> 33%]
> tests/test_security_http_digest_description.py ... [
> 33%]
> tests/test_security_http_digest_optional.py ... [
> 33%]
> tests/test_security_oauth2.py ....... [
> 33%]
> tests/test_security_oauth2_authorization_code_bearer.py ... [
> 34%]
> tests/test_security_oauth2_authorization_code_bearer_description.py ... [
> 34%]
> tests/test_security_oauth2_optional.py ....... [
> 34%]
> tests/test_security_oauth2_optional_description.py ....... [
> 34%]
> tests/test_security_oauth2_password_bearer_optional.py ... [
> 35%]
> tests/test_security_oauth2_password_bearer_optional_description.py ... [
> 35%]
> tests/test_security_openid_connect.py ... [
> 35%]
> tests/test_security_openid_connect_description.py ... [
> 35%]
> tests/test_security_openid_connect_optional.py ... [
> 35%]
> tests/test_serialize_response.py ... [
> 35%]
> tests/test_serialize_response_dataclass.py ....... [
> 36%]
> tests/test_serialize_response_model.py ........ [
> 36%]
> tests/test_skip_defaults.py ..... [
> 37%]
> tests/test_starlette_exception.py ...... [
> 37%]
> tests/test_starlette_urlconvertors.py ..... [
> 37%]
> tests/test_sub_callbacks.py . [
> 37%]
> tests/test_swagger_ui_init_oauth.py .. [
> 37%]
> tests/test_tuples.py ...... [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial001.py .. [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial002.py . [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial003.py .. [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial004.py . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001.py .. [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_an.py . [
> 38%]
> . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_an_py310.py
> . [ 38%]
> . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_an_py39.py
> . [ 38%]
> . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_py310.py .
> [ 38%]
> . [
> 39%]
> tests/test_tutorial/test_advanced_middleware/test_tutorial001.py . [
> 39%]
> tests/test_tutorial/test_advanced_middleware/test_tutorial002.py . [
> 39%]
> tests/test_tutorial/test_advanced_middleware/test_tutorial003.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial001.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_an.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_an_py310.py . [
> 39%]
> [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_an_py39.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_py310.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py . [
> 39%]
> tests/test_tutorial/test_bigger_applications/test_main.py .............. [
> 40%]
> ........ [
> 40%]
> tests/test_tutorial/test_bigger_applications/test_main_an.py ........... [
> 41%]
> ........... [
> 42%]
> tests/test_tutorial/test_bigger_applications/test_main_an_py39.py ...... [
> 42%]
> ................ [
> 43%]
> tests/test_tutorial/test_body/test_tutorial001.py ............... [
> 44%]
> tests/test_tutorial/test_body/test_tutorial001_py310.py ............... [
> 44%]
> tests/test_tutorial/test_body_fields/test_tutorial001.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_an.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_an_py310.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_an_py39.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_py310.py ... [
> 45%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001.py .... [
> 45%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_an.py ... [
> 46%]
> . [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_an_py310.py .
> [ 46%]
> ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_an_py39.py . [
> 46%]
> ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_py310.py . [
> 46%]
> ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003.py ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_an.py ... [
> 47%]
> [
> 47%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py310.py .
> [ 47%]
> .. [
> 47%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py39.py . [
> 47%]
> .. [
> 47%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_py310.py . [
> 47%]
> .. [
> 47%]
> tests/test_tutorial/test_body_nested_models/test_tutorial009.py .. [
> 47%]
> tests/test_tutorial/test_body_nested_models/test_tutorial009_py39.py .. [
> 47%]
> tests/test_tutorial/test_body_updates/test_tutorial001.py .. [
> 47%]
> tests/test_tutorial/test_body_updates/test_tutorial001_py310.py .. [
> 48%]
> tests/test_tutorial/test_body_updates/test_tutorial001_py39.py .. [
> 48%]
> tests/test_tutorial/test_conditional_openapi/test_tutorial001.py .. [
> 48%]
> tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py .. [
> 48%]
> tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py .. [
> 48%]
> tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py .. [
> 48%]
> tests/test_tutorial/test_cookie_param_models/test_tutorial001.py ....... [
> 48%]
> ............. [
> 49%]
> tests/test_tutorial/test_cookie_param_models/test_tutorial002.py .....ss [
> 50%]
> sss.....sssss.....sssss.....sssss [
> 51%]
> tests/test_tutorial/test_cookie_params/test_tutorial001.py .... [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_an.py .... [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_an_py310.py .... [
> 52%]
> [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_an_py39.py .... [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_py310.py .... [
> 52%]
> tests/test_tutorial/test_cors/test_tutorial001.py . [
> 53%]
> tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py .... [
> 53%]
> tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py .... [
> 53%]
> tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py .. [
> 53%]
> . [
> 53%]
> tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py .. [
> 53%]
> [
> 53%]
> tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py .. [
> 53%]
> [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial005.py . [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial006.py . [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial006b.py . [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial006c.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial007.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial008.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial009.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial009b.py . [
> 54%]
> tests/test_tutorial/test_dataclasses/test_tutorial001.py .. [
> 54%]
> tests/test_tutorial/test_dataclasses/test_tutorial002.py . [
> 54%]
> tests/test_tutorial/test_dataclasses/test_tutorial003.py .. [
> 54%]
> tests/test_tutorial/test_dependencies/test_tutorial001.py ..... [
> 54%]
> tests/test_tutorial/test_dependencies/test_tutorial001_an.py ..... [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial001_an_py310.py ..... [
> 55%]
> [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial001_an_py39.py ..... [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial001_py310.py ..... [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial004.py ...... [
> 56%]
> tests/test_tutorial/test_dependencies/test_tutorial004_an.py ...... [
> 56%]
> tests/test_tutorial/test_dependencies/test_tutorial004_an_py310.py ..... [
> 56%]
> . [
> 56%]
> tests/test_tutorial/test_dependencies/test_tutorial004_an_py39.py ...... [
> 57%]
> [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial004_py310.py ...... [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial006.py .... [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial006_an.py .... [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial006_an_py39.py .... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008b.py ... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008b_an.py ... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008b_an_py39.py ... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008c.py .... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008c_an.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008c_an_py39.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008d.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008d_an.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008d_an_py39.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial012.py ........ [
> 60%]
> tests/test_tutorial/test_dependencies/test_tutorial012_an.py ........ [
> 60%]
> tests/test_tutorial/test_dependencies/test_tutorial012_an_py39.py ...... [
> 61%]
> .. [
> 61%]
> tests/test_tutorial/test_events/test_tutorial001.py . [
> 61%]
> tests/test_tutorial/test_events/test_tutorial002.py . [
> 61%]
> tests/test_tutorial/test_events/test_tutorial003.py . [
> 61%]
> tests/test_tutorial/test_extending_openapi/test_tutorial001.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_an.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py310.py . [
> 61%]
> [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py39.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_py310.py . [
> 61%]
> tests/test_tutorial/test_extra_models/test_tutorial003.py .. [
> 61%]
> tests/test_tutorial/test_extra_models/test_tutorial003_py310.py .. [
> 61%]
> tests/test_tutorial/test_extra_models/test_tutorial004.py . [
> 62%]
> tests/test_tutorial/test_extra_models/test_tutorial004_py39.py . [
> 62%]
> tests/test_tutorial/test_extra_models/test_tutorial005.py . [
> 62%]
> tests/test_tutorial/test_extra_models/test_tutorial005_py39.py . [
> 62%]
> tests/test_tutorial/test_first_steps/test_tutorial001.py .. [
> 62%]
> tests/test_tutorial/test_generate_clients/test_tutorial003.py ... [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial001.py .. [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial002.py .. [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial003.py .. [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial004.py ... [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial005.py .. [
> 63%]
> tests/test_tutorial/test_handling_errors/test_tutorial006.py ... [
> 63%]
> tests/test_tutorial/test_header_param_models/test_tutorial001.py ....... [
> 63%]
> ................. [
> 64%]
> tests/test_tutorial/test_header_param_models/test_tutorial002.py .....ss [
> 64%]
> sss.....sssss.....sssss.....sssss [
> 66%]
> tests/test_tutorial/test_header_params/test_tutorial001.py ... [
> 66%]
> tests/test_tutorial/test_header_params/test_tutorial001_an.py ... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial001_an_py310.py ... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial001_py310.py ... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial002.py .... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial002_an.py .... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial002_an_py310.py .... [
> 68%]
> [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial002_an_py39.py .... [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial002_py310.py .... [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003.py ... [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_an.py .. [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_an_py310.py .. [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_an_py39.py .. [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_py310.py .. [
> 69%]
> tests/test_tutorial/test_metadata/test_tutorial001.py . [
> 69%]
> tests/test_tutorial/test_metadata/test_tutorial001_1.py . [
> 69%]
> tests/test_tutorial/test_metadata/test_tutorial004.py . [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py
> . [ 69%]
> .. [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007_pv1.py
> s [ 69%]
> ss [
> 69%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py .
> [ 69%]
> . [
> 69%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py .
> [ 70%]
> [
> 70%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial005_py310.py
> . [ 70%]
> [
> 70%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial005_py39.py
> . [ 70%]
> [
> 70%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py .
> [ 70%]
> .. [
> 70%]
> tests/test_tutorial/test_path_params/test_tutorial004.py . [
> 70%]
> tests/test_tutorial/test_path_params/test_tutorial005.py .... [
> 70%]
> tests/test_tutorial/test_query_param_models/test_tutorial001.py ........ [
> 70%]
> ................ [
> 71%]
> tests/test_tutorial/test_query_param_models/test_tutorial002.py ......ss [
> 72%]
> ssss......ssssss......ssssss......ssssss [
> 74%]
> tests/test_tutorial/test_query_params/test_tutorial005.py .. [
> 74%]
> tests/test_tutorial/test_query_params/test_tutorial006.py .. [
> 74%]
> tests/test_tutorial/test_query_params/test_tutorial006_py310.py .. [
> 74%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py . [
> 74%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py310.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py39.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_py310.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py . [
> 75%]
> . [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py310.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py310.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py . [
> 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py . [
> 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an_py39.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py . [
> 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py310.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py39.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_py310.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_request_files/test_tutorial001.py ..... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02.py .... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_an.py .... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_an_py310.py . [
> 78%]
> ... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_an_py39.py .. [
> 78%]
> .. [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_py310.py .... [
> 79%]
> [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_03.py .. [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_03_an.py .. [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_03_an_py39.py .. [
> 79%]
> [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_an.py ..... [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_an_py39.py ..... [
> 80%]
> [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002.py ..... [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002_an.py ..... [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002_an_py39.py ..... [
> 80%]
> [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002_py39.py ..... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003.py ... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003_an.py ... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003_an_py39.py ... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003_py39.py ... [
> 81%]
> tests/test_tutorial/test_request_form_models/test_tutorial001.py ..... [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial001_an.py .... [
> 82%]
> . [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial001_an_py39.py . [
> 82%]
> .... [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial002.py ...... [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_an.py .... [
> 83%]
> .. [
> 83%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_an_py39.py . [
> 83%]
> ..... [
> 83%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_pv1.py sss [
> 83%]
> sss [
> 83%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_pv1_an.py s [
> 83%]
> sssss [
> 84%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_pv1_an_p39.py s
> [ 84%]
> sssss [
> 84%]
> tests/test_tutorial/test_request_forms/test_tutorial001.py ..... [
> 84%]
> tests/test_tutorial/test_request_forms/test_tutorial001_an.py ..... [
> 85%]
> tests/test_tutorial/test_request_forms/test_tutorial001_an_py39.py ..... [
> 85%]
> [
> 85%]
> tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py ... [
> 85%]
> .. [
> 85%]
> tests/test_tutorial/test_request_forms_and_files/test_tutorial001_an.py . [
> 85%]
> .... [
> 85%]
> tests/test_tutorial/test_request_forms_and_files/test_tutorial001_an_py39.py
> . [ 85%]
> .... [
> 86%]
> tests/test_tutorial/test_response_change_status_code/test_tutorial001.py . [
> 86%]
> [
> 86%]
> tests/test_tutorial/test_response_cookies/test_tutorial001.py . [
> 86%]
> tests/test_tutorial/test_response_cookies/test_tutorial002.py . [
> 86%]
> tests/test_tutorial/test_response_headers/test_tutorial001.py . [
> 86%]
> tests/test_tutorial/test_response_headers/test_tutorial002.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_01.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_01_py310.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_02.py .. [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_03.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_04.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_04_py310.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_05.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial003_05_py310.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial003_py310.py . [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial004.py ... [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial004_py310.py ... [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial004_py39.py ... [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial005.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial005_py310.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial006.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial006_py310.py .. [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1.py s [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1_py310.py s
> [ 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001_py310.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_an.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_an_py310.py .
> [ 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_an_py39.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_py310.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_an.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_an_py310.py .
> [ 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_an_py39.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_py310.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_security/test_tutorial001.py ... [
> 89%]
> tests/test_tutorial/test_security/test_tutorial001_an.py ... [
> 89%]
> tests/test_tutorial/test_security/test_tutorial001_an_py39.py ... [
> 89%]
> tests/test_tutorial/test_security/test_tutorial003.py ........ [
> 89%]
> tests/test_tutorial/test_security/test_tutorial003_an.py ........ [
> 90%]
> tests/test_tutorial/test_security/test_tutorial003_an_py310.py ........ [
> 90%]
> tests/test_tutorial/test_security/test_tutorial003_an_py39.py ........ [
> 91%]
> tests/test_tutorial/test_security/test_tutorial003_py310.py ........ [
> 91%]
> tests/test_tutorial/test_security/test_tutorial006.py .... [
> 91%]
> tests/test_tutorial/test_security/test_tutorial006_an.py .... [
> 91%]
> tests/test_tutorial/test_security/test_tutorial006_an_py39.py .... [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py .. [
> 92%]
> [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001_py310.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001_py39.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py .. [
> 92%]
> [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002_py310.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002_py39.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_settings/test_app02.py .. [
> 92%]
> tests/test_tutorial/test_settings/test_tutorial001.py . [
> 92%]
> tests/test_tutorial/test_settings/test_tutorial001_pv1.py s [
> 93%]
> tests/test_tutorial/test_sub_applications/test_tutorial001.py .. [
> 93%]
> tests/test_tutorial/test_templates/test_tutorial001.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main.py .. [
> 93%]
> tests/test_tutorial/test_testing/test_main_b.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_an.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_an_py310.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_an_py39.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_py310.py . [
> 93%]
> tests/test_tutorial/test_testing/test_tutorial001.py .. [
> 93%]
> tests/test_tutorial/test_testing/test_tutorial002.py .... [
> 93%]
> tests/test_tutorial/test_testing/test_tutorial003.py . [
> 93%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001.py ...... [
> 94%]
> .... [
> 94%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_an.py ... [
> 94%]
> ....... [
> 95%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py310.py .
> [ 95%]
> ...... [
> 95%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py39.py . [
> 95%]
> ...... [
> 95%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_py310.py . [
> 95%]
> ...... [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial001.py .. [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial002.py ...... [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial002_an.py ...... [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial002_an_py310.py ...... [
> 97%]
> tests/test_tutorial/test_websockets/test_tutorial002_an_py39.py ...... [
> 97%]
> tests/test_tutorial/test_websockets/test_tutorial002_py310.py ...... [
> 97%]
> tests/test_tutorial/test_websockets/test_tutorial003.py .. [
> 98%]
> tests/test_tutorial/test_websockets/test_tutorial003_py39.py .. [
> 98%]
> tests/test_tutorial/test_wsgi/test_tutorial001.py .. [
> 98%]
> tests/test_typing_python39.py . [
> 98%]
> tests/test_union_body.py .. [
> 98%]
> tests/test_union_inherited_body.py .. [
> 98%]
> tests/test_validate_response.py ...... [
> 98%]
> tests/test_validate_response_dataclass.py ... [
> 99%]
> tests/test_validate_response_recursive/test_validate_response_recursive_pv1.py
> s [ 99%]
> [
> 99%]
> tests/test_validate_response_recursive/test_validate_response_recursive_pv2.py
> . [ 99%]
> [
> 99%]
> tests/test_webhooks_security.py . [
> 99%]
> tests/test_ws_dependencies.py ... [
> 99%]
> tests/test_ws_router.py ............
> [100%]
>
> =================================== FAILURES
> ===================================
> ___________________ test_incorrect_multipart_installed_form
> ____________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7acf9b7950>
>
> def test_incorrect_multipart_installed_form(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:15:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> ________________ test_incorrect_multipart_installed_file_upload
> ________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7acf9b7e10>
>
> def test_incorrect_multipart_installed_file_upload(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:28:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> ________________ test_incorrect_multipart_installed_file_bytes
> _________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7acd01a7b0>
>
> def test_incorrect_multipart_installed_file_bytes(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:41:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> ________________ test_incorrect_multipart_installed_multi_form
> _________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7acf9d0160>
>
> def test_incorrect_multipart_installed_multi_form(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:54:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> _________________ test_incorrect_multipart_installed_form_file
> _________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7acf9d09e0>
>
> def test_incorrect_multipart_installed_form_file(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:67:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> _________________________ test_old_multipart_installed
> _________________________
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7acf948670>
>
> def test_old_multipart_installed(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> app = FastAPI()
>
> > @app.post("/")
>
> tests/test_multipart_installation.py:147:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> fastapi/routing.py:994: in decorator
> self.add_api_route(
> fastapi/routing.py:933: in add_api_route
> route = route_class(
> fastapi/routing.py:554: in __init__
> self.dependant = get_dependant(path=self.path_format, call=self.endpoint)
> fastapi/dependencies/utils.py:285: in get_dependant
> param_details = analyze_param(
> fastapi/dependencies/utils.py:482: in analyze_param
> ensure_multipart_is_installed()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def ensure_multipart_is_installed() -> None:
> try:
> from python_multipart import __version__
>
> # Import an attribute that can be mocked/deleted in testing
> assert __version__ > "0.0.12"
> except (ImportError, AssertionError):
> try:
> # __version__ is available in both multiparts, and can be
> mocked
> from multipart import __version__ # type:
> ignore[no-redef,import-untyped]
>
> assert __version__
> try:
> # parse_options_header is only available in the right
> multipart
> from multipart.multipart import ( # type:
> ignore[import-untyped]
> parse_options_header,
> )
>
> assert parse_options_header
> except ImportError:
> logger.error(multipart_incorrect_install_error)
> > raise RuntimeError(multipart_incorrect_install_error)
> > from None
> E RuntimeError: Form data requires "python-multipart" to be
> installed. It seems you installed "multipart" instead.
> E You can remove "multipart" with:
> E
> E pip uninstall multipart
> E
> E And then install "python-multipart" with:
> E
> E pip install python-multipart
>
> fastapi/dependencies/utils.py:112: RuntimeError
> ------------------------------ Captured log call
> -------------------------------
> ERROR fastapi:utils.py:111 Form data requires "python-multipart" to be
> installed. It seems you installed "multipart" instead.
> You can remove "multipart" with:
>
> pip uninstall multipart
>
> And then install "python-multipart" with:
>
> pip install python-multipart
> =============================== inline snapshot
> ================================
> =========================== short test summary info
> ============================
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_form
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_upload
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_bytes
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_multi_form
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_form_file
> FAILED tests/test_multipart_installation.py::test_old_multipart_installed -
> R...
> ========= 6 failed, 1736 passed, 99 skipped, 402 deselected in 16.45s
> ==========
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_fastapi/build; python3.13 -m pytest
> -W ignore::DeprecationWarning -W ignore::ResourceWarning --ignore=docs_src/
> --ignore=tests/test_default_response_class.py
> --ignore-glob=tests/test_tutorial/test_security/test_tutorial005*
> --ignore-glob=tests/test_tutorial/test_sql_databases/test_tutorial*
> --ignore=tests/test_tutorial/test_custom_response/test_tutorial009c.py
> --ignore=tests/test_response_by_alias.py -k " not test_get_custom_response
> and not test_root and not test_async_testing and not test_orjson_non_str_keys
> and not test_dependency_gets_exception and not test_path_operation_img and
> not test_fastapi_cli and not test_openapi "
> I: pybuild base:311: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_fastapi/build; python3.12 -m pytest
> -W ignore::DeprecationWarning -W ignore::ResourceWarning --ignore=docs_src/
> --ignore=tests/test_default_response_class.py
> --ignore-glob=tests/test_tutorial/test_security/test_tutorial005*
> --ignore-glob=tests/test_tutorial/test_sql_databases/test_tutorial*
> --ignore=tests/test_tutorial/test_custom_response/test_tutorial009c.py
> --ignore=tests/test_response_by_alias.py -k " not test_get_custom_response
> and not test_root and not test_async_testing and not test_orjson_non_str_keys
> and not test_dependency_gets_exception and not test_path_operation_img and
> not test_fastapi_cli and not test_openapi "
> ============================= test session starts
> ==============================
> platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: pyproject.toml
> plugins: anyio-4.6.2, inline-snapshot-0.17.1, typeguard-4.4.1
> collected 2243 items / 402 deselected / 1841 selected
>
> tests/test_additional_properties.py . [
> 0%]
> tests/test_additional_properties_bool.py .. [
> 0%]
> tests/test_additional_response_extra.py . [
> 0%]
> tests/test_additional_responses_router.py .... [
> 0%]
> tests/test_allow_inf_nan_in_enforcing.py ........................ [
> 1%]
> tests/test_ambiguous_params.py .. [
> 1%]
> tests/test_annotated.py ............ [
> 2%]
> tests/test_application.py ....... [
> 2%]
> tests/test_callable_endpoint.py . [
> 2%]
> tests/test_compat.py .ss...... [
> 3%]
> tests/test_computed_fields.py .. [
> 3%]
> tests/test_custom_middleware_exception.py .. [
> 3%]
> tests/test_custom_route_class.py .... [
> 3%]
> tests/test_custom_schema_fields.py .. [
> 3%]
> tests/test_custom_swagger_ui_redirect.py ... [
> 4%]
> tests/test_datastructures.py ...... [
> 4%]
> tests/test_datetime_custom_encoder.py .s [
> 4%]
> tests/test_default_response_class_router.py .............. [
> 5%]
> tests/test_dependency_cache.py .... [
> 5%]
> tests/test_dependency_class.py ........ [
> 5%]
> tests/test_dependency_contextmanager.py ...................... [
> 7%]
> tests/test_dependency_contextvars.py . [
> 7%]
> tests/test_dependency_duplicates.py .... [
> 7%]
> tests/test_dependency_normal_exceptions.py . [
> 7%]
> tests/test_dependency_overrides.py ................................ [
> 9%]
> tests/test_dependency_security_overrides.py ... [
> 9%]
> tests/test_deprecated_openapi_prefix.py . [
> 9%]
> tests/test_duplicate_models_openapi.py . [
> 9%]
> tests/test_empty_router.py .. [
> 9%]
> tests/test_enforce_once_required_parameter.py ... [
> 9%]
> tests/test_exception_handlers.py .... [
> 9%]
> tests/test_extra_routes.py ....... [
> 10%]
> tests/test_filter_pydantic_sub_model/test_filter_pydantic_sub_model_pv1.py s
> [ 10%]
> s [
> 10%]
> tests/test_filter_pydantic_sub_model_pv2.py .. [
> 10%]
> tests/test_forms_from_non_typing_sequences.py ... [
> 10%]
> tests/test_forms_single_model.py .... [
> 10%]
> tests/test_forms_single_param.py . [
> 11%]
> tests/test_generate_unique_id_function.py ........ [
> 11%]
> tests/test_generic_parameterless_depends.py . [
> 11%]
> tests/test_get_request_body.py . [
> 11%]
> tests/test_http_connection_injection.py .. [
> 11%]
> tests/test_include_route.py . [
> 11%]
> tests/test_include_router_defaults_overrides.py ........................ [
> 13%]
> .................. [
> 14%]
> tests/test_infer_param_optionality.py ........ [
> 14%]
> tests/test_inherited_custom_class.py .s [
> 14%]
> tests/test_invalid_path_param.py ....... [
> 14%]
> tests/test_invalid_sequence_param.py .... [
> 15%]
> tests/test_jsonable_encoder.py ......s....s....s.... [
> 16%]
> tests/test_local_docs.py ..... [
> 16%]
> tests/test_modules_same_name_body/test_main.py .... [
> 16%]
> tests/test_multi_body_errors.py ... [
> 16%]
> tests/test_multi_query_errors.py .. [
> 17%]
> tests/test_multipart_installation.py FFFFF.....F [
> 17%]
> tests/test_no_swagger_ui_redirect.py ... [
> 17%]
> tests/test_operations_signatures.py . [
> 17%]
> tests/test_param_class.py .. [
> 17%]
> tests/test_param_in_path_and_dependency.py . [
> 18%]
> tests/test_param_include_in_schema.py ....... [
> 18%]
> tests/test_params_repr.py ........................... [
> 19%]
> tests/test_path.py ..................................................... [
> 22%]
> ...................... [
> 23%]
> tests/test_put_no_body.py .. [
> 24%]
> tests/test_query.py ............................. [
> 25%]
> tests/test_read_with_orm_mode.py .s [
> 25%]
> tests/test_regex_deprecated_body.py ... [
> 25%]
> tests/test_regex_deprecated_params.py ... [
> 26%]
> tests/test_repeated_cookie_headers.py . [
> 26%]
> tests/test_repeated_dependency_schema.py .. [
> 26%]
> tests/test_repeated_parameter_alias.py . [
> 26%]
> tests/test_reponse_set_reponse_code_empty.py . [
> 26%]
> tests/test_required_noneable.py ....... [
> 26%]
> tests/test_response_change_status_code.py . [
> 26%]
> tests/test_response_code_no_body.py . [
> 26%]
> tests/test_response_model_as_return_annotation.py ...................... [
> 28%]
> ............... [
> 28%]
> tests/test_response_model_data_filter.py ... [
> 29%]
> tests/test_response_model_data_filter_no_inheritance.py ... [
> 29%]
> tests/test_response_model_include_exclude.py ...... [
> 29%]
> tests/test_response_model_invalid.py .... [
> 29%]
> tests/test_response_model_sub_types.py . [
> 29%]
> tests/test_route_scope.py ..... [
> 30%]
> tests/test_router_events.py ...... [
> 30%]
> tests/test_router_prefix_with_template.py . [
> 30%]
> tests/test_router_redirect_slashes.py .. [
> 30%]
> tests/test_schema_extra_examples.py . [
> 30%]
> tests/test_security_api_key_cookie.py .. [
> 30%]
> tests/test_security_api_key_cookie_description.py .. [
> 30%]
> tests/test_security_api_key_cookie_optional.py .. [
> 30%]
> tests/test_security_api_key_header.py .. [
> 31%]
> tests/test_security_api_key_header_description.py .. [
> 31%]
> tests/test_security_api_key_header_optional.py .. [
> 31%]
> tests/test_security_api_key_query.py .. [
> 31%]
> tests/test_security_api_key_query_description.py .. [
> 31%]
> tests/test_security_api_key_query_optional.py .. [
> 31%]
> tests/test_security_http_base.py .. [
> 31%]
> tests/test_security_http_base_description.py .. [
> 31%]
> tests/test_security_http_base_optional.py .. [
> 31%]
> tests/test_security_http_basic_optional.py .... [
> 32%]
> tests/test_security_http_basic_realm.py .... [
> 32%]
> tests/test_security_http_basic_realm_description.py .... [
> 32%]
> tests/test_security_http_bearer.py ... [
> 32%]
> tests/test_security_http_bearer_description.py ... [
> 32%]
> tests/test_security_http_bearer_optional.py ... [
> 33%]
> tests/test_security_http_digest.py ... [
> 33%]
> tests/test_security_http_digest_description.py ... [
> 33%]
> tests/test_security_http_digest_optional.py ... [
> 33%]
> tests/test_security_oauth2.py ....... [
> 33%]
> tests/test_security_oauth2_authorization_code_bearer.py ... [
> 34%]
> tests/test_security_oauth2_authorization_code_bearer_description.py ... [
> 34%]
> tests/test_security_oauth2_optional.py ....... [
> 34%]
> tests/test_security_oauth2_optional_description.py ....... [
> 34%]
> tests/test_security_oauth2_password_bearer_optional.py ... [
> 35%]
> tests/test_security_oauth2_password_bearer_optional_description.py ... [
> 35%]
> tests/test_security_openid_connect.py ... [
> 35%]
> tests/test_security_openid_connect_description.py ... [
> 35%]
> tests/test_security_openid_connect_optional.py ... [
> 35%]
> tests/test_serialize_response.py ... [
> 35%]
> tests/test_serialize_response_dataclass.py ....... [
> 36%]
> tests/test_serialize_response_model.py ........ [
> 36%]
> tests/test_skip_defaults.py ..... [
> 37%]
> tests/test_starlette_exception.py ...... [
> 37%]
> tests/test_starlette_urlconvertors.py ..... [
> 37%]
> tests/test_sub_callbacks.py . [
> 37%]
> tests/test_swagger_ui_init_oauth.py .. [
> 37%]
> tests/test_tuples.py ...... [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial001.py .. [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial002.py . [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial003.py .. [
> 38%]
> tests/test_tutorial/test_additional_responses/test_tutorial004.py . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001.py .. [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_an.py . [
> 38%]
> . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_an_py310.py
> . [ 38%]
> . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_an_py39.py
> . [ 38%]
> . [
> 38%]
> tests/test_tutorial/test_additional_status_codes/test_tutorial001_py310.py .
> [ 38%]
> . [
> 39%]
> tests/test_tutorial/test_advanced_middleware/test_tutorial001.py . [
> 39%]
> tests/test_tutorial/test_advanced_middleware/test_tutorial002.py . [
> 39%]
> tests/test_tutorial/test_advanced_middleware/test_tutorial003.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial001.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_an.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_an_py310.py . [
> 39%]
> [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_an_py39.py . [
> 39%]
> tests/test_tutorial/test_background_tasks/test_tutorial002_py310.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py . [
> 39%]
> tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py . [
> 39%]
> tests/test_tutorial/test_bigger_applications/test_main.py .............. [
> 40%]
> ........ [
> 40%]
> tests/test_tutorial/test_bigger_applications/test_main_an.py ........... [
> 41%]
> ........... [
> 42%]
> tests/test_tutorial/test_bigger_applications/test_main_an_py39.py ...... [
> 42%]
> ................ [
> 43%]
> tests/test_tutorial/test_body/test_tutorial001.py ............... [
> 44%]
> tests/test_tutorial/test_body/test_tutorial001_py310.py ............... [
> 44%]
> tests/test_tutorial/test_body_fields/test_tutorial001.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_an.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_an_py310.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_an_py39.py ... [
> 45%]
> tests/test_tutorial/test_body_fields/test_tutorial001_py310.py ... [
> 45%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001.py .... [
> 45%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_an.py ... [
> 46%]
> . [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_an_py310.py .
> [ 46%]
> ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_an_py39.py . [
> 46%]
> ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial001_py310.py . [
> 46%]
> ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003.py ... [
> 46%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_an.py ... [
> 47%]
> [
> 47%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py310.py .
> [ 47%]
> .. [
> 47%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py39.py . [
> 47%]
> .. [
> 47%]
> tests/test_tutorial/test_body_multiple_params/test_tutorial003_py310.py . [
> 47%]
> .. [
> 47%]
> tests/test_tutorial/test_body_nested_models/test_tutorial009.py .. [
> 47%]
> tests/test_tutorial/test_body_nested_models/test_tutorial009_py39.py .. [
> 47%]
> tests/test_tutorial/test_body_updates/test_tutorial001.py .. [
> 47%]
> tests/test_tutorial/test_body_updates/test_tutorial001_py310.py .. [
> 48%]
> tests/test_tutorial/test_body_updates/test_tutorial001_py39.py .. [
> 48%]
> tests/test_tutorial/test_conditional_openapi/test_tutorial001.py .. [
> 48%]
> tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py .. [
> 48%]
> tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py .. [
> 48%]
> tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py .. [
> 48%]
> tests/test_tutorial/test_cookie_param_models/test_tutorial001.py ....... [
> 48%]
> ............. [
> 49%]
> tests/test_tutorial/test_cookie_param_models/test_tutorial002.py .....ss [
> 50%]
> sss.....sssss.....sssss.....sssss [
> 51%]
> tests/test_tutorial/test_cookie_params/test_tutorial001.py .... [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_an.py .... [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_an_py310.py .... [
> 52%]
> [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_an_py39.py .... [
> 52%]
> tests/test_tutorial/test_cookie_params/test_tutorial001_py310.py .... [
> 52%]
> tests/test_tutorial/test_cors/test_tutorial001.py . [
> 53%]
> tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py .... [
> 53%]
> tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py .... [
> 53%]
> tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py .. [
> 53%]
> . [
> 53%]
> tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py .. [
> 53%]
> [
> 53%]
> tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py .. [
> 53%]
> [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial005.py . [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial006.py . [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial006b.py . [
> 53%]
> tests/test_tutorial/test_custom_response/test_tutorial006c.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial007.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial008.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial009.py . [
> 54%]
> tests/test_tutorial/test_custom_response/test_tutorial009b.py . [
> 54%]
> tests/test_tutorial/test_dataclasses/test_tutorial001.py .. [
> 54%]
> tests/test_tutorial/test_dataclasses/test_tutorial002.py . [
> 54%]
> tests/test_tutorial/test_dataclasses/test_tutorial003.py .. [
> 54%]
> tests/test_tutorial/test_dependencies/test_tutorial001.py ..... [
> 54%]
> tests/test_tutorial/test_dependencies/test_tutorial001_an.py ..... [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial001_an_py310.py ..... [
> 55%]
> [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial001_an_py39.py ..... [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial001_py310.py ..... [
> 55%]
> tests/test_tutorial/test_dependencies/test_tutorial004.py ...... [
> 56%]
> tests/test_tutorial/test_dependencies/test_tutorial004_an.py ...... [
> 56%]
> tests/test_tutorial/test_dependencies/test_tutorial004_an_py310.py ..... [
> 56%]
> . [
> 56%]
> tests/test_tutorial/test_dependencies/test_tutorial004_an_py39.py ...... [
> 57%]
> [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial004_py310.py ...... [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial006.py .... [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial006_an.py .... [
> 57%]
> tests/test_tutorial/test_dependencies/test_tutorial006_an_py39.py .... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008b.py ... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008b_an.py ... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008b_an_py39.py ... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008c.py .... [
> 58%]
> tests/test_tutorial/test_dependencies/test_tutorial008c_an.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008c_an_py39.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008d.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008d_an.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial008d_an_py39.py .... [
> 59%]
> tests/test_tutorial/test_dependencies/test_tutorial012.py ........ [
> 60%]
> tests/test_tutorial/test_dependencies/test_tutorial012_an.py ........ [
> 60%]
> tests/test_tutorial/test_dependencies/test_tutorial012_an_py39.py ...... [
> 61%]
> .. [
> 61%]
> tests/test_tutorial/test_events/test_tutorial001.py . [
> 61%]
> tests/test_tutorial/test_events/test_tutorial002.py . [
> 61%]
> tests/test_tutorial/test_events/test_tutorial003.py . [
> 61%]
> tests/test_tutorial/test_extending_openapi/test_tutorial001.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_an.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py310.py . [
> 61%]
> [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py39.py . [
> 61%]
> tests/test_tutorial/test_extra_data_types/test_tutorial001_py310.py . [
> 61%]
> tests/test_tutorial/test_extra_models/test_tutorial003.py .. [
> 61%]
> tests/test_tutorial/test_extra_models/test_tutorial003_py310.py .. [
> 61%]
> tests/test_tutorial/test_extra_models/test_tutorial004.py . [
> 62%]
> tests/test_tutorial/test_extra_models/test_tutorial004_py39.py . [
> 62%]
> tests/test_tutorial/test_extra_models/test_tutorial005.py . [
> 62%]
> tests/test_tutorial/test_extra_models/test_tutorial005_py39.py . [
> 62%]
> tests/test_tutorial/test_first_steps/test_tutorial001.py .. [
> 62%]
> tests/test_tutorial/test_generate_clients/test_tutorial003.py ... [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial001.py .. [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial002.py .. [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial003.py .. [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial004.py ... [
> 62%]
> tests/test_tutorial/test_handling_errors/test_tutorial005.py .. [
> 63%]
> tests/test_tutorial/test_handling_errors/test_tutorial006.py ... [
> 63%]
> tests/test_tutorial/test_header_param_models/test_tutorial001.py ....... [
> 63%]
> ................. [
> 64%]
> tests/test_tutorial/test_header_param_models/test_tutorial002.py .....ss [
> 64%]
> sss.....sssss.....sssss.....sssss [
> 66%]
> tests/test_tutorial/test_header_params/test_tutorial001.py ... [
> 66%]
> tests/test_tutorial/test_header_params/test_tutorial001_an.py ... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial001_an_py310.py ... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial001_py310.py ... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial002.py .... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial002_an.py .... [
> 67%]
> tests/test_tutorial/test_header_params/test_tutorial002_an_py310.py .... [
> 68%]
> [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial002_an_py39.py .... [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial002_py310.py .... [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003.py ... [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_an.py .. [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_an_py310.py .. [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_an_py39.py .. [
> 68%]
> tests/test_tutorial/test_header_params/test_tutorial003_py310.py .. [
> 69%]
> tests/test_tutorial/test_metadata/test_tutorial001.py . [
> 69%]
> tests/test_tutorial/test_metadata/test_tutorial001_1.py . [
> 69%]
> tests/test_tutorial/test_metadata/test_tutorial004.py . [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py
> . [ 69%]
> [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py
> . [ 69%]
> .. [
> 69%]
> tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007_pv1.py
> s [ 69%]
> ss [
> 69%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py .
> [ 69%]
> . [
> 69%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py .
> [ 70%]
> [
> 70%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial005_py310.py
> . [ 70%]
> [
> 70%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial005_py39.py
> . [ 70%]
> [
> 70%]
> tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py .
> [ 70%]
> .. [
> 70%]
> tests/test_tutorial/test_path_params/test_tutorial004.py . [
> 70%]
> tests/test_tutorial/test_path_params/test_tutorial005.py .... [
> 70%]
> tests/test_tutorial/test_query_param_models/test_tutorial001.py ........ [
> 70%]
> ................ [
> 71%]
> tests/test_tutorial/test_query_param_models/test_tutorial002.py ......ss [
> 72%]
> ssss......ssssss......ssssss......ssssss [
> 74%]
> tests/test_tutorial/test_query_params/test_tutorial005.py .. [
> 74%]
> tests/test_tutorial/test_query_params/test_tutorial006.py .. [
> 74%]
> tests/test_tutorial/test_query_params/test_tutorial006_py310.py .. [
> 74%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py . [
> 74%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py310.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py39.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial010_py310.py
> . [ 75%]
> ... [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py . [
> 75%]
> . [
> 75%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py310.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py310.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py . [
> 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial012_py39.py
> . [ 76%]
> . [
> 76%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py . [
> 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an_py39.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py . [
> 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py310.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py39.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_query_params_str_validations/test_tutorial014_py310.py
> . [ 77%]
> . [
> 77%]
> tests/test_tutorial/test_request_files/test_tutorial001.py ..... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02.py .... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_an.py .... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_an_py310.py . [
> 78%]
> ... [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_an_py39.py .. [
> 78%]
> .. [
> 78%]
> tests/test_tutorial/test_request_files/test_tutorial001_02_py310.py .... [
> 79%]
> [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_03.py .. [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_03_an.py .. [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_03_an_py39.py .. [
> 79%]
> [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_an.py ..... [
> 79%]
> tests/test_tutorial/test_request_files/test_tutorial001_an_py39.py ..... [
> 80%]
> [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002.py ..... [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002_an.py ..... [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002_an_py39.py ..... [
> 80%]
> [
> 80%]
> tests/test_tutorial/test_request_files/test_tutorial002_py39.py ..... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003.py ... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003_an.py ... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003_an_py39.py ... [
> 81%]
> tests/test_tutorial/test_request_files/test_tutorial003_py39.py ... [
> 81%]
> tests/test_tutorial/test_request_form_models/test_tutorial001.py ..... [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial001_an.py .... [
> 82%]
> . [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial001_an_py39.py . [
> 82%]
> .... [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial002.py ...... [
> 82%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_an.py .... [
> 83%]
> .. [
> 83%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_an_py39.py . [
> 83%]
> ..... [
> 83%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_pv1.py sss [
> 83%]
> sss [
> 83%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_pv1_an.py s [
> 83%]
> sssss [
> 84%]
> tests/test_tutorial/test_request_form_models/test_tutorial002_pv1_an_p39.py s
> [ 84%]
> sssss [
> 84%]
> tests/test_tutorial/test_request_forms/test_tutorial001.py ..... [
> 84%]
> tests/test_tutorial/test_request_forms/test_tutorial001_an.py ..... [
> 85%]
> tests/test_tutorial/test_request_forms/test_tutorial001_an_py39.py ..... [
> 85%]
> [
> 85%]
> tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py ... [
> 85%]
> .. [
> 85%]
> tests/test_tutorial/test_request_forms_and_files/test_tutorial001_an.py . [
> 85%]
> .... [
> 85%]
> tests/test_tutorial/test_request_forms_and_files/test_tutorial001_an_py39.py
> . [ 85%]
> .... [
> 86%]
> tests/test_tutorial/test_response_change_status_code/test_tutorial001.py . [
> 86%]
> [
> 86%]
> tests/test_tutorial/test_response_cookies/test_tutorial001.py . [
> 86%]
> tests/test_tutorial/test_response_cookies/test_tutorial002.py . [
> 86%]
> tests/test_tutorial/test_response_headers/test_tutorial001.py . [
> 86%]
> tests/test_tutorial/test_response_headers/test_tutorial002.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_01.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_01_py310.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_02.py .. [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_03.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_04.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_04_py310.py . [
> 86%]
> tests/test_tutorial/test_response_model/test_tutorial003_05.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial003_05_py310.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial003_py310.py . [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial004.py ... [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial004_py310.py ... [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial004_py39.py ... [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial005.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial005_py310.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial006.py .. [
> 87%]
> tests/test_tutorial/test_response_model/test_tutorial006_py310.py .. [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1.py s [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1_py310.py s
> [ 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial001_py310.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_an.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_an_py310.py .
> [ 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_an_py39.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial004_py310.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_an.py . [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_an_py310.py .
> [ 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_an_py39.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_schema_extra_example/test_tutorial005_py310.py . [
> 88%]
> [
> 88%]
> tests/test_tutorial/test_security/test_tutorial001.py ... [
> 89%]
> tests/test_tutorial/test_security/test_tutorial001_an.py ... [
> 89%]
> tests/test_tutorial/test_security/test_tutorial001_an_py39.py ... [
> 89%]
> tests/test_tutorial/test_security/test_tutorial003.py ........ [
> 89%]
> tests/test_tutorial/test_security/test_tutorial003_an.py ........ [
> 90%]
> tests/test_tutorial/test_security/test_tutorial003_an_py310.py ........ [
> 90%]
> tests/test_tutorial/test_security/test_tutorial003_an_py39.py ........ [
> 91%]
> tests/test_tutorial/test_security/test_tutorial003_py310.py ........ [
> 91%]
> tests/test_tutorial/test_security/test_tutorial006.py .... [
> 91%]
> tests/test_tutorial/test_security/test_tutorial006_an.py .... [
> 91%]
> tests/test_tutorial/test_security/test_tutorial006_an_py39.py .... [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py .. [
> 92%]
> [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001_py310.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001_py39.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py .. [
> 92%]
> [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002_py310.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002_py39.py .
> [ 92%]
> . [
> 92%]
> tests/test_tutorial/test_settings/test_app02.py .. [
> 92%]
> tests/test_tutorial/test_settings/test_tutorial001.py . [
> 92%]
> tests/test_tutorial/test_settings/test_tutorial001_pv1.py s [
> 93%]
> tests/test_tutorial/test_sub_applications/test_tutorial001.py .. [
> 93%]
> tests/test_tutorial/test_templates/test_tutorial001.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main.py .. [
> 93%]
> tests/test_tutorial/test_testing/test_main_b.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_an.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_an_py310.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_an_py39.py . [
> 93%]
> tests/test_tutorial/test_testing/test_main_b_py310.py . [
> 93%]
> tests/test_tutorial/test_testing/test_tutorial001.py .. [
> 93%]
> tests/test_tutorial/test_testing/test_tutorial002.py .... [
> 93%]
> tests/test_tutorial/test_testing/test_tutorial003.py . [
> 93%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001.py ...... [
> 94%]
> .... [
> 94%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_an.py ... [
> 94%]
> ....... [
> 95%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py310.py .
> [ 95%]
> ...... [
> 95%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py39.py . [
> 95%]
> ...... [
> 95%]
> tests/test_tutorial/test_testing_dependencies/test_tutorial001_py310.py . [
> 95%]
> ...... [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial001.py .. [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial002.py ...... [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial002_an.py ...... [
> 96%]
> tests/test_tutorial/test_websockets/test_tutorial002_an_py310.py ...... [
> 97%]
> tests/test_tutorial/test_websockets/test_tutorial002_an_py39.py ...... [
> 97%]
> tests/test_tutorial/test_websockets/test_tutorial002_py310.py ...... [
> 97%]
> tests/test_tutorial/test_websockets/test_tutorial003.py .. [
> 98%]
> tests/test_tutorial/test_websockets/test_tutorial003_py39.py .. [
> 98%]
> tests/test_tutorial/test_wsgi/test_tutorial001.py .. [
> 98%]
> tests/test_typing_python39.py . [
> 98%]
> tests/test_union_body.py .. [
> 98%]
> tests/test_union_inherited_body.py .. [
> 98%]
> tests/test_validate_response.py ...... [
> 98%]
> tests/test_validate_response_dataclass.py ... [
> 99%]
> tests/test_validate_response_recursive/test_validate_response_recursive_pv1.py
> s [ 99%]
> [
> 99%]
> tests/test_validate_response_recursive/test_validate_response_recursive_pv2.py
> . [ 99%]
> [
> 99%]
> tests/test_webhooks_security.py . [
> 99%]
> tests/test_ws_dependencies.py ... [
> 99%]
> tests/test_ws_router.py ............
> [100%]
>
> =================================== FAILURES
> ===================================
> ___________________ test_incorrect_multipart_installed_form
> ____________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efdd448ba70>
>
> def test_incorrect_multipart_installed_form(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:15:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> ________________ test_incorrect_multipart_installed_file_upload
> ________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efdd445f2f0>
>
> def test_incorrect_multipart_installed_file_upload(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:28:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> ________________ test_incorrect_multipart_installed_file_bytes
> _________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efdd445d220>
>
> def test_incorrect_multipart_installed_file_bytes(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:41:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> ________________ test_incorrect_multipart_installed_multi_form
> _________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efdd6ddb8c0>
>
> def test_incorrect_multipart_installed_multi_form(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:54:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> _________________ test_incorrect_multipart_installed_form_file
> _________________
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> > __import__(used)
> E ModuleNotFoundError: No module named 'multipart.multipart';
> 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:77: ModuleNotFoundError
>
> The above exception was the direct cause of the following exception:
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efdd6dd97c0>
>
> def test_incorrect_multipart_installed_form_file(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> > monkeypatch.delattr("multipart.multipart.parse_options_header",
> > raising=False)
>
> tests/test_multipart_installation.py:67:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:102: in
> derive_importpath
> target = resolve(module)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> name = 'multipart.multipart'
>
> def resolve(name: str) -> object:
> # Simplified from zope.dottedname.
> parts = name.split(".")
>
> used = parts.pop(0)
> found: object = __import__(used)
> for part in parts:
> used += "." + part
> try:
> found = getattr(found, part)
> except AttributeError:
> pass
> else:
> continue
> # We use explicit un-nesting of the handling block in order
> # to avoid nested exceptions.
> try:
> __import__(used)
> except ImportError as ex:
> expected = str(ex).split()[-1]
> if expected == used:
> raise
> else:
> > raise ImportError(f"import error in {used}: {ex}") from ex
> E ImportError: import error in multipart.multipart: No
> module named 'multipart.multipart'; 'multipart' is not a package
>
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py:83: ImportError
> _________________________ test_old_multipart_installed
> _________________________
>
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efdd4f216d0>
>
> def test_old_multipart_installed(monkeypatch):
> monkeypatch.setattr("python_multipart.__version__", "0.0.12")
> with warnings.catch_warnings(record=True):
> warnings.simplefilter("always")
> app = FastAPI()
>
> > @app.post("/")
>
> tests/test_multipart_installation.py:147:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> fastapi/routing.py:994: in decorator
> self.add_api_route(
> fastapi/routing.py:933: in add_api_route
> route = route_class(
> fastapi/routing.py:554: in __init__
> self.dependant = get_dependant(path=self.path_format, call=self.endpoint)
> fastapi/dependencies/utils.py:285: in get_dependant
> param_details = analyze_param(
> fastapi/dependencies/utils.py:482: in analyze_param
> ensure_multipart_is_installed()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> def ensure_multipart_is_installed() -> None:
> try:
> from python_multipart import __version__
>
> # Import an attribute that can be mocked/deleted in testing
> assert __version__ > "0.0.12"
> except (ImportError, AssertionError):
> try:
> # __version__ is available in both multiparts, and can be
> mocked
> from multipart import __version__ # type:
> ignore[no-redef,import-untyped]
>
> assert __version__
> try:
> # parse_options_header is only available in the right
> multipart
> from multipart.multipart import ( # type:
> ignore[import-untyped]
> parse_options_header,
> )
>
> assert parse_options_header
> except ImportError:
> logger.error(multipart_incorrect_install_error)
> > raise RuntimeError(multipart_incorrect_install_error)
> > from None
> E RuntimeError: Form data requires "python-multipart" to be
> installed. It seems you installed "multipart" instead.
> E You can remove "multipart" with:
> E
> E pip uninstall multipart
> E
> E And then install "python-multipart" with:
> E
> E pip install python-multipart
>
> fastapi/dependencies/utils.py:112: RuntimeError
> ------------------------------ Captured log call
> -------------------------------
> ERROR fastapi:utils.py:111 Form data requires "python-multipart" to be
> installed. It seems you installed "multipart" instead.
> You can remove "multipart" with:
>
> pip uninstall multipart
>
> And then install "python-multipart" with:
>
> pip install python-multipart
> =============================== inline snapshot
> ================================
> =========================== short test summary info
> ============================
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_form
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_upload
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_file_bytes
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_multi_form
> FAILED
> tests/test_multipart_installation.py::test_incorrect_multipart_installed_form_file
> FAILED tests/test_multipart_installation.py::test_old_multipart_installed -
> R...
> ========= 6 failed, 1736 passed, 99 skipped, 402 deselected in 17.48s
> ==========
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_fastapi/build; python3.12 -m pytest
> -W ignore::DeprecationWarning -W ignore::ResourceWarning --ignore=docs_src/
> --ignore=tests/test_default_response_class.py
> --ignore-glob=tests/test_tutorial/test_security/test_tutorial005*
> --ignore-glob=tests/test_tutorial/test_sql_databases/test_tutorial*
> --ignore=tests/test_tutorial/test_custom_response/test_tutorial009c.py
> --ignore=tests/test_response_by_alias.py -k " not test_get_custom_response
> and not test_root and not test_async_testing and not test_orjson_non_str_keys
> and not test_dependency_gets_exception and not test_path_operation_img and
> not test_fastapi_cli and not test_openapi "
> rm -fr -- /tmp/dh-xdg-rundir-AwFLZOjY
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13
> 3.12" returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2024/12/28/fastapi_0.115.5-2_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20241228;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20241228&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.