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.

Reply via email to