Your message dated Wed, 25 Jan 2023 00:49:04 +0000
with message-id <[email protected]>
and subject line Bug#1028877: fixed in flask-dance 6.2.0-2.1
has caused the Debian Bug report #1028877,
regarding flask-dance: FTBFS: dh_auto_test: error: pybuild --test --test-pytest 
-i python{version} -p "3.10 3.11" returned exit code 13
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 [email protected]
immediately.)


-- 
1028877: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1028877
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: flask-dance
Version: 6.2.0-2
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: [email protected]
Usertags: ftbfs-20230113 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> PYBUILD_SYSTEM=custom \
> PYBUILD_TEST_ARGS="python3-coverage run -m pytest -m \"not 
> install_required\"" \
> dh_auto_test
> I: pybuild base:240: python3-coverage run -m pytest -m "not install_required"
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /<<PKGBUILDDIR>>, configfile: pyproject.toml
> plugins: Flask-Dance-6.2.0, mock-3.8.2, betamax-0.8.1
> collected 196 items / 1 deselected / 195 selected
> 
> tests/test_utils.py ..                                                   [  
> 1%]
> tests/consumer/test_oauth1.py ....................                       [ 
> 11%]
> tests/consumer/test_oauth2.py ....F...F...............                   [ 
> 23%]
> tests/consumer/test_requests.py ..........                               [ 
> 28%]
> tests/consumer/storage/test_sqla.py ............                         [ 
> 34%]
> tests/contrib/test_atlassian.py ......                                   [ 
> 37%]
> tests/contrib/test_authentiq.py ....                                     [ 
> 40%]
> tests/contrib/test_azure.py .......                                      [ 
> 43%]
> tests/contrib/test_digitalocean.py .....                                 [ 
> 46%]
> tests/contrib/test_discord.py ....                                       [ 
> 48%]
> tests/contrib/test_dropbox.py ........                                   [ 
> 52%]
> tests/contrib/test_facebook.py .....                                     [ 
> 54%]
> tests/contrib/test_fitbit.py ...                                         [ 
> 56%]
> tests/contrib/test_github.py ...                                         [ 
> 57%]
> tests/contrib/test_gitlab.py ......                                      [ 
> 61%]
> tests/contrib/test_google.py .............                               [ 
> 67%]
> tests/contrib/test_heroku.py ...                                         [ 
> 69%]
> tests/contrib/test_jira.py .......                                       [ 
> 72%]
> tests/contrib/test_linkedin.py ...                                       [ 
> 74%]
> tests/contrib/test_meetup.py ....                                        [ 
> 76%]
> tests/contrib/test_nylas.py ...                                          [ 
> 77%]
> tests/contrib/test_orcid.py ....                                         [ 
> 80%]
> tests/contrib/test_osm.py ...                                            [ 
> 81%]
> tests/contrib/test_reddit.py ....                                        [ 
> 83%]
> tests/contrib/test_salesforce.py ........                                [ 
> 87%]
> tests/contrib/test_slack.py .........                                    [ 
> 92%]
> tests/contrib/test_spotify.py ...                                        [ 
> 93%]
> tests/contrib/test_strava.py ...                                         [ 
> 95%]
> tests/contrib/test_twitch.py ...                                         [ 
> 96%]
> tests/contrib/test_twitter.py ...                                        [ 
> 98%]
> tests/contrib/test_zoho.py ...                                           
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _____________________________ test_authorized_url 
> ______________________________
> 
>     @responses.activate
>     def test_authorized_url():
>         responses.add(
>             responses.POST,
>             "https://example.com/oauth/access_token";,
>             
> body='{"access_token":"foobar","token_type":"bearer","scope":"admin"}',
>         )
>         app, _ = make_app()
>         with app.test_client() as client:
>             # reset the session before the request
>             with client.session_transaction() as sess:
>                 sess["test-service_oauth_state"] = "random-string"
>             # make the request
>             resp = client.get(
>                 
> "/login/test-service/authorized?code=secret-code&state=random-string",
>                 base_url="https://a.b.c";,
>             )
>             # check that we redirected the client
>             assert resp.status_code == 302
>             assert resp.headers["Location"] in ("https://a.b.c/";, "/")
>             # check that we obtained an access token
>             assert len(responses.calls) == 1
>             request_data = dict(parse_qsl(responses.calls[0].request.body))
>             assert (
>                 request_data["redirect_uri"]
>                 == "https://a.b.c/login/test-service/authorized";
>             )
>             # check that we stored the access token in the session
>             with client.session_transaction() as sess:
> >               assert sess["test-service_oauth_token"] == {
>                     "access_token": "foobar",
>                     "scope": ["admin"],
>                     "token_type": "bearer",
>                 }
> 
> tests/consumer/test_oauth2.py:142: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <SecureCookieSession {'test-service_oauth_state': 'random-string'}>
> key = 'test-service_oauth_token'
> 
>     def __getitem__(self, key: str) -> t.Any:
>         self.accessed = True
> >       return super().__getitem__(key)
> E       KeyError: 'test-service_oauth_token'
> 
> /usr/lib/python3/dist-packages/flask/sessions.py:80: KeyError
> ______________________ test_authorized_url_token_lifetime 
> ______________________
> 
>     @responses.activate
>     @freeze_time("2016-01-01 12:00:01")
>     def test_authorized_url_token_lifetime():
>         responses.add(
>             responses.POST,
>             "https://example.com/oauth/access_token";,
>             
> body='{"access_token":"foobar","token_type":"bearer","expires_in":300}',
>         )
>         app, _ = make_app()
>     
>         with app.test_client() as client:
>             # reset the session before the request
>             with client.session_transaction() as sess:
>                 sess["test-service_oauth_state"] = "random-string"
>             # make the request
>             resp = client.get(
>                 
> "/login/test-service/authorized?code=secret-code&state=random-string",
>                 base_url="https://a.b.c";,
>             )
>             # check that we redirected the client
>             assert resp.status_code == 302
>             assert resp.headers["Location"] in ("https://a.b.c/";, "/")
>             # check that we obtained an access token
>             assert len(responses.calls) == 1
>             request_data = dict(parse_qsl(responses.calls[0].request.body))
>             assert (
>                 request_data["redirect_uri"]
>                 == "https://a.b.c/login/test-service/authorized";
>             )
>             # check that we stored the access token and expiration date in 
> the session
>             expected_stored_token = {
>                 "access_token": "foobar",
>                 "token_type": "bearer",
>                 "expires_in": 300,
>                 "expires_at": 1451649901,
>             }
>             with client.session_transaction() as sess:
> >               assert sess["test-service_oauth_token"] == 
> > expected_stored_token
> 
> tests/consumer/test_oauth2.py:253: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <SecureCookieSession {'test-service_oauth_state': 'random-string'}>
> key = 'test-service_oauth_token'
> 
>     def __getitem__(self, key: str) -> t.Any:
>         self.accessed = True
> >       return super().__getitem__(key)
> E       KeyError: 'test-service_oauth_token'
> 
> /usr/lib/python3/dist-packages/flask/sessions.py:80: KeyError
> =============================== warnings summary 
> ===============================
> tests/consumer/storage/test_sqla.py::test_sqla_flask_login
>   /<<PKGBUILDDIR>>/tests/consumer/storage/test_sqla.py:335: LegacyAPIWarning: 
> Deprecated API features detected! These feature(s) are not compatible with 
> SQLAlchemy 2.0. To prevent incompatible upgrades prior to updating 
> applications, ensure requirements files are pinned to "sqlalchemy<2.0". Set 
> environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings.  
> Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this 
> message. (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
>     return User.query.get(userid)
> 
> tests/consumer/storage/test_sqla.py::test_sqla_cache
>   /usr/lib/python3/dist-packages/flask_caching/__init__.py:158: 
> DeprecationWarning: Using the initialization functions in 
> flask_caching.backend is deprecated.  Use the a full path to backend classes 
> directly.
>     warnings.warn(
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED tests/consumer/test_oauth2.py::test_authorized_url - KeyError: 
> 'test-s...
> FAILED tests/consumer/test_oauth2.py::test_authorized_url_token_lifetime - 
> Ke...
> =========== 2 failed, 193 passed, 1 deselected, 2 warnings in 2.86s 
> ============
> E: pybuild pybuild:388: test: plugin custom failed with: exit code=1: 
> python3-coverage run -m pytest -m "not install_required"
> I: pybuild base:240: python3-coverage run -m pytest -m "not install_required"
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
> rootdir: /<<PKGBUILDDIR>>, configfile: pyproject.toml
> plugins: Flask-Dance-6.2.0, mock-3.8.2, betamax-0.8.1
> collected 196 items / 1 deselected / 195 selected
> 
> tests/test_utils.py ..                                                   [  
> 1%]
> tests/consumer/test_oauth1.py ....................                       [ 
> 11%]
> tests/consumer/test_oauth2.py ....F...F...............                   [ 
> 23%]
> tests/consumer/test_requests.py ..........                               [ 
> 28%]
> tests/consumer/storage/test_sqla.py ............                         [ 
> 34%]
> tests/contrib/test_atlassian.py ......                                   [ 
> 37%]
> tests/contrib/test_authentiq.py ....                                     [ 
> 40%]
> tests/contrib/test_azure.py .......                                      [ 
> 43%]
> tests/contrib/test_digitalocean.py .....                                 [ 
> 46%]
> tests/contrib/test_discord.py ....                                       [ 
> 48%]
> tests/contrib/test_dropbox.py ........                                   [ 
> 52%]
> tests/contrib/test_facebook.py .....                                     [ 
> 54%]
> tests/contrib/test_fitbit.py ...                                         [ 
> 56%]
> tests/contrib/test_github.py ...                                         [ 
> 57%]
> tests/contrib/test_gitlab.py ......                                      [ 
> 61%]
> tests/contrib/test_google.py .............                               [ 
> 67%]
> tests/contrib/test_heroku.py ...                                         [ 
> 69%]
> tests/contrib/test_jira.py .......                                       [ 
> 72%]
> tests/contrib/test_linkedin.py ...                                       [ 
> 74%]
> tests/contrib/test_meetup.py ....                                        [ 
> 76%]
> tests/contrib/test_nylas.py ...                                          [ 
> 77%]
> tests/contrib/test_orcid.py ....                                         [ 
> 80%]
> tests/contrib/test_osm.py ...                                            [ 
> 81%]
> tests/contrib/test_reddit.py ....                                        [ 
> 83%]
> tests/contrib/test_salesforce.py ........                                [ 
> 87%]
> tests/contrib/test_slack.py .........                                    [ 
> 92%]
> tests/contrib/test_spotify.py ...                                        [ 
> 93%]
> tests/contrib/test_strava.py ...                                         [ 
> 95%]
> tests/contrib/test_twitch.py ...                                         [ 
> 96%]
> tests/contrib/test_twitter.py ...                                        [ 
> 98%]
> tests/contrib/test_zoho.py ...                                           
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _____________________________ test_authorized_url 
> ______________________________
> 
>     @responses.activate
>     def test_authorized_url():
>         responses.add(
>             responses.POST,
>             "https://example.com/oauth/access_token";,
>             
> body='{"access_token":"foobar","token_type":"bearer","scope":"admin"}',
>         )
>         app, _ = make_app()
>         with app.test_client() as client:
>             # reset the session before the request
>             with client.session_transaction() as sess:
>                 sess["test-service_oauth_state"] = "random-string"
>             # make the request
>             resp = client.get(
>                 
> "/login/test-service/authorized?code=secret-code&state=random-string",
>                 base_url="https://a.b.c";,
>             )
>             # check that we redirected the client
>             assert resp.status_code == 302
>             assert resp.headers["Location"] in ("https://a.b.c/";, "/")
>             # check that we obtained an access token
>             assert len(responses.calls) == 1
>             request_data = dict(parse_qsl(responses.calls[0].request.body))
>             assert (
>                 request_data["redirect_uri"]
>                 == "https://a.b.c/login/test-service/authorized";
>             )
>             # check that we stored the access token in the session
>             with client.session_transaction() as sess:
> >               assert sess["test-service_oauth_token"] == {
>                     "access_token": "foobar",
>                     "scope": ["admin"],
>                     "token_type": "bearer",
>                 }
> 
> tests/consumer/test_oauth2.py:142: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <SecureCookieSession {'test-service_oauth_state': 'random-string'}>
> key = 'test-service_oauth_token'
> 
>     def __getitem__(self, key: str) -> t.Any:
>         self.accessed = True
> >       return super().__getitem__(key)
> E       KeyError: 'test-service_oauth_token'
> 
> /usr/lib/python3/dist-packages/flask/sessions.py:80: KeyError
> ______________________ test_authorized_url_token_lifetime 
> ______________________
> 
>     @responses.activate
>     @freeze_time("2016-01-01 12:00:01")
>     def test_authorized_url_token_lifetime():
>         responses.add(
>             responses.POST,
>             "https://example.com/oauth/access_token";,
>             
> body='{"access_token":"foobar","token_type":"bearer","expires_in":300}',
>         )
>         app, _ = make_app()
>     
>         with app.test_client() as client:
>             # reset the session before the request
>             with client.session_transaction() as sess:
>                 sess["test-service_oauth_state"] = "random-string"
>             # make the request
>             resp = client.get(
>                 
> "/login/test-service/authorized?code=secret-code&state=random-string",
>                 base_url="https://a.b.c";,
>             )
>             # check that we redirected the client
>             assert resp.status_code == 302
>             assert resp.headers["Location"] in ("https://a.b.c/";, "/")
>             # check that we obtained an access token
>             assert len(responses.calls) == 1
>             request_data = dict(parse_qsl(responses.calls[0].request.body))
>             assert (
>                 request_data["redirect_uri"]
>                 == "https://a.b.c/login/test-service/authorized";
>             )
>             # check that we stored the access token and expiration date in 
> the session
>             expected_stored_token = {
>                 "access_token": "foobar",
>                 "token_type": "bearer",
>                 "expires_in": 300,
>                 "expires_at": 1451649901,
>             }
>             with client.session_transaction() as sess:
> >               assert sess["test-service_oauth_token"] == 
> > expected_stored_token
> 
> tests/consumer/test_oauth2.py:253: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <SecureCookieSession {'test-service_oauth_state': 'random-string'}>
> key = 'test-service_oauth_token'
> 
>     def __getitem__(self, key: str) -> t.Any:
>         self.accessed = True
> >       return super().__getitem__(key)
> E       KeyError: 'test-service_oauth_token'
> 
> /usr/lib/python3/dist-packages/flask/sessions.py:80: KeyError
> =============================== warnings summary 
> ===============================
> tests/consumer/storage/test_sqla.py::test_sqla_flask_login
>   /<<PKGBUILDDIR>>/tests/consumer/storage/test_sqla.py:335: LegacyAPIWarning: 
> Deprecated API features detected! These feature(s) are not compatible with 
> SQLAlchemy 2.0. To prevent incompatible upgrades prior to updating 
> applications, ensure requirements files are pinned to "sqlalchemy<2.0". Set 
> environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings.  
> Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this 
> message. (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
>     return User.query.get(userid)
> 
> tests/consumer/storage/test_sqla.py::test_sqla_cache
>   /usr/lib/python3/dist-packages/flask_caching/__init__.py:158: 
> DeprecationWarning: Using the initialization functions in 
> flask_caching.backend is deprecated.  Use the a full path to backend classes 
> directly.
>     warnings.warn(
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED tests/consumer/test_oauth2.py::test_authorized_url - KeyError: 
> 'test-s...
> FAILED tests/consumer/test_oauth2.py::test_authorized_url_token_lifetime - 
> Ke...
> =========== 2 failed, 193 passed, 1 deselected, 2 warnings in 2.07s 
> ============
> E: pybuild pybuild:388: test: plugin custom failed with: exit code=1: 
> python3-coverage run -m pytest -m "not install_required"
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.10 
> 3.11" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/01/13/flask-dance_6.2.0-2_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230113;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230113&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

--- End Message ---
--- Begin Message ---
Source: flask-dance
Source-Version: 6.2.0-2.1
Done: Simon Quigley <[email protected]>

We believe that the bug you reported is fixed in the latest version of
flask-dance, 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 [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Simon Quigley <[email protected]> (supplier of updated flask-dance 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 [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 19 Jan 2023 18:02:16 -0600
Source: flask-dance
Built-For-Profiles: noudeb
Architecture: source
Version: 6.2.0-2.1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Simon Quigley <[email protected]>
Closes: 1028877
Changes:
 flask-dance (6.2.0-2.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
   * Fix the autopkgtest using an upstream patch (Closes: #1028877).
Checksums-Sha1:
 82199029af2ce8b623f63870457c4c0ad8f9e40a 3099 flask-dance_6.2.0-2.1.dsc
 320c2c4e69367be299920419935c07492324dcfc 4504 
flask-dance_6.2.0-2.1.debian.tar.xz
 e687050aee4ed603d66a57e2aa1cb11f5e764834 11581 
flask-dance_6.2.0-2.1_source.buildinfo
Checksums-Sha256:
 2471e46c0bf38f8e32a458be8f2c351ad8dab23fab3fabfbda5a7bb18f5bd0d4 3099 
flask-dance_6.2.0-2.1.dsc
 7a611ac0d27ecfb8ee895e666db9a2ceb4368dd36c16793c06dcdbd7ccebbc64 4504 
flask-dance_6.2.0-2.1.debian.tar.xz
 f6dde2adb813e078c87a37188d8808b94823afdf81125f82421fde45c94dd49a 11581 
flask-dance_6.2.0-2.1_source.buildinfo
Files:
 9b1e72ed4de99ed87f9e7b379174932a 3099 python optional flask-dance_6.2.0-2.1.dsc
 7d2309f38570ba4ed5a74aaa7f6b9663 4504 python optional 
flask-dance_6.2.0-2.1.debian.tar.xz
 6357d564c3d603f571d42f880939bbd7 11581 python optional 
flask-dance_6.2.0-2.1_source.buildinfo

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

iQJOBAEBCAA4FiEEXHq+og+GMEWcyMi14n8s+EWML6QFAmPJ3TYaHHRzaW1vbnEy
QGxpbnV4cGFkYXdhbi5uZXQACgkQ4n8s+EWML6SCERAApTt9zWLu/V0rNAFHI9ZF
DxGvJYxNvY8/a28c+7qU3Kgyl5llIy2GAx8RtvjpqNiRDTZdpNgCF6eYeJZD2roF
etUgaeal2y4WeA651ef33u2D32K9cQD6E6PpWvLdYFMc99+WMUILLnhFM+kn1xEl
GfF/6jpuYiMCSTsnE4whbkCnJbj5/R0ycFI6/K3SDf70eynDD4ztZeiYk0DSAPaK
9/zhp4oNyhVYeTclfMAhtxh/oLRJcMEYEppbtwkLBihYmb2yGsWBVx3xcjashR3e
vt2By6Hm5qgjwZRga4mprBHbenSWYMXw3yiVzSei/n0eNeLJ+ADbeQ8+3C/1XX4e
g+JC4hmqTDrCP+52n+CAQQHFu2kIDGf1irUF7tm3QBlY9X2s7gzJaG1CjpAbz2tC
3PUlj2CSIaLxbc01Y00aOVk6IcEV8XvrbAuX+xSVG85x2lnqAZ2h0OSIoBiRA9Z0
kyeLyHzaPL58LLhluYfUsBjM4LqIEgL+3N8VqUvuQbXKPrysz5wTOunFJPZTzYrz
SC5DDpU/D+OIDkb+XyoY4UkN542oGjr9e5uS0GzZy1RK+F0Ne4mnD5OjXLXyvuHK
+BSWUgBL0ft2eeVIg8HyNNn8WzrQoZnyR+Ct5uJ7hX295XFjxaAv4+9g6sBHvOns
aQqpp5PzHAX07nTLg4OUZYo=
=snVE
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to