Your message dated Sat, 06 Apr 2024 14:49:04 +0000
with message-id <e1rt7ls-002nxk...@fasolo.debian.org>
and subject line Bug#1067794: fixed in flask-login 0.6.3-2
has caused the Debian Bug report #1067794,
regarding flask-login: FTBFS: failing tests
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1067794: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1067794
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: src:flask-login
Version: 0.6.3-1
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules binary
dh binary --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:305: python3.12 -m build --skip-dependency-check --no-isolation --wheel 
--outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/flask_login
copying src/flask_login/__about__.py -> build/lib/flask_login
copying src/flask_login/test_client.py -> build/lib/flask_login
copying src/flask_login/login_manager.py -> build/lib/flask_login
copying src/flask_login/mixins.py -> build/lib/flask_login
copying src/flask_login/utils.py -> build/lib/flask_login
copying src/flask_login/signals.py -> build/lib/flask_login
copying src/flask_login/__init__.py -> build/lib/flask_login
copying src/flask_login/config.py -> build/lib/flask_login
running egg_info
creating src/Flask_Login.egg-info
writing src/Flask_Login.egg-info/PKG-INFO
writing dependency_links to src/Flask_Login.egg-info/dependency_links.txt
writing requirements to src/Flask_Login.egg-info/requires.txt
writing top-level names to src/Flask_Login.egg-info/top_level.txt
writing manifest file 'src/Flask_Login.egg-info/SOURCES.txt'
reading manifest file 'src/Flask_Login.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files matching '*.pyc' found anywhere in 
distribution
adding license file 'LICENSE'
writing manifest file 'src/Flask_Login.egg-info/SOURCES.txt'
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_login
copying build/lib/flask_login/__about__.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/test_client.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/login_manager.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/mixins.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/utils.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/signals.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/__init__.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/config.py -> 
build/bdist.linux-x86_64/wheel/flask_login
running install_egg_info
Copying src/Flask_Login.egg-info to 
build/bdist.linux-x86_64/wheel/Flask_Login-0.6.3.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/Flask_Login-0.6.3.dist-info/WHEEL
creating 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/.tmp-ouobfdbj/Flask_Login-0.6.3-py3-none-any.whl'
 and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'flask_login/__about__.py'
adding 'flask_login/__init__.py'
adding 'flask_login/config.py'
adding 'flask_login/login_manager.py'
adding 'flask_login/mixins.py'
adding 'flask_login/signals.py'
adding 'flask_login/test_client.py'
adding 'flask_login/utils.py'
adding 'Flask_Login-0.6.3.dist-info/LICENSE'
adding 'Flask_Login-0.6.3.dist-info/METADATA'
adding 'Flask_Login-0.6.3.dist-info/WHEEL'
adding 'Flask_Login-0.6.3.dist-info/top_level.txt'
adding 'Flask_Login-0.6.3.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built Flask_Login-0.6.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
"installer" module
I: pybuild plugin_pyproject:129: Building wheel for python3.11 with "build" 
module
I: pybuild base:305: python3.11 -m build --skip-dependency-check --no-isolation --wheel 
--outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_flask-login
* Building wheel...
running bdist_wheel
running build
running build_py
running egg_info
writing src/Flask_Login.egg-info/PKG-INFO
writing dependency_links to src/Flask_Login.egg-info/dependency_links.txt
writing requirements to src/Flask_Login.egg-info/requires.txt
writing top-level names to src/Flask_Login.egg-info/top_level.txt
reading manifest file 'src/Flask_Login.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files matching '*.pyc' found anywhere in 
distribution
adding license file 'LICENSE'
writing manifest file 'src/Flask_Login.egg-info/SOURCES.txt'
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/__about__.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/test_client.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/login_manager.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/mixins.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/utils.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/signals.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/__init__.py -> 
build/bdist.linux-x86_64/wheel/flask_login
copying build/lib/flask_login/config.py -> 
build/bdist.linux-x86_64/wheel/flask_login
running install_egg_info
Copying src/Flask_Login.egg-info to 
build/bdist.linux-x86_64/wheel/Flask_Login-0.6.3.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/Flask_Login-0.6.3.dist-info/WHEEL
creating 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_flask-login/.tmp-1yrlkb98/Flask_Login-0.6.3-py3-none-any.whl'
 and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'flask_login/__about__.py'
adding 'flask_login/__init__.py'
adding 'flask_login/config.py'
adding 'flask_login/login_manager.py'
adding 'flask_login/mixins.py'
adding 'flask_login/signals.py'
adding 'flask_login/test_client.py'
adding 'flask_login/utils.py'
adding 'Flask_Login-0.6.3.dist-info/LICENSE'
adding 'Flask_Login-0.6.3.dist-info/METADATA'
adding 'Flask_Login-0.6.3.dist-info/WHEEL'
adding 'Flask_Login-0.6.3.dist-info/top_level.txt'
adding 'Flask_Login-0.6.3.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built Flask_Login-0.6.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with 
"installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild pybuild:308: cp -r /<<PKGBUILDDIR>>/tests 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build
I: pybuild base:305: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build; python3.12 -m pytest 
-v
============================= test session starts ==============================
platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0 -- 
/usr/bin/python3.12
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>
configfile: setup.cfg
collecting ... collected 114 items

tests/test_login.py::AboutTestCase::test_have_about_data PASSED          [  0%]
tests/test_login.py::StaticTestCase::test_static_loads_anonymous PASSED  [  1%]
tests/test_login.py::StaticTestCase::test_static_loads_without_accessing_session
 PASSED [  2%]
tests/test_login.py::InitializationTestCase::test_class_init PASSED      [  3%]
tests/test_login.py::InitializationTestCase::test_init_app PASSED        [  4%]
tests/test_login.py::InitializationTestCase::test_no_user_loader_raises PASSED 
[  5%]
tests/test_login.py::MethodViewLoginTestCase::test_options_call_exempt PASSED [ 
 6%]
