• Bug#1067794: flask-login: FTBFS: failing tests (2/2)

    From Santiago Vila@21:1/5 to All on Tue Mar 26 22:30:03 2024
    [continued from previous message]

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)