Sourcing python-remove-tests-dir-hook Sourcing python-catch-conflicts-hook.sh Sourcing python-remove-bin-bytecode-hook.sh Sourcing setuptools-build-hook Using setuptoolsBuildPhase Using setuptoolsShellHook Sourcing pip-install-hook Using pipInstallPhase Sourcing python-imports-check-hook.sh Using pythonImportsCheckPhase Sourcing python-namespaces-hook Sourcing setuptools-check-hook Using setuptoolsCheckPhase Sourcing pytest-check-hook Using pytestCheckPhase Removing setuptoolsCheckPhase @nix { "action": "setPhase", "phase": "unpackPhase" } unpacking sources unpacking source archive /nix/store/vwnakz6k8d6raj70mgf1i9akxng3hz4q-source source root is source setting SOURCE_DATE_EPOCH to timestamp 315619200 of file source/versioneer.py @nix { "action": "setPhase", "phase": "patchPhase" } patching sources @nix { "action": "setPhase", "phase": "configurePhase" } configuring no configure script, doing nothing @nix { "action": "setPhase", "phase": "buildPhase" } building Executing setuptoolsBuildPhase running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/flask_limiter copying flask_limiter/errors.py -> build/lib/flask_limiter copying flask_limiter/extension.py -> build/lib/flask_limiter copying flask_limiter/util.py -> build/lib/flask_limiter copying flask_limiter/_version.py -> build/lib/flask_limiter copying flask_limiter/version.py -> build/lib/flask_limiter copying flask_limiter/__init__.py -> build/lib/flask_limiter copying flask_limiter/wrappers.py -> build/lib/flask_limiter UPDATING build/lib/flask_limiter/_version.py set build/lib/flask_limiter/_version.py to '1.4' installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/errors.py -> build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/extension.py -> build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/util.py -> build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/_version.py -> build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/version.py -> build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/__init__.py -> build/bdist.linux-x86_64/wheel/flask_limiter copying build/lib/flask_limiter/wrappers.py -> build/bdist.linux-x86_64/wheel/flask_limiter running install_egg_info running egg_info creating Flask_Limiter.egg-info writing Flask_Limiter.egg-info/PKG-INFO writing dependency_links to Flask_Limiter.egg-info/dependency_links.txt writing requirements to Flask_Limiter.egg-info/requires.txt writing top-level names to Flask_Limiter.egg-info/top_level.txt writing manifest file 'Flask_Limiter.egg-info/SOURCES.txt' reading manifest file 'Flask_Limiter.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE.txt' writing manifest file 'Flask_Limiter.egg-info/SOURCES.txt' Copying Flask_Limiter.egg-info to build/bdist.linux-x86_64/wheel/Flask_Limiter-1.4-py3.7.egg-info running install_scripts adding license file "LICENSE.txt" (matched pattern "LICEN[CS]E*") creating build/bdist.linux-x86_64/wheel/Flask_Limiter-1.4.dist-info/WHEEL creating 'dist/Flask_Limiter-1.4-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'flask_limiter/__init__.py' adding 'flask_limiter/_version.py' adding 'flask_limiter/errors.py' adding 'flask_limiter/extension.py' adding 'flask_limiter/util.py' adding 'flask_limiter/version.py' adding 'flask_limiter/wrappers.py' adding 'Flask_Limiter-1.4.dist-info/LICENSE.txt' adding 'Flask_Limiter-1.4.dist-info/METADATA' adding 'Flask_Limiter-1.4.dist-info/WHEEL' adding 'Flask_Limiter-1.4.dist-info/top_level.txt' adding 'Flask_Limiter-1.4.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Finished executing setuptoolsBuildPhase @nix { "action": "setPhase", "phase": "installPhase" } installing Executing pipInstallPhase /build/source/dist /build/source Processing ./Flask_Limiter-1.4-py3-none-any.whl Requirement already satisfied: limits in /nix/store/hscsfl2b0ibmszy17yn36l26988hv2lz-python3.7-limits-1.5.1/lib/python3.7/site-packages (from Flask-Limiter==1.4) (1.5.1) Requirement already satisfied: six>=1.4.1 in /nix/store/cz0zwcgmhgrz3mv722xnmfnnbg8ybrvf-python3.7-six-1.16.0/lib/python3.7/site-packages (from Flask-Limiter==1.4) (1.16.0) Requirement already satisfied: Flask>=0.8 in /nix/store/558j4scy6xlwncn1b4psjq03giy53k9z-python3.7-Flask-2.0.1/lib/python3.7/site-packages (from Flask-Limiter==1.4) (2.0.1) Requirement already satisfied: click>=7.1.2 in /nix/store/vcypmcsdix374rrd19962i0dbizfdkjm-python3.7-click-8.0.1/lib/python3.7/site-packages (from Flask>=0.8->Flask-Limiter==1.4) (8.0.1) Requirement already satisfied: itsdangerous>=2.0 in /nix/store/7ldi4b7lmdkbbfd63bbdalram86qjg64-python3.7-itsdangerous-2.0.1/lib/python3.7/site-packages (from Flask>=0.8->Flask-Limiter==1.4) (2.0.1) Requirement already satisfied: Jinja2>=3.0 in /nix/store/gpc8yl01mj0xni96xib5wvrn1348qy0d-python3.7-Jinja2-3.0.1/lib/python3.7/site-packages (from Flask>=0.8->Flask-Limiter==1.4) (3.0.1) Requirement already satisfied: Werkzeug>=2.0 in /nix/store/r8iz3zjfxr905r58cdmrx804mjzdsk5g-python3.7-werkzeug-2.0.1/lib/python3.7/site-packages (from Flask>=0.8->Flask-Limiter==1.4) (2.0.1) Requirement already satisfied: importlib-metadata in /nix/store/njxn9irhqdk7ypq95jlxkk34qp9i3jw0-python3.7-importlib-metadata-4.6.4/lib/python3.7/site-packages (from click>=7.1.2->Flask>=0.8->Flask-Limiter==1.4) (4.6.4) Requirement already satisfied: MarkupSafe>=2.0 in /nix/store/fwhx0cwrqyswl6vajd2nizymsak88bkj-python3.7-markupsafe-2.0.1/lib/python3.7/site-packages (from Jinja2>=3.0->Flask>=0.8->Flask-Limiter==1.4) (2.0.1) Requirement already satisfied: zipp>=0.5 in /nix/store/77xq9qidrg94c2ddwcv7c8awphndir66-python3.7-zipp-3.5.0/lib/python3.7/site-packages (from importlib-metadata->click>=7.1.2->Flask>=0.8->Flask-Limiter==1.4) (3.5.0) Requirement already satisfied: typing-extensions>=3.6.4 in /nix/store/czmqjwmwmnb3i5nv4jhsrdvsrpblfs1w-python3.7-typing_extensions-3.10.0.2/lib/python3.7/site-packages (from importlib-metadata->click>=7.1.2->Flask>=0.8->Flask-Limiter==1.4) (3.10.0.2) Installing collected packages: Flask-Limiter Successfully installed Flask-Limiter-1.4 /build/source Finished executing pipInstallPhase @nix { "action": "setPhase", "phase": "fixupPhase" } post-installation fixup shrinking RPATHs of ELF executables and libraries in /nix/store/yxssljlybgc6mc7ijr6zp9q2zjw6c6d7-python3.7-Flask-Limiter-1.4 strip is /nix/store/a4mmjm3bblxwp8h53bcfx3dly80ib0ba-binutils-2.35.1/bin/strip stripping (with command strip and flags -S) in /nix/store/yxssljlybgc6mc7ijr6zp9q2zjw6c6d7-python3.7-Flask-Limiter-1.4/lib patching script interpreter paths in /nix/store/yxssljlybgc6mc7ijr6zp9q2zjw6c6d7-python3.7-Flask-Limiter-1.4 checking for references to /build/ in /nix/store/yxssljlybgc6mc7ijr6zp9q2zjw6c6d7-python3.7-Flask-Limiter-1.4... Executing pythonRemoveTestsDir Finished executing pythonRemoveTestsDir @nix { "action": "setPhase", "phase": "installCheckPhase" } running install tests no Makefile or custom installCheckPhase, doing nothing @nix { "action": "setPhase", "phase": "pythonCatchConflictsPhase" } pythonCatchConflictsPhase @nix { "action": "setPhase", "phase": "pythonRemoveBinBytecodePhase" } pythonRemoveBinBytecodePhase @nix { "action": "setPhase", "phase": "pythonImportsCheckPhase" } pythonImportsCheckPhase Executing pythonImportsCheckPhase Check whether the following modules can be imported: flask_limiter @nix { "action": "setPhase", "phase": "pytestCheckPhase" } pytestCheckPhase Executing pytestCheckPhase ============================= test session starts ============================== platform linux -- Python 3.7.11, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 -- /nix/store/vpyhx3jp6s4ffpfp2ci4hqbg90a05izp-python3-3.7.11/bin/python3.7 cachedir: .pytest_cache rootdir: /build/source, configfile: pytest.ini collecting ...  collecting 73 items  collected 73 items / 10 deselected / 63 selected  tests/test_blueprints.py::test_blueprint PASSED tests/test_blueprints.py::test_register_blueprint PASSED tests/test_blueprints.py::test_invalid_decorated_static_limit_blueprint PASSED tests/test_blueprints.py::test_invalid_decorated_dynamic_limits_blueprint PASSED tests/test_configuration.py::test_invalid_strategy PASSED tests/test_configuration.py::test_invalid_storage_string PASSED tests/test_configuration.py::test_invalid_config_with_disabled PASSED tests/test_configuration.py::test_uninitialized_limiter PASSED tests/test_decorators.py::test_multiple_decorators PASSED tests/test_decorators.py::test_exempt_routes PASSED tests/test_decorators.py::test_decorated_limit_with_conditional_deduction PASSED tests/test_decorators.py::test_shared_limit_with_conditional_deduction PASSED tests/test_decorators.py::test_header_ordering_with_conditional_deductions PASSED tests/test_decorators.py::test_decorated_limits_with_combined_defaults PASSED tests/test_decorators.py::test_decorated_limit_with_combined_defaults_per_method PASSED tests/test_decorators.py::test_decorated_dynamic_limits PASSED tests/test_decorators.py::test_invalid_decorated_dynamic_limits PASSED tests/test_decorators.py::test_invalid_decorated_static_limits PASSED tests/test_decorators.py::test_named_shared_limit PASSED tests/test_decorators.py::test_dynamic_shared_limit PASSED tests/test_decorators.py::test_conditional_limits PASSED tests/test_decorators.py::test_conditional_shared_limits PASSED tests/test_decorators.py::test_whitelisting PASSED tests/test_decorators.py::test_separate_method_limits PASSED tests/test_decorators.py::test_explicit_method_limits PASSED tests/test_decorators.py::test_decorated_limit_immediate PASSED tests/test_decorators.py::test_decorated_shared_limit_immediate PASSED tests/test_decorators.py::test_backward_compatibility_with_incorrect_ordering PASSED tests/test_deprecation.py::test_insecure_setup PASSED tests/test_deprecation.py::test_with_global_limits PASSED tests/test_error_handling.py::test_error_message PASSED tests/test_error_handling.py::test_custom_error_message PASSED tests/test_error_handling.py::test_swallow_error PASSED tests/test_error_handling.py::test_no_swallow_error PASSED tests/test_flask_ext.py::test_reset PASSED tests/test_flask_ext.py::test_combined_rate_limits PASSED tests/test_flask_ext.py::test_defaults_per_method PASSED tests/test_flask_ext.py::test_default_limit_with_exemption PASSED tests/test_flask_ext.py::test_default_limit_with_conditional_deduction PASSED tests/test_flask_ext.py::test_key_func PASSED tests/test_flask_ext.py::test_logging PASSED tests/test_flask_ext.py::test_reuse_logging PASSED tests/test_flask_ext.py::test_disabled_flag PASSED tests/test_flask_ext.py::test_multiple_apps PASSED tests/test_flask_ext.py::test_headers_no_breach PASSED tests/test_flask_ext.py::test_headers_breach PASSED tests/test_flask_ext.py::test_retry_after PASSED tests/test_flask_ext.py::test_retry_after_exists_seconds PASSED tests/test_flask_ext.py::test_retry_after_exists_rfc1123 PASSED tests/test_flask_ext.py::test_custom_headers_from_setter PASSED tests/test_flask_ext.py::test_custom_headers_from_config PASSED tests/test_flask_ext.py::test_custom_headers_from_setter_and_config PASSED tests/test_flask_ext.py::test_application_shared_limit PASSED tests/test_flask_ext.py::test_callable_default_limit PASSED tests/test_flask_ext.py::test_callable_application_limit PASSED tests/test_flask_ext.py::test_no_auto_check PASSED tests/test_regressions.py::test_dynamic_limits PASSED tests/test_regressions.py::test_invalid_ratelimit_key PASSED tests/test_regressions.py::test_default_limits_with_per_route_limit PASSED tests/test_regressions.py::test_application_limits_from_config PASSED tests/test_views.py::test_pluggable_views PASSED tests/test_views.py::test_pluggable_method_views PASSED tests/test_views.py::test_flask_restful_resource PASSED =============================== warnings summary =============================== tests/test_configuration.py::test_invalid_config_with_disabled tests/test_configuration.py::test_uninitialized_limiter /build/source/flask_limiter/extension.py:151: UserWarning: Use of the default `get_ipaddr` function is discouraged. Please refer to https://flask-limiter.readthedocs.org/#rate-limit-domain for the recommended configuration " for the recommended configuration", UserWarning tests/test_error_handling.py::test_error_message tests/test_error_handling.py::test_swallow_error tests/test_error_handling.py::test_no_swallow_error tests/test_flask_ext.py::test_reset tests/test_flask_ext.py::test_combined_rate_limits /build/source/flask_limiter/extension.py:822: UserWarning: global_limits was a badly named configuration since it is actually a default limit and not a globally shared limit. Use default_limits if you want to provide a default or use application_limits if you intend to really have a global shared limit "shared limit", UserWarning -- Docs: https://docs.pytest.org/en/stable/warnings.html ================ 63 passed, 10 deselected, 7 warnings in 2.68s ================= Finished executing pytestCheckPhase @nix { "action": "setPhase", "phase": "pytestcachePhase" } pytestcachePhase