tests/test_login.py::LoginTestCase::test_authentication_is_fresh PASSED  [  7%]
tests/test_login.py::LoginTestCase::test_confirm_login FAILED            [  7%]
tests/test_login.py::LoginTestCase::test_decorators_are_disabled PASSED  [  8%]
tests/test_login.py::LoginTestCase::test_defaults_anonymous PASSED       [  9%]
tests/test_login.py::LoginTestCase::test_fresh_login_required_decorator FAILED 
[ 10%]
tests/test_login.py::LoginTestCase::test_incorrect_id_logs_out PASSED    [ 11%]
tests/test_login.py::LoginTestCase::test_invalid_remember_cookie PASSED  [ 12%]
tests/test_login.py::LoginTestCase::test_login_inactive_user PASSED      [ 13%]
tests/test_login.py::LoginTestCase::test_login_inactive_user_forced PASSED [ 
14%]
tests/test_login.py::LoginTestCase::test_login_invalid_user_with_request PASSED 
[ 14%]
tests/test_login.py::LoginTestCase::test_login_persists PASSED           [ 15%]
tests/test_login.py::LoginTestCase::test_login_persists_with_many_x_forwarded_for
 PASSED [ 16%]
tests/test_login.py::LoginTestCase::test_login_persists_with_signle_x_forwarded_for
 PASSED [ 17%]
tests/test_login.py::LoginTestCase::test_login_required_decorator PASSED [ 18%]
tests/test_login.py::LoginTestCase::test_login_required_decorator_with_async 
SKIPPED [ 19%]
tests/test_login.py::LoginTestCase::test_login_user PASSED               [ 20%]
tests/test_login.py::LoginTestCase::test_login_user_emits_signal PASSED  [ 21%]
tests/test_login.py::LoginTestCase::test_login_user_not_fresh PASSED     [ 21%]
tests/test_login.py::LoginTestCase::test_login_user_with_request PASSED  [ 22%]
tests/test_login.py::LoginTestCase::test_logout_emits_signal PASSED      [ 23%]
tests/test_login.py::LoginTestCase::test_logout_logs_out_current_user PASSED [ 
24%]
tests/test_login.py::LoginTestCase::test_logout_persists PASSED          [ 25%]
tests/test_login.py::LoginTestCase::test_logout_stays_logged_out_with_remember_me
 PASSED [ 26%]
tests/test_login.py::LoginTestCase::test_logout_stays_logged_out_with_remember_me_custom_duration
 PASSED [ 27%]
tests/test_login.py::LoginTestCase::test_logout_without_current_user PASSED [ 
28%]
tests/test_login.py::LoginTestCase::test_needs_refresh_aborts_401 PASSED [ 28%]
tests/test_login.py::LoginTestCase::test_needs_refresh_fires_flash_when_redirect_to_refresh_view
 PASSED [ 29%]
tests/test_login.py::LoginTestCase::test_needs_refresh_fires_needs_refresh_signal
 PASSED [ 30%]
tests/test_login.py::LoginTestCase::test_needs_refresh_flash_message_localized 
PASSED [ 31%]
tests/test_login.py::LoginTestCase::test_needs_refresh_uses_handler PASSED [ 
32%]
tests/test_login.py::LoginTestCase::test_permanent_strong_session_protection_fires_signal
 PASSED [ 33%]
tests/test_login.py::LoginTestCase::test_permanent_strong_session_protection_marks_session_unfresh
 PASSED [ 34%]
tests/test_login.py::LoginTestCase::test_redirects_to_refresh_view PASSED [ 35%]
tests/test_login.py::LoginTestCase::test_refresh_with_next_in_session PASSED [ 
35%]
tests/test_login.py::LoginTestCase::test_remember_me FAILED              [ 36%]
tests/test_login.py::LoginTestCase::test_remember_me_accepts_duration_as_int 
FAILED [ 37%]
tests/test_login.py::LoginTestCase::test_remember_me_custom_duration FAILED [ 
38%]
tests/test_login.py::LoginTestCase::test_remember_me_custom_duration_uses_custom_cookie
 FAILED [ 39%]
tests/test_login.py::LoginTestCase::test_remember_me_is_unfresh FAILED   [ 40%]
tests/test_login.py::LoginTestCase::test_remember_me_no_refresh_every_request 
FAILED [ 41%]
tests/test_login.py::LoginTestCase::test_remember_me_refresh_each_request 
FAILED [ 42%]
tests/test_login.py::LoginTestCase::test_remember_me_uses_custom_cookie_parameters
 FAILED [ 42%]
tests/test_login.py::LoginTestCase::test_remember_me_with_invalid_custom_duration_returns_500_resp
 PASSED [ 43%]
tests/test_login.py::LoginTestCase::test_remember_me_with_invalid_duration_returns_500_response
 PASSED [ 44%]
tests/test_login.py::LoginTestCase::test_requests_without_accessing_session 
PASSED [ 45%]
tests/test_login.py::LoginTestCase::test_session_not_modified PASSED     [ 46%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_fires_signal 
PASSED [ 47%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_marks_session_unfresh
 PASSED [ 48%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_passes_successive_requests
 PASSED [ 49%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_skips_when_remember_me
 PASSED [ 50%]
tests/test_login.py::LoginTestCase::test_session_protection_skip_when_basic_and_anonymous
 PASSED [ 50%]
tests/test_login.py::LoginTestCase::test_session_protection_skip_when_off_and_anonymous
 PASSED [ 51%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_deletes_session
 PASSED [ 52%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_fires_signal_user_agent
 PASSED [ 53%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_fires_signal_x_forwarded_for
 PASSED [ 54%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_passes_successive_requests
 PASSED [ 55%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_skips_when_remember_me
 PASSED [ 56%]
tests/test_login.py::LoginTestCase::test_set_cookie_with_invalid_custom_duration_raises_exception
 PASSED [ 57%]
tests/test_login.py::LoginTestCase::test_set_cookie_with_invalid_duration_raises_exception
 FAILED [ 57%]
tests/test_login.py::LoginTestCase::test_set_login_view_without_blueprints 
PASSED [ 58%]
tests/test_login.py::LoginTestCase::test_test_request_context_users_are_anonymous
 PASSED [ 59%]
tests/test_login.py::LoginTestCase::test_unauthorized_aborts_with_401 PASSED [ 
60%]
tests/test_login.py::LoginTestCase::test_unauthorized_fires_unauthorized_signal 
PASSED [ 61%]
tests/test_login.py::LoginTestCase::test_unauthorized_flash_message_localized 
PASSED [ 62%]
tests/test_login.py::LoginTestCase::test_unauthorized_flashes_message_with_login_view
 PASSED [ 63%]
tests/test_login.py::LoginTestCase::test_unauthorized_redirects_to_login_view 
PASSED [ 64%]
tests/test_login.py::LoginTestCase::test_unauthorized_uses_authorized_handler 
PASSED [ 64%]
tests/test_login.py::LoginTestCase::test_unauthorized_uses_blueprint_login_view 
PASSED [ 65%]
tests/test_login.py::LoginTestCase::test_unauthorized_with_next_in_session 
PASSED [ 66%]
tests/test_login.py::LoginTestCase::test_unauthorized_with_next_in_strong_session
 PASSED [ 67%]
tests/test_login.py::LoginTestCase::test_user_context_processor PASSED   [ 68%]
tests/test_login.py::LoginTestCase::test_user_loaded_from_cookie_fired FAILED [ 
69%]
tests/test_login.py::LoginTestCase::test_user_loaded_from_request_fired PASSED 
[ 70%]
tests/test_login.py::LoginTestCase::test_user_login_confirmed_signal_fired 
PASSED [ 71%]
tests/test_login.py::LoginViaRequestTestCase::test_defaults_anonymous PASSED [ 
71%]
tests/test_login.py::LoginViaRequestTestCase::test_has_no_user_loader_callback 
PASSED [ 72%]
tests/test_login.py::LoginViaRequestTestCase::test_login_invalid_user_with_request
 PASSED [ 73%]
tests/test_login.py::LoginViaRequestTestCase::test_login_invalid_user_with_request_when_already_logged_in
 PASSED [ 74%]
tests/test_login.py::LoginViaRequestTestCase::test_login_user_with_request_does_not_modify_session
 PASSED [ 75%]
tests/test_login.py::LoginViaRequestTestCase::test_login_via_request PASSED [ 
76%]
tests/test_login.py::LoginViaRequestTestCase::test_login_via_request_uses_cookie_when_already_logged_in
 PASSED [ 77%]
tests/test_login.py::LoginViaRequestTestCase::test_request_context_users_are_anonymous
 PASSED [ 78%]
tests/test_login.py::TestLoginUrlGeneration::test_login_url_generation PASSED [ 
78%]
tests/test_login.py::TestLoginUrlGeneration::test_login_url_generation_with_view
 PASSED [ 79%]
tests/test_login.py::TestLoginUrlGeneration::test_login_url_no_next_url PASSED 
[ 80%]
tests/test_login.py::TestLoginUrlGeneration::test_make_next_param PASSED [ 81%]
tests/test_login.py::CookieEncodingTestCase::test_cookie_encoding PASSED [ 82%]
tests/test_login.py::CookieEncodingTestCase::test_cookie_encoding_with_key 
PASSED [ 83%]
tests/test_login.py::SecretKeyTestCase::test_bytes PASSED                [ 84%]
tests/test_login.py::SecretKeyTestCase::test_default PASSED              [ 85%]
tests/test_login.py::SecretKeyTestCase::test_native PASSED               [ 85%]
tests/test_login.py::UserMixinTestCase::test_default_values PASSED       [ 86%]
tests/test_login.py::UserMixinTestCase::test_equality PASSED             [ 87%]
tests/test_login.py::UserMixinTestCase::test_get_id_from_id_attribute PASSED [ 
88%]
tests/test_login.py::UserMixinTestCase::test_get_id_not_implemented PASSED [ 
89%]
tests/test_login.py::UserMixinTestCase::test_hashable PASSED             [ 90%]
tests/test_login.py::AnonymousUserTestCase::test_values PASSED           [ 91%]
tests/test_login.py::UnicodeCookieUserIDTestCase::test_remember_me_user_id 
FAILED [ 92%]
tests/test_login.py::UnicodeCookieUserIDTestCase::test_remember_me_username 
FAILED [ 92%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_ignores_host_from_x_forwarded_for_header
 PASSED [ 93%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_uses_host_from_config_when_available
 PASSED [ 94%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_uses_host_from_next_url
 PASSED [ 95%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_uses_host_from_x_forwarded_for_header
 PASSED [ 96%]
tests/test_login.py::CustomTestClientTestCase::test_fresh_login_arg_to_test_client
 PASSED [ 97%]
tests/test_login.py::CustomTestClientTestCase::test_no_args_to_test_client 
PASSED [ 98%]
tests/test_login.py::CustomTestClientTestCase::test_session_protection_modes 
PASSED [ 99%]
tests/test_login.py::CustomTestClientTestCase::test_user_arg_to_test_client 
PASSED [100%]

=================================== FAILURES ===================================
_______________________ LoginTestCase.test_confirm_login _______________________

self = <test_login.LoginTestCase testMethod=test_confirm_login>

    def test_confirm_login(self):
        with self.app.test_client() as c:
            c.get("/login-notch-remember")
            self._delete_session(c)
            self.assertEqual("False", c.get("/is-fresh").data.decode("utf-8"))
          self.assertEqual("True", c.get("/is-remembered").data.decode("utf-8"))
E           AssertionError: 'True' != 'False'
E           - True
E           + False

tests/test_login.py:984: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
______________ LoginTestCase.test_fresh_login_required_decorator _______________

self = <test_login.LoginTestCase testMethod=test_fresh_login_required_decorator>

    def test_fresh_login_required_decorator(self):
        @self.app.route("/very-protected")
        @fresh_login_required
        def very_protected():
            return "Access Granted"
with self.app.test_client() as c:
            result = c.get("/very-protected")
            self.assertEqual(result.status_code, 401)
c.get("/login-notch-remember")
            logged_in_result = c.get("/very-protected")
            self.assertEqual("Access Granted", 
logged_in_result.data.decode("utf-8"))
self._delete_session(c)
            stale_result = c.get("/very-protected")
            self.assertEqual(stale_result.status_code, 401)
c.get("/confirm-login")
            refreshed_result = c.get("/very-protected")
          self.assertEqual("Access Granted", 
refreshed_result.data.decode("utf-8"))
E           AssertionError: 'Access Granted' != '<!doctype html>\n<html 
lang=en>\n<title>4[277 chars]p>\n'
E           - Access Granted
E           + <!doctype html>
E           + <html lang=en>
E           + <title>401 Unauthorized</title>
E           + <h1>Unauthorized</h1>
E           + <p>The server could not verify that you are authorized to access the URL 
requested. You either supplied the wrong credentials (e.g. a bad password), or your browser 
doesn&#39;t understand how to supply the credentials required.</p>
E           +

tests/test_login.py:1263: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
________________________ LoginTestCase.test_remember_me ________________________

self = <test_login.LoginTestCase testMethod=test_remember_me>

    def test_remember_me(self):
        with self.app.test_client() as c:
            c.get("/login-notch-remember")
            self._delete_session(c)
            username_result = c.get("/username")
          self.assertEqual("Notch", username_result.data.decode("utf-8"))
E           AssertionError: 'Notch' != 'Anonymous'
E           - Notch
E           + Anonymous

tests/test_login.py:702: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
____________ LoginTestCase.test_remember_me_accepts_duration_as_int ____________

self = <test_login.LoginTestCase 
testMethod=test_remember_me_accepts_duration_as_int>

    def test_remember_me_accepts_duration_as_int(self):
        self.app.config["REMEMBER_COOKIE_DURATION"] = 172800
        duration = timedelta(seconds=172800)
        name = self.app.config["REMEMBER_COOKIE_NAME"] = "myname"
        domain = self.app.config["REMEMBER_COOKIE_DOMAIN"] = ".localhost.local"
        c = self.app.test_client()
        result = c.get("/login-notch-remember")
      self.assertEqual(result.status_code, 200)
E       AssertionError: 500 != 200

tests/test_login.py:757: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
________________ LoginTestCase.test_remember_me_custom_duration ________________

self = <test_login.LoginTestCase testMethod=test_remember_me_custom_duration>

    def test_remember_me_custom_duration(self):
        with self.app.test_client() as c:
            c.get("/login-notch-remember-custom")
            self._delete_session(c)
            username_result = c.get("/username")
          self.assertEqual("Notch", username_result.data.decode("utf-8"))
E           AssertionError: 'Notch' != 'Anonymous'
E           - Notch
E           + Anonymous

tests/test_login.py:713: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember-custom [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
______ LoginTestCase.test_remember_me_custom_duration_uses_custom_cookie _______

self = <test_login.LoginTestCase 
testMethod=test_remember_me_custom_duration_uses_custom_cookie>

    def test_remember_me_custom_duration_uses_custom_cookie(self):
        name = self.app.config["REMEMBER_COOKIE_NAME"] = "myname"
        self.app.config["REMEMBER_COOKIE_DURATION"] = 172800
        duration = timedelta(hours=7)
        path = self.app.config["REMEMBER_COOKIE_PATH"] = "/mypath"
        domain = self.app.config["REMEMBER_COOKIE_DOMAIN"] = ".localhost.local"
        c = self.app.test_client()
        c.get("/login-notch-remember-custom")
        cookie = client_get_cookie(c, name, domain, path)
      self.assertIsNotNone(cookie)
E       AssertionError: unexpectedly None

tests/test_login.py:743: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember-custom [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
__________________ LoginTestCase.test_remember_me_is_unfresh ___________________

self = <test_login.LoginTestCase testMethod=test_remember_me_is_unfresh>

    def test_remember_me_is_unfresh(self):
        with self.app.test_client() as c:
            c.get("/login-notch-remember")
            self._delete_session(c)
            self.assertEqual("False", c.get("/is-fresh").data.decode("utf-8"))
          self.assertEqual("True", c.get("/is-remembered").data.decode("utf-8"))
E           AssertionError: 'True' != 'False'
E           - True
E           + False

tests/test_login.py:841: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
___________ LoginTestCase.test_remember_me_no_refresh_every_request ____________

self = <test_login.LoginTestCase 
testMethod=test_remember_me_no_refresh_every_request>

    def test_remember_me_no_refresh_every_request(self):
        domain = self.app.config["REMEMBER_COOKIE_DOMAIN"] = ".localhost.local"
        path = self.app.config["REMEMBER_COOKIE_PATH"] = "/"
        self.app.config["REMEMBER_COOKIE_REFRESH_EACH_REQUEST"] = False
        c = self.app.test_client()
        c.get("/login-notch-remember")
        cookie1 = client_get_cookie(c, "remember", domain, path)
      self.assertIsNotNone(cookie1.expires)
E       AttributeError: 'NoneType' object has no attribute 'expires'

tests/test_login.py:813: AttributeError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
_____________ LoginTestCase.test_remember_me_refresh_each_request ______________

self = <test_login.LoginTestCase 
testMethod=test_remember_me_refresh_each_request>

    def test_remember_me_refresh_each_request(self):
        with patch("flask_login.login_manager.datetime") as mock_dt:
          now = datetime.utcnow()
E           DeprecationWarning: datetime.datetime.utcnow() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.now(datetime.UTC).

tests/test_login.py:821: DeprecationWarning
_________ LoginTestCase.test_remember_me_uses_custom_cookie_parameters _________

self = <test_login.LoginTestCase 
testMethod=test_remember_me_uses_custom_cookie_parameters>

    def test_remember_me_uses_custom_cookie_parameters(self):
        name = self.app.config["REMEMBER_COOKIE_NAME"] = "myname"
        duration = self.app.config["REMEMBER_COOKIE_DURATION"] = 
timedelta(days=2)
        path = self.app.config["REMEMBER_COOKIE_PATH"] = "/mypath"
        domain = self.app.config["REMEMBER_COOKIE_DOMAIN"] = ".localhost.local"
        c = self.app.test_client()
        c.get("/login-notch-remember")
        cookie = client_get_cookie(c, name, domain, path)
      self.assertIsNotNone(cookie)
E       AssertionError: unexpectedly None

tests/test_login.py:727: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
_____ LoginTestCase.test_set_cookie_with_invalid_duration_raises_exception _____

self = <test_login.LoginTestCase 
testMethod=test_set_cookie_with_invalid_duration_raises_exception>

    def test_set_cookie_with_invalid_duration_raises_exception(self):
        self.app.config["REMEMBER_COOKIE_DURATION"] = "123"
with self.assertRaises(Exception) as cm:
            with self.app.test_request_context():
                session["_user_id"] = 2
                self.login_manager._set_cookie(None)
expected_exception_message = (
            "REMEMBER_COOKIE_DURATION must be a datetime.timedelta, instead got: 
123"
        )
      self.assertIn(expected_exception_message, str(cm.exception))
E       AssertionError: 'REMEMBER_COOKIE_DURATION must be a datetime.timedelta, 
instead got: 123' not found in 'datetime.datetime.utcnow() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.now(datetime.UTC).'

tests/test_login.py:794: AssertionError
_______________ LoginTestCase.test_user_loaded_from_cookie_fired _______________

self = <test_login.LoginTestCase testMethod=test_user_loaded_from_cookie_fired>

    def test_user_loaded_from_cookie_fired(self):
        with self.app.test_client() as c:
            c.get("/login-notch-remember")
            self._delete_session(c)
            with listen_to(user_loaded_from_cookie) as listener:
                c.get("/username")
              listener.assert_heard_one(self.app, user=notch)

tests/test_login.py:869:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <test_login.listen_to.<locals>._SignalsCaught object at 0x7fb034190cb0>
args = (<Flask 'test_login'>,)
kwargs = {'user': <test_login.User object at 0x7fb0342f7440>}

    def assert_heard_one(self, *args, **kwargs):
        """The signal fired once, and with the arguments given"""
        if len(self.heard) == 0:
          raise AssertionError("No signals were fired")
E           AssertionError: No signals were fired

tests/test_login.py:147: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-notch-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
_____________ UnicodeCookieUserIDTestCase.test_remember_me_user_id _____________

self = <test_login.UnicodeCookieUserIDTestCase 
testMethod=test_remember_me_user_id>

    def test_remember_me_user_id(self):
        with self.app.test_client() as c:
            c.get("/login-germanjapanese-remember")
            self._delete_session(c)
            result = c.get("/userid")
          self.assertEqual("佐藤", result.data.decode("utf-8"))
E           AssertionError: '佐藤' != 'wrong_id'
E           - 佐藤
E           + wrong_id

tests/test_login.py:1619: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-germanjapanese-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
____________ UnicodeCookieUserIDTestCase.test_remember_me_username _____________

self = <test_login.UnicodeCookieUserIDTestCase 
testMethod=test_remember_me_username>

    def test_remember_me_username(self):
        with self.app.test_client() as c:
            c.get("/login-germanjapanese-remember")
            self._delete_session(c)
            result = c.get("/username")
          self.assertEqual("Müller", result.data.decode("utf-8"))
E           AssertionError: 'Müller' != 'Anonymous'
E           - Müller
E           + Anonymous

tests/test_login.py:1612: AssertionError
------------------------------ Captured log call -------------------------------
ERROR    test_login:app.py:828 Exception on /login-germanjapanese-remember [GET]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 873, in 
full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 894, in 
finalize_request
    response = self.process_response(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1271, in 
process_response
    response = self.ensure_sync(func)(response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 459, in _update_remember_cookie
    self._set_cookie(response)
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build/flask_login/login_manager.py",
 line 488, in _set_cookie
    expires = datetime.utcnow() + duration
              ^^^^^^^^^^^^^^^^^
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for 
removal in a future version. Use timezone-aware objects to represent datetimes 
in UTC: datetime.datetime.now(datetime.UTC).
=========================== short test summary info ============================
FAILED tests/test_login.py::LoginTestCase::test_confirm_login - AssertionErro...
FAILED tests/test_login.py::LoginTestCase::test_fresh_login_required_decorator
FAILED tests/test_login.py::LoginTestCase::test_remember_me - AssertionError:...
FAILED 
tests/test_login.py::LoginTestCase::test_remember_me_accepts_duration_as_int
FAILED tests/test_login.py::LoginTestCase::test_remember_me_custom_duration
FAILED 
tests/test_login.py::LoginTestCase::test_remember_me_custom_duration_uses_custom_cookie
FAILED tests/test_login.py::LoginTestCase::test_remember_me_is_unfresh - Asse...
FAILED 
tests/test_login.py::LoginTestCase::test_remember_me_no_refresh_every_request
FAILED tests/test_login.py::LoginTestCase::test_remember_me_refresh_each_request
FAILED 
tests/test_login.py::LoginTestCase::test_remember_me_uses_custom_cookie_parameters
FAILED 
tests/test_login.py::LoginTestCase::test_set_cookie_with_invalid_duration_raises_exception
FAILED tests/test_login.py::LoginTestCase::test_user_loaded_from_cookie_fired
FAILED 
tests/test_login.py::UnicodeCookieUserIDTestCase::test_remember_me_user_id
FAILED 
tests/test_login.py::UnicodeCookieUserIDTestCase::test_remember_me_username
=================== 14 failed, 99 passed, 1 skipped in 1.01s ===================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_flask-login/build; python3.12 -m pytest 
-v
I: pybuild pybuild:308: cp -r /<<PKGBUILDDIR>>/tests 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_flask-login/build
I: pybuild base:305: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_flask-login/build; python3.11 -m pytest 
-v
============================= test session starts ==============================
platform linux -- Python 3.11.8, pytest-8.1.1, pluggy-1.4.0 -- 
/usr/bin/python3.11
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>
configfile: setup.cfg
collecting ... collected 114 items

tests/test_login.py::AboutTestCase::test_have_about_data PASSED          [  0%]
tests/test_login.py::StaticTestCase::test_static_loads_anonymous PASSED  [  1%]
tests/test_login.py::StaticTestCase::test_static_loads_without_accessing_session
 PASSED [  2%]
tests/test_login.py::InitializationTestCase::test_class_init PASSED      [  3%]
tests/test_login.py::InitializationTestCase::test_init_app PASSED        [  4%]
tests/test_login.py::InitializationTestCase::test_no_user_loader_raises PASSED 
[  5%]
tests/test_login.py::MethodViewLoginTestCase::test_options_call_exempt PASSED [ 
 6%]
tests/test_login.py::LoginTestCase::test_authentication_is_fresh PASSED  [  7%]
tests/test_login.py::LoginTestCase::test_confirm_login PASSED            [  7%]
tests/test_login.py::LoginTestCase::test_decorators_are_disabled PASSED  [  8%]
tests/test_login.py::LoginTestCase::test_defaults_anonymous PASSED       [  9%]
tests/test_login.py::LoginTestCase::test_fresh_login_required_decorator PASSED 
[ 10%]
tests/test_login.py::LoginTestCase::test_incorrect_id_logs_out PASSED    [ 11%]
tests/test_login.py::LoginTestCase::test_invalid_remember_cookie PASSED  [ 12%]
tests/test_login.py::LoginTestCase::test_login_inactive_user PASSED      [ 13%]
tests/test_login.py::LoginTestCase::test_login_inactive_user_forced PASSED [ 
14%]
tests/test_login.py::LoginTestCase::test_login_invalid_user_with_request PASSED 
[ 14%]
tests/test_login.py::LoginTestCase::test_login_persists PASSED           [ 15%]
tests/test_login.py::LoginTestCase::test_login_persists_with_many_x_forwarded_for
 PASSED [ 16%]
tests/test_login.py::LoginTestCase::test_login_persists_with_signle_x_forwarded_for
 PASSED [ 17%]
tests/test_login.py::LoginTestCase::test_login_required_decorator PASSED [ 18%]
tests/test_login.py::LoginTestCase::test_login_required_decorator_with_async 
SKIPPED [ 19%]
tests/test_login.py::LoginTestCase::test_login_user PASSED               [ 20%]
tests/test_login.py::LoginTestCase::test_login_user_emits_signal PASSED  [ 21%]
tests/test_login.py::LoginTestCase::test_login_user_not_fresh PASSED     [ 21%]
tests/test_login.py::LoginTestCase::test_login_user_with_request PASSED  [ 22%]
tests/test_login.py::LoginTestCase::test_logout_emits_signal PASSED      [ 23%]
tests/test_login.py::LoginTestCase::test_logout_logs_out_current_user PASSED [ 
24%]
tests/test_login.py::LoginTestCase::test_logout_persists PASSED          [ 25%]
tests/test_login.py::LoginTestCase::test_logout_stays_logged_out_with_remember_me
 PASSED [ 26%]
tests/test_login.py::LoginTestCase::test_logout_stays_logged_out_with_remember_me_custom_duration
 PASSED [ 27%]
tests/test_login.py::LoginTestCase::test_logout_without_current_user PASSED [ 
28%]
tests/test_login.py::LoginTestCase::test_needs_refresh_aborts_401 PASSED [ 28%]
tests/test_login.py::LoginTestCase::test_needs_refresh_fires_flash_when_redirect_to_refresh_view
 PASSED [ 29%]
tests/test_login.py::LoginTestCase::test_needs_refresh_fires_needs_refresh_signal
 PASSED [ 30%]
tests/test_login.py::LoginTestCase::test_needs_refresh_flash_message_localized 
PASSED [ 31%]
tests/test_login.py::LoginTestCase::test_needs_refresh_uses_handler PASSED [ 
32%]
tests/test_login.py::LoginTestCase::test_permanent_strong_session_protection_fires_signal
 PASSED [ 33%]
tests/test_login.py::LoginTestCase::test_permanent_strong_session_protection_marks_session_unfresh
 PASSED [ 34%]
tests/test_login.py::LoginTestCase::test_redirects_to_refresh_view PASSED [ 35%]
tests/test_login.py::LoginTestCase::test_refresh_with_next_in_session PASSED [ 
35%]
tests/test_login.py::LoginTestCase::test_remember_me PASSED              [ 36%]
tests/test_login.py::LoginTestCase::test_remember_me_accepts_duration_as_int 
PASSED [ 37%]
tests/test_login.py::LoginTestCase::test_remember_me_custom_duration PASSED [ 
38%]
tests/test_login.py::LoginTestCase::test_remember_me_custom_duration_uses_custom_cookie
 PASSED [ 39%]
tests/test_login.py::LoginTestCase::test_remember_me_is_unfresh PASSED   [ 40%]
tests/test_login.py::LoginTestCase::test_remember_me_no_refresh_every_request 
PASSED [ 41%]
tests/test_login.py::LoginTestCase::test_remember_me_refresh_each_request 
PASSED [ 42%]
tests/test_login.py::LoginTestCase::test_remember_me_uses_custom_cookie_parameters
 PASSED [ 42%]
tests/test_login.py::LoginTestCase::test_remember_me_with_invalid_custom_duration_returns_500_resp
 PASSED [ 43%]
tests/test_login.py::LoginTestCase::test_remember_me_with_invalid_duration_returns_500_response
 PASSED [ 44%]
tests/test_login.py::LoginTestCase::test_requests_without_accessing_session 
PASSED [ 45%]
tests/test_login.py::LoginTestCase::test_session_not_modified PASSED     [ 46%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_fires_signal 
PASSED [ 47%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_marks_session_unfresh
 PASSED [ 48%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_passes_successive_requests
 PASSED [ 49%]
tests/test_login.py::LoginTestCase::test_session_protection_basic_skips_when_remember_me
 PASSED [ 50%]
tests/test_login.py::LoginTestCase::test_session_protection_skip_when_basic_and_anonymous
 PASSED [ 50%]
tests/test_login.py::LoginTestCase::test_session_protection_skip_when_off_and_anonymous
 PASSED [ 51%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_deletes_session
 PASSED [ 52%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_fires_signal_user_agent
 PASSED [ 53%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_fires_signal_x_forwarded_for
 PASSED [ 54%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_passes_successive_requests
 PASSED [ 55%]
tests/test_login.py::LoginTestCase::test_session_protection_strong_skips_when_remember_me
 PASSED [ 56%]
tests/test_login.py::LoginTestCase::test_set_cookie_with_invalid_custom_duration_raises_exception
 PASSED [ 57%]
tests/test_login.py::LoginTestCase::test_set_cookie_with_invalid_duration_raises_exception
 PASSED [ 57%]
tests/test_login.py::LoginTestCase::test_set_login_view_without_blueprints 
PASSED [ 58%]
tests/test_login.py::LoginTestCase::test_test_request_context_users_are_anonymous
 PASSED [ 59%]
tests/test_login.py::LoginTestCase::test_unauthorized_aborts_with_401 PASSED [ 
60%]
tests/test_login.py::LoginTestCase::test_unauthorized_fires_unauthorized_signal 
PASSED [ 61%]
tests/test_login.py::LoginTestCase::test_unauthorized_flash_message_localized 
PASSED [ 62%]
tests/test_login.py::LoginTestCase::test_unauthorized_flashes_message_with_login_view
 PASSED [ 63%]
tests/test_login.py::LoginTestCase::test_unauthorized_redirects_to_login_view 
PASSED [ 64%]
tests/test_login.py::LoginTestCase::test_unauthorized_uses_authorized_handler 
PASSED [ 64%]
tests/test_login.py::LoginTestCase::test_unauthorized_uses_blueprint_login_view 
PASSED [ 65%]
tests/test_login.py::LoginTestCase::test_unauthorized_with_next_in_session 
PASSED [ 66%]
tests/test_login.py::LoginTestCase::test_unauthorized_with_next_in_strong_session
 PASSED [ 67%]
tests/test_login.py::LoginTestCase::test_user_context_processor PASSED   [ 68%]
tests/test_login.py::LoginTestCase::test_user_loaded_from_cookie_fired PASSED [ 
69%]
tests/test_login.py::LoginTestCase::test_user_loaded_from_request_fired PASSED 
[ 70%]
tests/test_login.py::LoginTestCase::test_user_login_confirmed_signal_fired 
PASSED [ 71%]
tests/test_login.py::LoginViaRequestTestCase::test_defaults_anonymous PASSED [ 
71%]
tests/test_login.py::LoginViaRequestTestCase::test_has_no_user_loader_callback 
PASSED [ 72%]
tests/test_login.py::LoginViaRequestTestCase::test_login_invalid_user_with_request
 PASSED [ 73%]
tests/test_login.py::LoginViaRequestTestCase::test_login_invalid_user_with_request_when_already_logged_in
 PASSED [ 74%]
tests/test_login.py::LoginViaRequestTestCase::test_login_user_with_request_does_not_modify_session
 PASSED [ 75%]
tests/test_login.py::LoginViaRequestTestCase::test_login_via_request PASSED [ 
76%]
tests/test_login.py::LoginViaRequestTestCase::test_login_via_request_uses_cookie_when_already_logged_in
 PASSED [ 77%]
tests/test_login.py::LoginViaRequestTestCase::test_request_context_users_are_anonymous
 PASSED [ 78%]
tests/test_login.py::TestLoginUrlGeneration::test_login_url_generation PASSED [ 
78%]
tests/test_login.py::TestLoginUrlGeneration::test_login_url_generation_with_view
 PASSED [ 79%]
tests/test_login.py::TestLoginUrlGeneration::test_login_url_no_next_url PASSED 
[ 80%]
tests/test_login.py::TestLoginUrlGeneration::test_make_next_param PASSED [ 81%]
tests/test_login.py::CookieEncodingTestCase::test_cookie_encoding PASSED [ 82%]
tests/test_login.py::CookieEncodingTestCase::test_cookie_encoding_with_key 
PASSED [ 83%]
tests/test_login.py::SecretKeyTestCase::test_bytes PASSED                [ 84%]
tests/test_login.py::SecretKeyTestCase::test_default PASSED              [ 85%]
tests/test_login.py::SecretKeyTestCase::test_native PASSED               [ 85%]
tests/test_login.py::UserMixinTestCase::test_default_values PASSED       [ 86%]
tests/test_login.py::UserMixinTestCase::test_equality PASSED             [ 87%]
tests/test_login.py::UserMixinTestCase::test_get_id_from_id_attribute PASSED [ 
88%]
tests/test_login.py::UserMixinTestCase::test_get_id_not_implemented PASSED [ 
89%]
tests/test_login.py::UserMixinTestCase::test_hashable PASSED             [ 90%]
tests/test_login.py::AnonymousUserTestCase::test_values PASSED           [ 91%]
tests/test_login.py::UnicodeCookieUserIDTestCase::test_remember_me_user_id 
PASSED [ 92%]
tests/test_login.py::UnicodeCookieUserIDTestCase::test_remember_me_username 
PASSED [ 92%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_ignores_host_from_x_forwarded_for_header
 PASSED [ 93%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_uses_host_from_config_when_available
 PASSED [ 94%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_uses_host_from_next_url
 PASSED [ 95%]
tests/test_login.py::StrictHostForRedirectsTestCase::test_unauthorized_uses_host_from_x_forwarded_for_header
 PASSED [ 96%]
tests/test_login.py::CustomTestClientTestCase::test_fresh_login_arg_to_test_client
 PASSED [ 97%]
tests/test_login.py::CustomTestClientTestCase::test_no_args_to_test_client 
PASSED [ 98%]
tests/test_login.py::CustomTestClientTestCase::test_session_protection_modes 
PASSED [ 99%]
tests/test_login.py::CustomTestClientTestCase::test_user_arg_to_test_client 
PASSED [100%]

======================== 113 passed, 1 skipped in 0.63s ========================
I: pybuild pybuild:334: rm -rf 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_flask-login/build/tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 
3.11" returned exit code 13
make: *** [debian/rules:16: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202403/

About the archive rebuild: The build was made on virtual machines
of type m6a.large from AWS, using sbuild and a reduced chroot
with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
Source: flask-login
Source-Version: 0.6.3-2
Done: Boyuan Yang <by...@debian.org>

We believe that the bug you reported is fixed in the latest version of
flask-login, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1067...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Boyuan Yang <by...@debian.org> (supplier of updated flask-login package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sat, 06 Apr 2024 10:30:40 -0400
Source: flask-login
Architecture: source
Version: 0.6.3-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+pyt...@tracker.debian.org>
Changed-By: Boyuan Yang <by...@debian.org>
Closes: 1067794
Changes:
 flask-login (0.6.3-2) unstable; urgency=medium
 .
   * Team upload.
 .
   [ Alexandre Detiste ]
   * Remove extraneous dependency on python3-mock
 .
   [ Boyuan Yang ]
   * debian/gbp.conf: Add ignore-branch = True.
   * debian/patches/0004-use-datetime.now-with-timezone-instead-of-utcnow.patch:
     Add patch from Ubuntu (cherry-picked from upstream git trunk) to fix FTBFS
     with Python 3.12.
   * The package now builds correctly. (Closes: #1067794)
Checksums-Sha1:
 ecac049481ca213da9bc8d3beae455f6909d56f5 2432 flask-login_0.6.3-2.dsc
 89756515d35ee17da86f3b248e4571c17b721e27 47741 flask-login_0.6.3.orig.tar.gz
 bf3b3efc021dd2d3e993161dc802f52137ba1f58 8448 flask-login_0.6.3-2.debian.tar.xz
 9ab699b17c7f08a3483e34c90f4e981b0eea3c47 8598 
flask-login_0.6.3-2_amd64.buildinfo
Checksums-Sha256:
 4c2b02e251d61914a9aa72bfbd275c793c73d408f013d5eba82e1be6fbbf044d 2432 
flask-login_0.6.3-2.dsc
 d17e8d432263c87db93c29059d54a19e621288a0431e89d60a4ab77e57252ea7 47741 
flask-login_0.6.3.orig.tar.gz
 80b04ed5585428d649484bcbae91e7575d5678c1df8b753520b0f05f6be339a5 8448 
flask-login_0.6.3-2.debian.tar.xz
 e0fa353a57259547fe0a0dc823e027e0d2d143cf5cde463802ae5483f56bf808 8598 
flask-login_0.6.3-2_amd64.buildinfo
Files:
 b65bf628b32ef3f9517ff25b52dda072 2432 python optional flask-login_0.6.3-2.dsc
 21a049b2c5a67da41b42961ca547f001 47741 python optional 
flask-login_0.6.3.orig.tar.gz
 fa063a7301f8fb0ea535d8d7176fd502 8448 python optional 
flask-login_0.6.3-2.debian.tar.xz
 b15cce74c3a17ea1052cba5dd23aade7 8598 python optional 
flask-login_0.6.3-2_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIyBAEBCgAdFiEEfncpR22H1vEdkazLwpPntGGCWs4FAmYRXQgACgkQwpPntGGC
Ws7gfA/3Rara/onA48Hb2cTkkbQM5PR4xESlrOcWo4/f4egblsk6Kr1QEfyblgOO
mCcy0pIXGnSleYAtfJAnVhazq4Q7ez6j49epptkGWKoNPsRu9Vh7doEYF2UizOhp
d8Y9ltGhPkv8xWNc9673TLG7hT4O0wQFdFkHTCXvoEDUposDLvnc6LWXLa7jKqcC
pk+lY5DvMap8IAPVhN3vbU446h9GnEU7Go2dZi/C9XCK5GwX3dfjMgM0ndTqSFm3
UBZTalKxLDca2YVmrjD7C2/Jc8HyctyUVhAVLmnvtlyT8kVcrIZkFuVrPNM4EBvl
GrZjFJwZ4nfV7FBWmg6yNfhL/l+FsnsajtXsooj0JBn+cqA7iCkj2tCueP52OsDx
QTzXgo3Kctr46CqqP6n1YXc1Lpi2g5+twGYNylW5CeZN0mE6TNG45Han15uJRDtP
9MXJr8VyhOhfaP0pmejB8lsEy2K92OG8cCptb8KuH2LaDzL30XAjhR2hFyaBrA3l
YjVz+ia+G7ltT2EycIUeFqg+OZaZx9bxQ9TFoMkkTaDxB09bqgfdV8+CIc1P97lZ
rfp6RxyiXhkJ9JK+YbdH/UqZF+YEfQ0k+ZOcOBWd5CJEdpgE9hdHl7BVS2zurTl8
QU7NICK/JFcVLLI8SNh+APkrmkb7eIcq4u+N3YstuI5Bw56RAQ==
=07Yb
-----END PGP SIGNATURE-----

Attachment: pgpkksbNLoWru.pgp
Description: PGP signature


--- End Message ---

Reply via email to