Your message dated Fri, 31 Oct 2025 10:09:03 +0000
with message-id <[email protected]>
and subject line Bug#1118720: Removed package(s) from unstable
has caused the Debian Bug report #1058392,
regarding python-oauth2client: FTBFS: failed 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 [email protected]
immediately.)


-- 
1058392: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058392
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: python-oauth2client
Version: 4.1.3-5
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20231212 ftbfs-trixie

Hi,

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


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> make[1]: pyversions: No such file or directory
> py3versions: no X-Python3-Version in control file, using supported versions
> pkgos-dh_auto_install --no-py2 --in-tmp
> + PKGOS_IN_TMP=no
> + echo WARNING: --no-py2 is deprecated and always on.
> WARNING: --no-py2 is deprecated and always on.
> + shift
> + PKGOS_IN_TMP=yes
> + shift
> + dpkg-parsechangelog -SSource
> + SRC_PKG_NAME=python-oauth2client
> + echo python-oauth2client
> + sed s/python-//
> + PY_MODULE_NAME=oauth2client
> + py3versions -vr
> + PYTHON3S=3.12 3.11
> + [ yes = yes ]
> + TARGET_DIR=tmp
> + pwd
> + python3.12 setup.py install --install-layout=deb --root 
> /<<PKGBUILDDIR>>/debian/tmp
> running install
> /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66: 
> SetuptoolsDeprecationWarning: setup.py install is deprecated.
> !!
> 
>         
> ********************************************************************************
>         Please avoid running ``setup.py`` directly.
>         Instead, use pypa/build, pypa/installer or other
>         standards-based tools.
> 
>         See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html 
> for details.
>         
> ********************************************************************************
> 
> !!
>   self.initialize_options()
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/oauth2client
> copying oauth2client/clientsecrets.py -> build/lib/oauth2client
> copying oauth2client/_helpers.py -> build/lib/oauth2client
> copying oauth2client/__init__.py -> build/lib/oauth2client
> copying oauth2client/tools.py -> build/lib/oauth2client
> copying oauth2client/transport.py -> build/lib/oauth2client
> copying oauth2client/_pure_python_crypt.py -> build/lib/oauth2client
> copying oauth2client/_openssl_crypt.py -> build/lib/oauth2client
> copying oauth2client/_pycrypto_crypt.py -> build/lib/oauth2client
> copying oauth2client/service_account.py -> build/lib/oauth2client
> copying oauth2client/client.py -> build/lib/oauth2client
> copying oauth2client/file.py -> build/lib/oauth2client
> copying oauth2client/crypt.py -> build/lib/oauth2client
> copying oauth2client/_pkce.py -> build/lib/oauth2client
> creating build/lib/oauth2client/contrib
> copying oauth2client/contrib/_appengine_ndb.py -> 
> build/lib/oauth2client/contrib
> copying oauth2client/contrib/__init__.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/dictionary_storage.py -> 
> build/lib/oauth2client/contrib
> copying oauth2client/contrib/keyring_storage.py -> 
> build/lib/oauth2client/contrib
> copying oauth2client/contrib/xsrfutil.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/flask_util.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/gce.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/appengine.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/_metadata.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/sqlalchemy.py -> build/lib/oauth2client/contrib
> copying oauth2client/contrib/multiprocess_file_storage.py -> 
> build/lib/oauth2client/contrib
> copying oauth2client/contrib/devshell.py -> build/lib/oauth2client/contrib
> creating build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/__init__.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/apps.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/models.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/site.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/decorators.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/storage.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/signals.py -> 
> build/lib/oauth2client/contrib/django_util
> copying oauth2client/contrib/django_util/views.py -> 
> build/lib/oauth2client/contrib/django_util
> running install_lib
> creating /<<PKGBUILDDIR>>/debian/tmp
> creating /<<PKGBUILDDIR>>/debian/tmp/usr
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages
> creating 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/clientsecrets.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/_helpers.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/__init__.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/tools.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/transport.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/_pure_python_crypt.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/_openssl_crypt.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/_pycrypto_crypt.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/service_account.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> creating 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/_appengine_ndb.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/__init__.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/dictionary_storage.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> creating 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/__init__.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/apps.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/models.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/site.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/decorators.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/storage.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/signals.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/django_util/views.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util
> copying build/lib/oauth2client/contrib/keyring_storage.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/xsrfutil.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/flask_util.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/gce.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/appengine.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/_metadata.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/sqlalchemy.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/multiprocess_file_storage.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/contrib/devshell.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib
> copying build/lib/oauth2client/client.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/file.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/crypt.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> copying build/lib/oauth2client/_pkce.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/clientsecrets.py
>  to clientsecrets.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_helpers.py
>  to _helpers.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/__init__.py
>  to __init__.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/tools.py
>  to tools.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/transport.py
>  to transport.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_pure_python_crypt.py
>  to _pure_python_crypt.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_openssl_crypt.py
>  to _openssl_crypt.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_pycrypto_crypt.py
>  to _pycrypto_crypt.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/service_account.py
>  to service_account.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/_appengine_ndb.py
>  to _appengine_ndb.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/__init__.py
>  to __init__.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/dictionary_storage.py
>  to dictionary_storage.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/__init__.py
>  to __init__.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/apps.py
>  to apps.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/models.py
>  to models.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/site.py
>  to site.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/decorators.py
>  to decorators.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/storage.py
>  to storage.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/signals.py
>  to signals.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/views.py
>  to views.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/keyring_storage.py
>  to keyring_storage.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/xsrfutil.py
>  to xsrfutil.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/flask_util.py
>  to flask_util.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/gce.py
>  to gce.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/appengine.py
>  to appengine.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/_metadata.py
>  to _metadata.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/sqlalchemy.py
>  to sqlalchemy.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/multiprocess_file_storage.py
>  to multiprocess_file_storage.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/devshell.py
>  to devshell.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/client.py
>  to client.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/file.py
>  to file.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/crypt.py
>  to crypt.cpython-312.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_pkce.py
>  to _pkce.cpython-312.pyc
> running install_egg_info
> running egg_info
> creating oauth2client.egg-info
> writing oauth2client.egg-info/PKG-INFO
> writing dependency_links to oauth2client.egg-info/dependency_links.txt
> writing requirements to oauth2client.egg-info/requires.txt
> writing top-level names to oauth2client.egg-info/top_level.txt
> writing manifest file 'oauth2client.egg-info/SOURCES.txt'
> reading manifest file 'oauth2client.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE'
> writing manifest file 'oauth2client.egg-info/SOURCES.txt'
> Copying oauth2client.egg-info to 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client-4.1.3.egg-info
> Skipping SOURCES.txt
> running install_scripts
> + pwd
> + python3.11 setup.py install --install-layout=deb --root 
> /<<PKGBUILDDIR>>/debian/tmp
> running install
> /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66: 
> SetuptoolsDeprecationWarning: setup.py install is deprecated.
> !!
> 
>         
> ********************************************************************************
>         Please avoid running ``setup.py`` directly.
>         Instead, use pypa/build, pypa/installer or other
>         standards-based tools.
> 
>         See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html 
> for details.
>         
> ********************************************************************************
> 
> !!
>   self.initialize_options()
> running build
> running build_py
> running install_lib
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/clientsecrets.py
>  to clientsecrets.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_helpers.py
>  to _helpers.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/__init__.py
>  to __init__.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/tools.py
>  to tools.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/transport.py
>  to transport.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_pure_python_crypt.py
>  to _pure_python_crypt.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_openssl_crypt.py
>  to _openssl_crypt.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_pycrypto_crypt.py
>  to _pycrypto_crypt.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/service_account.py
>  to service_account.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/_appengine_ndb.py
>  to _appengine_ndb.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/__init__.py
>  to __init__.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/dictionary_storage.py
>  to dictionary_storage.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/__init__.py
>  to __init__.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/apps.py
>  to apps.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/models.py
>  to models.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/site.py
>  to site.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/decorators.py
>  to decorators.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/storage.py
>  to storage.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/signals.py
>  to signals.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/django_util/views.py
>  to views.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/keyring_storage.py
>  to keyring_storage.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/xsrfutil.py
>  to xsrfutil.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/flask_util.py
>  to flask_util.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/gce.py
>  to gce.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/appengine.py
>  to appengine.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/_metadata.py
>  to _metadata.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/sqlalchemy.py
>  to sqlalchemy.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/multiprocess_file_storage.py
>  to multiprocess_file_storage.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/contrib/devshell.py
>  to devshell.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/client.py
>  to client.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/file.py
>  to file.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/crypt.py
>  to crypt.cpython-311.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client/_pkce.py
>  to _pkce.cpython-311.pyc
> running install_egg_info
> running egg_info
> writing oauth2client.egg-info/PKG-INFO
> writing dependency_links to oauth2client.egg-info/dependency_links.txt
> writing requirements to oauth2client.egg-info/requires.txt
> writing top-level names to oauth2client.egg-info/top_level.txt
> reading manifest file 'oauth2client.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE'
> writing manifest file 'oauth2client.egg-info/SOURCES.txt'
> removing 
> '/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client-4.1.3.egg-info'
>  (and everything under it)
> Copying oauth2client.egg-info to 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/oauth2client-4.1.3.egg-info
> Skipping SOURCES.txt
> running install_scripts
> + pwd
> + rm -rf /<<PKGBUILDDIR>>/debian/python*/usr/lib/python*/dist-packages/*.pth
> + pwd
> + rm -rf /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python*/dist-packages/*.pth
> rm -rf debian/python*-oauth2client/usr/lib/python*/dist-packages/tests
> ===> Running tests
> set -e ; set -x ; for i in 3.12 3.11 ; do \
>       PYMAJOR=`echo $i | cut -d'.' -f1` ; \
>       echo "===> Testing with python$i (python$PYMAJOR)" ; \
>       DJANGO_SETTINGS_MODULE=tests.contrib.django_util.settings 
> PYTHONPATH=/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages python$i 
> -m \
>               pytest -v tests --ignore=tests/contrib/django_util ; \
> done
> + echo 3.12
> + cut -d. -f1
> + PYMAJOR=3
> + echo ===> Testing with python3.12 (python3)
> ===> Testing with python3.12 (python3)
> + DJANGO_SETTINGS_MODULE=tests.contrib.django_util.settings 
> PYTHONPATH=/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages 
> python3.12 -m pytest -v tests --ignore=tests/contrib/django_util
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.1, pytest-7.4.3, pluggy-1.3.0 -- 
> /usr/bin/python3.12
> cachedir: .pytest_cache
> rootdir: /<<PKGBUILDDIR>>
> collecting ... collected 460 items
> 
> tests/test__helpers.py::PositionalTests::test_enforcement_ignore PASSED  [  
> 0%]
> tests/test__helpers.py::PositionalTests::test_enforcement_warning PASSED [  
> 0%]
> tests/test__helpers.py::PositionalTests::test_usage PASSED               [  
> 0%]
> tests/test__helpers.py::ScopeToStringTests::test_iterables PASSED        [  
> 0%]
> tests/test__helpers.py::StringToScopeTests::test_conversion PASSED       [  
> 1%]
> tests/test__helpers.py::AddQueryParameterTests::test__add_query_parameter 
> PASSED [  1%]
> tests/test__helpers.py::Test__parse_pem_key::test_bad_input PASSED       [  
> 1%]
> tests/test__helpers.py::Test__parse_pem_key::test_valid_input PASSED     [  
> 1%]
> tests/test__helpers.py::Test__json_encode::test_dictionary_input PASSED  [  
> 1%]
> tests/test__helpers.py::Test__json_encode::test_list_input PASSED        [  
> 2%]
> tests/test__helpers.py::Test__to_bytes::test_with_bytes PASSED           [  
> 2%]
> tests/test__helpers.py::Test__to_bytes::test_with_nonstring_type PASSED  [  
> 2%]
> tests/test__helpers.py::Test__to_bytes::test_with_unicode PASSED         [  
> 2%]
> tests/test__helpers.py::Test__from_bytes::test_with_bytes PASSED         [  
> 3%]
> tests/test__helpers.py::Test__from_bytes::test_with_nonstring_type PASSED [  
> 3%]
> tests/test__helpers.py::Test__from_bytes::test_with_unicode PASSED       [  
> 3%]
> tests/test__helpers.py::Test__urlsafe_b64encode::test_valid_input_bytes 
> PASSED [  3%]
> tests/test__helpers.py::Test__urlsafe_b64encode::test_valid_input_str PASSED 
> [  3%]
> tests/test__helpers.py::Test__urlsafe_b64encode::test_valid_input_unicode 
> PASSED [  4%]
> tests/test__helpers.py::Test__urlsafe_b64decode::test_bad_input PASSED   [  
> 4%]
> tests/test__helpers.py::Test__urlsafe_b64decode::test_valid_input_bytes 
> PASSED [  4%]
> tests/test__helpers.py::Test__urlsafe_b64decode::test_valid_input_str PASSED 
> [  4%]
> tests/test__helpers.py::Test__urlsafe_b64decode::test_valid_input_unicode 
> PASSED [  5%]
> tests/test__helpers.py::Test_update_query_params::test_update_query_params_existing_params
>  PASSED [  5%]
> tests/test__helpers.py::Test_update_query_params::test_update_query_params_no_params
>  PASSED [  5%]
> tests/test__helpers.py::Test_update_query_params::test_update_query_params_repeated_params
>  PASSED [  5%]
> tests/test__helpers.py::Test_update_query_params::test_update_query_params_replace_param
>  PASSED [  5%]
> tests/test__helpers.py::Test_parse_unique_urlencoded::test_with_repeats 
> PASSED [  6%]
> tests/test__helpers.py::Test_parse_unique_urlencoded::test_without_repeats 
> PASSED [  6%]
> tests/test__pkce.py::PKCETests::test_challenge PASSED                    [  
> 6%]
> tests/test__pkce.py::PKCETests::test_verifier PASSED                     [  
> 6%]
> tests/test__pkce.py::PKCETests::test_verifier_too_long PASSED            [  
> 6%]
> tests/test__pkce.py::PKCETests::test_verifier_too_short PASSED           [  
> 7%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_from_string_pub_cert 
> PASSED [  7%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_from_string_pub_cert_failure
>  PASSED [  7%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_from_string_pub_cert_unicode
>  PASSED [  7%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_from_string_pub_key 
> PASSED [  8%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_from_string_pub_key_unicode
>  PASSED [  8%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_verify_failure PASSED 
> [  8%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_verify_success PASSED 
> [  8%]
> tests/test__pure_python_crypt.py::TestRsaVerifier::test_verify_unicode_success
>  PASSED [  8%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_bogus_key 
> PASSED [  9%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_pkcs1 
> PASSED [  9%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_pkcs12 
> PASSED [  9%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_pkcs1_unicode
>  PASSED [  9%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_pkcs8 
> PASSED [ 10%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_pkcs8_extra_bytes
>  PASSED [ 10%]
> tests/test__pure_python_crypt.py::TestRsaSigner::test_from_string_pkcs8_unicode
>  PASSED [ 10%]
> tests/test__pycrypto_crypt.py::TestPyCryptoVerifier::test_from_string_unicode_key
>  PASSED [ 10%]
> tests/test__pycrypto_crypt.py::TestPyCryptoVerifier::test_verify_bad_key 
> PASSED [ 10%]
> tests/test__pycrypto_crypt.py::TestPyCryptoVerifier::test_verify_failure 
> PASSED [ 11%]
> tests/test__pycrypto_crypt.py::TestPyCryptoVerifier::test_verify_success 
> PASSED [ 11%]
> tests/test__pycrypto_crypt.py::TestPyCryptoSigner::test_from_string_bad_key 
> PASSED [ 11%]
> tests/test_client.py::CredentialsTests::test__to_json_basic PASSED       [ 
> 11%]
> tests/test_client.py::CredentialsTests::test__to_json_to_serialize PASSED [ 
> 11%]
> tests/test_client.py::CredentialsTests::test__to_json_with_strip PASSED  [ 
> 12%]
> tests/test_client.py::CredentialsTests::test_apply_abstract PASSED       [ 
> 12%]
> tests/test_client.py::CredentialsTests::test_authorize_abstract PASSED   [ 
> 12%]
> tests/test_client.py::CredentialsTests::test_from_json PASSED            [ 
> 12%]
> tests/test_client.py::CredentialsTests::test_new_from_json_bad_class PASSED [ 
> 13%]
> tests/test_client.py::CredentialsTests::test_new_from_json_bad_module PASSED 
> [ 13%]
> tests/test_client.py::CredentialsTests::test_new_from_json_basic_data PASSED 
> [ 13%]
> tests/test_client.py::CredentialsTests::test_new_from_json_no_data PASSED [ 
> 13%]
> tests/test_client.py::CredentialsTests::test_new_from_json_old_name PASSED [ 
> 13%]
> tests/test_client.py::CredentialsTests::test_refresh_abstract PASSED     [ 
> 14%]
> tests/test_client.py::CredentialsTests::test_revoke_abstract PASSED      [ 
> 14%]
> tests/test_client.py::CredentialsTests::test_to_from_json PASSED         [ 
> 14%]
> tests/test_client.py::CredentialsTests::test_to_json PASSED              [ 
> 14%]
> tests/test_client.py::TestStorage::test_locked_delete_abstract PASSED    [ 
> 15%]
> tests/test_client.py::TestStorage::test_locked_get_abstract PASSED       [ 
> 15%]
> tests/test_client.py::TestStorage::test_locked_put_abstract PASSED       [ 
> 15%]
> tests/test_client.py::GoogleCredentialsTests::test_bad_expiry PASSED     [ 
> 15%]
> tests/test_client.py::GoogleCredentialsTests::test_create_scoped PASSED  [ 
> 15%]
> tests/test_client.py::GoogleCredentialsTests::test_create_scoped_required 
> PASSED [ 16%]
> tests/test_client.py::GoogleCredentialsTests::test_env_name PASSED       [ 
> 16%]
> tests/test_client.py::GoogleCredentialsTests::test_environ_check_gae_module_unknown
>  PASSED [ 16%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_caching PASSED 
> [ 16%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_fastpath 
> PASSED [ 16%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_gae_local
>  PASSED [ 17%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_gae_production
>  PASSED [ 17%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_gce_prod_with_working_gae_imports
>  PASSED [ 17%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_gce_production
>  PASSED [ 17%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_gce_timeout
>  PASSED [ 18%]
> tests/test_client.py::GoogleCredentialsTests::test_environment_check_unknown 
> PASSED [ 18%]
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_authorized_user
>  PASSED [ 18%]
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_malformed_file_1
>  FAILED [ 18%]
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_malformed_file_2
>  FAILED [ 18%]
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_malformed_file_3
>  PASSED [ 19%]
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_missing_file 
> FAILED [ 19%]
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_service_account
>  PASSED [ 19%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_env_from_well_known
>  PASSED [ 19%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_env_not_set_up 
> PASSED [ 20%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_from_env_var_authorized_user
>  PASSED [ 20%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_from_env_var_malformed_file
>  PASSED [ 20%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_from_env_var_service_account
>  PASSED [ 20%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_from_file_authorized_user
>  PASSED [ 20%]
> tests/test_client.py::GoogleCredentialsTests::test_get_adc_from_file_service_account
>  PASSED [ 21%]
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_credential_from_malformed_file_1
>  FAILED [ 21%]
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_credential_from_malformed_file_2
>  FAILED [ 21%]
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_credential_from_malformed_file_3
>  PASSED [ 21%]
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_in_gae
>  PASSED [ 21%]
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_in_gce
>  PASSED [ 22%]
> tests/test_client.py::GoogleCredentialsTests::test_get_environment_variable_file
>  PASSED [ 22%]
> tests/test_client.py::GoogleCredentialsTests::test_get_environment_variable_file_error
>  FAILED [ 22%]
> tests/test_client.py::GoogleCredentialsTests::test_get_environment_variable_file_without_env_var
>  PASSED [ 22%]
> tests/test_client.py::GoogleCredentialsTests::test_get_well_known_file_on_windows
>  PASSED [ 23%]
> tests/test_client.py::GoogleCredentialsTests::test_get_well_known_file_on_windows_without_appdata
>  PASSED [ 23%]
> tests/test_client.py::GoogleCredentialsTests::test_get_well_known_file_with_custom_config_dir
>  PASSED [ 23%]
> tests/test_client.py::GoogleCredentialsTests::test_parse_expiry PASSED   [ 
> 23%]
> tests/test_client.py::GoogleCredentialsTests::test_raise_exception_for_missing_fields
>  FAILED [ 23%]
> tests/test_client.py::GoogleCredentialsTests::test_raise_exception_for_reading_json
>  FAILED [ 24%]
> tests/test_client.py::GoogleCredentialsTests::test_save_to_well_known_file_authorized_user
>  PASSED [ 24%]
> tests/test_client.py::GoogleCredentialsTests::test_save_to_well_known_file_service_account
>  PASSED [ 24%]
> tests/test_client.py::GoogleCredentialsTests::test_save_well_known_file_with_non_existent_config_dir
>  PASSED [ 24%]
> tests/test_client.py::GoogleCredentialsTests::test_to_from_json_authorized_user
>  PASSED [ 25%]
> tests/test_client.py::GoogleCredentialsTests::test_to_from_json_service_account
>  PASSED [ 25%]
> tests/test_client.py::GoogleCredentialsTests::test_to_from_json_service_account_scoped
>  PASSED [ 25%]
> tests/test_client.py::BasicCredentialsTests::test__do_refresh_request_basic_failure
>  PASSED [ 25%]
> tests/test_client.py::BasicCredentialsTests::test__do_refresh_request_failure_w_json_error
>  PASSED [ 25%]
> tests/test_client.py::BasicCredentialsTests::test__do_refresh_request_failure_w_json_error_and_desc
>  PASSED [ 26%]
> tests/test_client.py::BasicCredentialsTests::test__do_refresh_request_failure_w_json_error_and_store
>  PASSED [ 26%]
> tests/test_client.py::BasicCredentialsTests::test__do_refresh_request_non_json_failure
>  PASSED [ 26%]
> tests/test_client.py::BasicCredentialsTests::test__do_retrieve_scopes_basic_failure
>  PASSED [ 26%]
> tests/test_client.py::BasicCredentialsTests::test__do_retrieve_scopes_failure_w_json_error
>  PASSED [ 26%]
> tests/test_client.py::BasicCredentialsTests::test__do_retrieve_scopes_non_json_failure
>  PASSED [ 27%]
> tests/test_client.py::BasicCredentialsTests::test__do_retrieve_scopes_success 
> PASSED [ 27%]
> tests/test_client.py::BasicCredentialsTests::test__do_retrieve_scopes_success_bad_json
>  PASSED [ 27%]
> tests/test_client.py::BasicCredentialsTests::test__do_revoke_basic_failure 
> PASSED [ 27%]
> tests/test_client.py::BasicCredentialsTests::test__do_revoke_failure_w_json_error
>  PASSED [ 28%]
> tests/test_client.py::BasicCredentialsTests::test__do_revoke_failure_w_json_error_and_store
>  PASSED [ 28%]
> tests/test_client.py::BasicCredentialsTests::test__do_revoke_non_json_failure 
> PASSED [ 28%]
> tests/test_client.py::BasicCredentialsTests::test__do_revoke_success PASSED [ 
> 28%]
> tests/test_client.py::BasicCredentialsTests::test__do_revoke_success_with_store
>  PASSED [ 28%]
> tests/test_client.py::BasicCredentialsTests::test__expires_in_expired PASSED 
> [ 29%]
> tests/test_client.py::BasicCredentialsTests::test__expires_in_no_expiry 
> PASSED [ 29%]
> tests/test_client.py::BasicCredentialsTests::test__expires_in_not_expired 
> PASSED [ 29%]
> tests/test_client.py::BasicCredentialsTests::test_from_json_bad_token_expiry 
> PASSED [ 29%]
> tests/test_client.py::BasicCredentialsTests::test_from_json_token_expiry 
> PASSED [ 30%]
> tests/test_client.py::BasicCredentialsTests::test_get_access_token PASSED [ 
> 30%]
> tests/test_client.py::BasicCredentialsTests::test_get_access_token_with_http 
> PASSED [ 30%]
> tests/test_client.py::BasicCredentialsTests::test_get_access_token_without_http
>  PASSED [ 30%]
> tests/test_client.py::BasicCredentialsTests::test_has_scopes PASSED      [ 
> 30%]
> tests/test_client.py::BasicCredentialsTests::test_no_unicode_in_request_params
>  PASSED [ 31%]
> tests/test_client.py::BasicCredentialsTests::test_non_401_error_response 
> PASSED [ 31%]
> tests/test_client.py::BasicCredentialsTests::test_recursive_authorize PASSED 
> [ 31%]
> tests/test_client.py::BasicCredentialsTests::test_refresh_updates_id_token 
> PASSED [ 31%]
> tests/test_client.py::BasicCredentialsTests::test_retrieve_scopes PASSED [ 
> 31%]
> tests/test_client.py::BasicCredentialsTests::test_to_from_json PASSED    [ 
> 32%]
> tests/test_client.py::BasicCredentialsTests::test_token_refresh_failure 
> PASSED [ 32%]
> tests/test_client.py::BasicCredentialsTests::test_token_refresh_success 
> PASSED [ 32%]
> tests/test_client.py::BasicCredentialsTests::test_token_revoke_405 PASSED [ 
> 32%]
> tests/test_client.py::BasicCredentialsTests::test_token_revoke_failure PASSED 
> [ 33%]
> tests/test_client.py::BasicCredentialsTests::test_token_revoke_fallback 
> PASSED [ 33%]
> tests/test_client.py::BasicCredentialsTests::test_token_revoke_success PASSED 
> [ 33%]
> tests/test_client.py::BasicCredentialsTests::test_unicode_header_checks 
> PASSED [ 33%]
> tests/test_client.py::AccessTokenCredentialsTests::test_auth_header_sent 
> PASSED [ 33%]
> tests/test_client.py::AccessTokenCredentialsTests::test_non_401_error_response
>  PASSED [ 34%]
> tests/test_client.py::AccessTokenCredentialsTests::test_token_refresh_success 
> PASSED [ 34%]
> tests/test_client.py::AccessTokenCredentialsTests::test_token_revoke_failure 
> PASSED [ 34%]
> tests/test_client.py::AccessTokenCredentialsTests::test_token_revoke_success 
> PASSED [ 34%]
> tests/test_client.py::TestAssertionCredentials::test__generate_assertion_abstract
>  PASSED [ 35%]
> tests/test_client.py::TestAssertionCredentials::test_assertion_body PASSED [ 
> 35%]
> tests/test_client.py::TestAssertionCredentials::test_assertion_refresh PASSED 
> [ 35%]
> tests/test_client.py::TestAssertionCredentials::test_sign_blob_abstract 
> PASSED [ 35%]
> tests/test_client.py::TestAssertionCredentials::test_token_revoke_failure 
> PASSED [ 35%]
> tests/test_client.py::TestAssertionCredentials::test_token_revoke_success 
> PASSED [ 36%]
> tests/test_client.py::ExtractIdTokenTest::test_extract_failure PASSED    [ 
> 36%]
> tests/test_client.py::ExtractIdTokenTest::test_extract_success PASSED    [ 
> 36%]
> tests/test_client.py::OAuth2WebServerFlowTest::test__oauth2_web_server_flow_params
>  PASSED [ 36%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_construct_authorize_url 
> PASSED [ 36%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_dictlike PASSED 
> [ 37%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_fails_if_no_code 
> FAILED [ 37%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_failure PASSED [ 
> 37%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_failure_with_json_error
>  PASSED [ 37%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_id_token PASSED 
> [ 38%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_id_token_fail 
> PASSED [ 38%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_no_expires_in 
> PASSED [ 38%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_success PASSED [ 
> 38%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_success_binary_code
>  PASSED [ 38%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_success_with_device_flow_info
>  PASSED [ 39%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_using_authorization_header
>  PASSED [ 39%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_with_pkce PASSED 
> [ 39%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_override_flow_via_kwargs 
> PASSED [ 39%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_scope_is_required PASSED 
> [ 40%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_authorize_url_pkce
>  PASSED [ 40%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_authorize_url_pkce_invalid_verifier
>  PASSED [ 40%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_authorize_url_redirect_override
>  PASSED [ 40%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_authorize_url_without_login_hint
>  PASSED [ 40%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_authorize_url_without_redirect
>  PASSED [ 41%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes
>  PASSED [ 41%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_bad_payload
>  PASSED [ 41%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_basic_failure
>  PASSED [ 41%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_failure_w_json_error
>  PASSED [ 41%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_non_json_failure
>  PASSED [ 42%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_w_default_http
>  PASSED [ 42%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_w_user_agent
>  PASSED [ 42%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step1_get_device_and_user_codes_wo_device_uri
>  PASSED [ 42%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step2_exchange_code_and_device_flow
>  PASSED [ 43%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_step2_exchange_no_input 
> PASSED [ 43%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_urlencoded_exchange_failure
>  FAILED [ 43%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_urlencoded_exchange_no_expires_in
>  PASSED [ 43%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_urlencoded_exchange_success
>  PASSED [ 43%]
> tests/test_client.py::OAuth2WebServerFlowTest::test_urlencoded_expires_param 
> PASSED [ 44%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_cached
>  PASSED [ 44%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_invalid
>  PASSED [ 44%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_invalid_w_msg
>  PASSED [ 44%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_invalid_w_msg_and_text
>  PASSED [ 45%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_success
>  PASSED [ 45%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_success_w_device_uri
>  PASSED [ 45%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_success_w_revoke_uri
>  PASSED [ 45%]
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_unknown_flow
>  FAILED [ 45%]
> tests/test_client.py::CredentialsFromCodeTests::test_exchange_code_and_cached_file_for_token
>  PASSED [ 46%]
> tests/test_client.py::CredentialsFromCodeTests::test_exchange_code_and_file_for_token
>  PASSED [ 46%]
> tests/test_client.py::CredentialsFromCodeTests::test_exchange_code_and_file_for_token_fail
>  PASSED [ 46%]
> tests/test_client.py::CredentialsFromCodeTests::test_exchange_code_for_token 
> PASSED [ 46%]
> tests/test_client.py::CredentialsFromCodeTests::test_exchange_code_for_token_fail
>  PASSED [ 46%]
> tests/test_client.py::Test__save_private_file::test_existing PASSED      [ 
> 47%]
> tests/test_client.py::Test__save_private_file::test_new PASSED           [ 
> 47%]
> tests/test_client.py::Test__get_application_default_credential_GAE::test_it 
> PASSED [ 47%]
> tests/test_client.py::Test__get_application_default_credential_GCE::test_it 
> PASSED [ 47%]
> tests/test_client.py::Test__require_crypto_or_die::test_with_crypto PASSED [ 
> 48%]
> tests/test_client.py::Test__require_crypto_or_die::test_without_crypto PASSED 
> [ 48%]
> tests/test_client.py::TestDeviceFlowInfo::test_FromResponse PASSED       [ 
> 48%]
> tests/test_client.py::TestDeviceFlowInfo::test_FromResponse_fallback_to_uri 
> PASSED [ 48%]
> tests/test_client.py::TestDeviceFlowInfo::test_FromResponse_missing_url 
> PASSED [ 48%]
> tests/test_client.py::TestDeviceFlowInfo::test_FromResponse_with_expires_in 
> PASSED [ 49%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_invalid_client_type
>  PASSED [ 49%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_missing_required_type_installed
>  PASSED [ 49%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_missing_required_type_web
>  PASSED [ 49%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_string_not_configured_type_installed
>  PASSED [ 50%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_string_not_configured_type_web
>  PASSED [ 50%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_success_type_installed
>  PASSED [ 50%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_success_type_web
>  PASSED [ 50%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_with_non_dictionary
>  PASSED [ 50%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_with_none 
> PASSED [ 51%]
> tests/test_clientsecrets.py::Test__validate_clientsecrets::test_with_other_than_one_key
>  PASSED [ 51%]
> tests/test_clientsecrets.py::Test__loadfile::test_bad_json PASSED        [ 
> 51%]
> tests/test_clientsecrets.py::Test__loadfile::test_non_existent PASSED    [ 
> 51%]
> tests/test_clientsecrets.py::Test__loadfile::test_success PASSED         [ 
> 51%]
> tests/test_clientsecrets.py::OAuth2CredentialsTests::test_load_by_filename_missing_file
>  FAILED [ 52%]
> tests/test_clientsecrets.py::OAuth2CredentialsTests::test_validate_error 
> PASSED [ 52%]
> tests/test_clientsecrets.py::CachedClientsecretsTests::test_cache_hit PASSED 
> [ 52%]
> tests/test_clientsecrets.py::CachedClientsecretsTests::test_cache_miss PASSED 
> [ 52%]
> tests/test_clientsecrets.py::CachedClientsecretsTests::test_validation PASSED 
> [ 53%]
> tests/test_clientsecrets.py::CachedClientsecretsTests::test_without_cache 
> PASSED [ 53%]
> tests/test_crypt.py::Test__bad_pkcs12_key_as_pem::test_fails PASSED      [ 
> 53%]
> tests/test_crypt.py::Test_pkcs12_key_as_pem::test_succeeds PASSED        [ 
> 53%]
> tests/test_crypt.py::Test_pkcs12_key_as_pem::test_succeeds_with_unicode_password
>  PASSED [ 53%]
> tests/test_crypt.py::Test__verify_signature::test_failure PASSED         [ 
> 54%]
> tests/test_crypt.py::Test__verify_signature::test_success_multiple_certs 
> PASSED [ 54%]
> tests/test_crypt.py::Test__verify_signature::test_success_single_cert PASSED 
> [ 54%]
> tests/test_crypt.py::Test__check_audience::test_missing_aud PASSED       [ 
> 54%]
> tests/test_crypt.py::Test__check_audience::test_null_audience PASSED     [ 
> 55%]
> tests/test_crypt.py::Test__check_audience::test_success PASSED           [ 
> 55%]
> tests/test_crypt.py::Test__check_audience::test_wrong_aud PASSED         [ 
> 55%]
> tests/test_crypt.py::Test__verify_time_range::test_success PASSED        [ 
> 55%]
> tests/test_crypt.py::Test__verify_time_range::test_with_bad_token_lifetime 
> PASSED [ 55%]
> tests/test_crypt.py::Test__verify_time_range::test_with_expiration_in_the_past
>  PASSED [ 56%]
> tests/test_crypt.py::Test__verify_time_range::test_with_issued_at_in_future 
> PASSED [ 56%]
> tests/test_crypt.py::Test__verify_time_range::test_without_expiration PASSED 
> [ 56%]
> tests/test_crypt.py::Test__verify_time_range::test_without_issued_at PASSED [ 
> 56%]
> tests/test_crypt.py::Test_verify_signed_jwt_with_certs::test_jwt_no_segments 
> PASSED [ 56%]
> tests/test_crypt.py::Test_verify_signed_jwt_with_certs::test_jwt_payload_bad_json
>  PASSED [ 57%]
> tests/test_crypt.py::Test_verify_signed_jwt_with_certs::test_success PASSED [ 
> 57%]
> tests/test_file.py::OAuth2ClientFileTests::test_access_token_credentials 
> FAILED [ 57%]
> tests/test_file.py::OAuth2ClientFileTests::test_credentials_delete PASSED [ 
> 57%]
> tests/test_file.py::OAuth2ClientFileTests::test_directory_file_storage PASSED 
> [ 58%]
> tests/test_file.py::OAuth2ClientFileTests::test_no_sym_link_credentials 
> PASSED [ 58%]
> tests/test_file.py::OAuth2ClientFileTests::test_non_existent_file_storage 
> PASSED [ 58%]
> tests/test_file.py::OAuth2ClientFileTests::test_pickle_and_json_interop 
> FAILED [ 58%]
> tests/test_file.py::OAuth2ClientFileTests::test_token_refresh_good_store 
> FAILED [ 58%]
> tests/test_file.py::OAuth2ClientFileTests::test_token_refresh_store_expired 
> FAILED [ 59%]
> tests/test_file.py::OAuth2ClientFileTests::test_token_refresh_store_expires_soon
>  PASSED [ 59%]
> tests/test_file.py::OAuth2ClientFileTests::test_token_refresh_stream_body 
> PASSED [ 59%]
> tests/test_jwt.py::CryptTests::test_from_string_non_509_cert PASSED      [ 
> 59%]
> tests/test_jwt.py::CryptTests::test_sign_and_verify PASSED               [ 
> 60%]
> tests/test_jwt.py::CryptTests::test_sign_and_verify_from_converted_pkcs12 
> PASSED [ 60%]
> tests/test_jwt.py::CryptTests::test_verify_id_token PASSED               [ 
> 60%]
> tests/test_jwt.py::CryptTests::test_verify_id_token_bad_tokens PASSED    [ 
> 60%]
> tests/test_jwt.py::CryptTests::test_verify_id_token_with_certs_uri PASSED [ 
> 60%]
> tests/test_jwt.py::CryptTests::test_verify_id_token_with_certs_uri_default_http
>  PASSED [ 61%]
> tests/test_jwt.py::CryptTests::test_verify_id_token_with_certs_uri_fails 
> PASSED [ 61%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_from_string_non_509_cert 
> PASSED [ 61%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_sign_and_verify PASSED    [ 
> 61%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_sign_and_verify_from_converted_pkcs12
>  PASSED [ 61%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_verify_id_token PASSED    [ 
> 62%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_verify_id_token_bad_tokens 
> PASSED [ 62%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_verify_id_token_with_certs_uri 
> PASSED [ 62%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_verify_id_token_with_certs_uri_default_http
>  PASSED [ 62%]
> tests/test_jwt.py::PEMCryptTestsPyCrypto::test_verify_id_token_with_certs_uri_fails
>  PASSED [ 63%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_from_string_non_509_cert PASSED 
> [ 63%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_sign_and_verify PASSED     [ 
> 63%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_sign_and_verify_from_converted_pkcs12
>  PASSED [ 63%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_verify_id_token PASSED     [ 
> 63%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_verify_id_token_bad_tokens 
> PASSED [ 64%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_verify_id_token_with_certs_uri 
> PASSED [ 64%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_verify_id_token_with_certs_uri_default_http
>  PASSED [ 64%]
> tests/test_jwt.py::PEMCryptTestsOpenSSL::test_verify_id_token_with_certs_uri_fails
>  PASSED [ 64%]
> tests/test_jwt.py::SignedJwtAssertionCredentialsTests::test_credentials_good 
> PASSED [ 65%]
> tests/test_jwt.py::SignedJwtAssertionCredentialsTests::test_credentials_refresh_with_storage
>  PASSED [ 65%]
> tests/test_jwt.py::SignedJwtAssertionCredentialsTests::test_credentials_refresh_without_storage
>  PASSED [ 65%]
> tests/test_jwt.py::SignedJwtAssertionCredentialsTests::test_credentials_to_from_json
>  PASSED [ 65%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsOpenSSLTests::test_credentials_good
>  PASSED [ 65%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsOpenSSLTests::test_credentials_refresh_with_storage
>  PASSED [ 66%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsOpenSSLTests::test_credentials_refresh_without_storage
>  PASSED [ 66%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsOpenSSLTests::test_credentials_to_from_json
>  PASSED [ 66%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsPyCryptoTests::test_credentials_good
>  PASSED [ 66%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsPyCryptoTests::test_credentials_refresh_with_storage
>  PASSED [ 66%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsPyCryptoTests::test_credentials_refresh_without_storage
>  PASSED [ 67%]
> tests/test_jwt.py::PEMSignedJwtAssertionCredentialsPyCryptoTests::test_credentials_to_from_json
>  PASSED [ 67%]
> tests/test_jwt.py::TestHasOpenSSLFlag::test_true PASSED                  [ 
> 67%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test__to_json_override
>  PASSED [ 67%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_access_token
>  PASSED [ 68%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_create_delegated
>  PASSED [ 68%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_create_delegated_existing_sub
>  PASSED [ 68%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_create_scoped
>  PASSED [ 68%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_create_scoped_required_with_scopes
>  PASSED [ 68%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_create_scoped_required_without_scopes
>  PASSED [ 69%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_json_keyfile_name_factory
>  PASSED [ 69%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_json_keyfile_name_factory_bad_type
>  PASSED [ 69%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_json_keyfile_name_factory_missing_field
>  PASSED [ 69%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_p12_keyfile_defaults
>  PASSED [ 70%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_p12_keyfile_explicit
>  PASSED [ 70%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_p12_keyfile_with_pycrypto
>  PASSED [ 70%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_from_p12_keyfile_with_rsa
>  PASSED [ 70%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_service_account_email
>  PASSED [ 70%]
> tests/test_service_account.py::ServiceAccountCredentialsTests::test_sign_blob 
> PASSED [ 71%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_authorize_401 
> FAILED [ 71%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_authorize_no_aud
>  PASSED [ 71%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_authorize_stale_token
>  FAILED [ 71%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_authorize_success
>  PASSED [ 71%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_create_scoped 
> PASSED [ 72%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_create_scoped_required
>  PASSED [ 72%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_get_access_token_additional_claims
>  PASSED [ 72%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_get_access_token_no_claims
>  PASSED [ 72%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_refresh FAILED 
> [ 73%]
> tests/test_service_account.py::JWTAccessCredentialsTests::test_revoke PASSED 
> [ 73%]
> tests/test_tools.py::TestClientRedirectServer::test_ClientRedirectServer 
> SKIPPED [ 73%]
> tests/test_tools.py::TestRunFlow::test_run_flow_no_webserver PASSED      [ 
> 73%]
> tests/test_tools.py::TestRunFlow::test_run_flow_no_webserver_exchange_error 
> PASSED [ 73%]
> tests/test_tools.py::TestRunFlow::test_run_flow_no_webserver_explicit_flags 
> PASSED [ 74%]
> tests/test_tools.py::TestRunFlow::test_run_flow_webserver PASSED         [ 
> 74%]
> tests/test_tools.py::TestRunFlow::test_run_flow_webserver_exchange_error 
> PASSED [ 74%]
> tests/test_tools.py::TestRunFlow::test_run_flow_webserver_fallback PASSED [ 
> 74%]
> tests/test_tools.py::TestRunFlow::test_run_flow_webserver_no_code PASSED [ 
> 75%]
> tests/test_tools.py::TestMessageIfMissing::test_message_if_missing PASSED [ 
> 75%]
> tests/test_transport.py::TestMemoryCache::test_get_set_delete PASSED     [ 
> 75%]
> tests/test_transport.py::Test_get_cached_http::test_global PASSED        [ 
> 75%]
> tests/test_transport.py::Test_get_cached_http::test_value PASSED         [ 
> 75%]
> tests/test_transport.py::Test_get_http_object::test_it PASSED            [ 
> 76%]
> tests/test_transport.py::Test_get_http_object::test_with_args PASSED     [ 
> 76%]
> tests/test_transport.py::Test__initialize_headers::test_copy PASSED      [ 
> 76%]
> tests/test_transport.py::Test__initialize_headers::test_null PASSED      [ 
> 76%]
> tests/test_transport.py::Test__apply_user_agent::test_append PASSED      [ 
> 76%]
> tests/test_transport.py::Test__apply_user_agent::test_new_agent PASSED   [ 
> 77%]
> tests/test_transport.py::Test__apply_user_agent::test_null PASSED        [ 
> 77%]
> tests/test_transport.py::Test_clean_headers::test_cast_object PASSED     [ 
> 77%]
> tests/test_transport.py::Test_clean_headers::test_cast_unicode PASSED    [ 
> 77%]
> tests/test_transport.py::Test_clean_headers::test_no_modify PASSED       [ 
> 78%]
> tests/test_transport.py::Test_clean_headers::test_unicode_failure PASSED [ 
> 78%]
> tests/test_transport.py::Test_wrap_http_for_auth::test_wrap PASSED       [ 
> 78%]
> tests/test_transport.py::Test_request::test_with_callable_http PASSED    [ 
> 78%]
> tests/test_transport.py::Test_request::test_with_request_attr PASSED     [ 
> 78%]
> tests/contrib/test_devshell.py::TestCredentialInfoResponse::test_constructor_empty_list
>  PASSED [ 79%]
> tests/contrib/test_devshell.py::TestCredentialInfoResponse::test_constructor_full_list
>  PASSED [ 79%]
> tests/contrib/test_devshell.py::TestCredentialInfoResponse::test_constructor_with_bad_json
>  PASSED [ 79%]
> tests/contrib/test_devshell.py::TestCredentialInfoResponse::test_constructor_with_non_list
>  PASSED [ 79%]
> tests/contrib/test_devshell.py::Test_SendRecv::test_no_newline_in_received_header
>  PASSED [ 80%]
> tests/contrib/test_devshell.py::Test_SendRecv::test_port_zero PASSED     [ 
> 80%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_bad_message_to_mock_server
>  PASSED [ 80%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_from_json 
> PASSED [ 80%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_handles_ignores_extra_fields
>  PASSED [ 80%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_handles_skipped_fields
>  PASSED [ 81%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_handles_tiny_response
>  PASSED [ 81%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_no_refresh_token
>  FAILED [ 81%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_reads_credentials
>  PASSED [ 81%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_refuses_to_save_to_well_known_file
>  PASSED [ 81%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_request_response
>  PASSED [ 82%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_serialization_data
>  PASSED [ 82%]
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_signals_no_server
>  PASSED [ 82%]
> tests/contrib/test_dictionary_storage.py::DictionaryStorageTests::test_constructor_defaults
>  PASSED [ 82%]
> tests/contrib/test_dictionary_storage.py::DictionaryStorageTests::test_constructor_explicit
>  PASSED [ 83%]
> tests/contrib/test_dictionary_storage.py::DictionaryStorageTests::test_delete 
> PASSED [ 83%]
> tests/contrib/test_dictionary_storage.py::DictionaryStorageTests::test_get 
> PASSED [ 83%]
> tests/contrib/test_dictionary_storage.py::DictionaryStorageTests::test_put 
> PASSED [ 83%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_app_configuration 
> PASSED [ 83%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_authorize_callback 
> PASSED [ 84%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_authorize_view 
> PASSED [ 84%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_bad_client_secrets 
> PASSED [ 84%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_bad_id_token PASSED 
> [ 84%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_callback_view PASSED 
> [ 85%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_callback_view_errors 
> PASSED [ 85%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_create_flow PASSED [ 
> 85%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_delayed_configuration
>  PASSED [ 85%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_delete PASSED   [ 
> 85%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_explicit_configuration
>  PASSED [ 86%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_explicit_scopes 
> PASSED [ 86%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_explicit_storage 
> PASSED [ 86%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_incremental_auth_exchange
>  PASSED [ 86%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_no_configuration 
> PASSED [ 86%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_no_credentials 
> PASSED [ 87%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_refresh PASSED  [ 
> 87%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_required PASSED [ 
> 87%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_with_credentials 
> PASSED [ 87%]
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_with_expired_credentials
>  PASSED [ 88%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_constructor 
> PASSED [ 88%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_constructor_with_scopes
>  PASSED [ 88%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_create_scoped_required
>  PASSED [ 88%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_custom_metadata_root_from_env
>  PASSED [ 88%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_from_json 
> PASSED [ 89%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_refresh_token 
> PASSED [ 89%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_refresh_token_failed_fetch
>  PASSED [ 89%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_retrieve_scopes 
> PASSED [ 89%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_retrieve_scopes_bad_email
>  PASSED [ 90%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_save_to_well_known_file
>  PASSED [ 90%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_serialization_data
>  PASSED [ 90%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_sign_blob_not_implemented
>  PASSED [ 90%]
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_to_json PASSED 
> [ 90%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_acquire_lock 
> PASSED [ 91%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_constructor 
> PASSED [ 91%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_and_set_with_json_credentials_stored
>  FAILED [ 91%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_with_malformed_json_credentials_stored
>  FAILED [ 91%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_with_no_credentials_stored
>  FAILED [ 91%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_locked_delete
>  PASSED [ 92%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_locked_get 
> PASSED [ 92%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_locked_put 
> PASSED [ 92%]
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_release_lock 
> PASSED [ 92%]
> tests/contrib/test_metadata.py::TestMetadata::test_get_failure PASSED    [ 
> 93%]
> tests/contrib/test_metadata.py::TestMetadata::test_get_success_json PASSED [ 
> 93%]
> tests/contrib/test_metadata.py::TestMetadata::test_get_success_string PASSED 
> [ 93%]
> tests/contrib/test_metadata.py::TestMetadata::test_get_token_success PASSED [ 
> 93%]
> tests/contrib/test_metadata.py::TestMetadata::test_service_account_info 
> PASSED [ 93%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_basic_operations
>  PASSED [ 94%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_multi_process_refresh
>  PASSED [ 94%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_read_only_file_fail_lock
>  PASSED [ 94%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_single_process_refresh
>  PASSED [ 94%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__create_file_if_needed
>  PASSED [ 95%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__get_backend
>  PASSED [ 95%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__load_credentials_file_bad_file_version
>  PASSED [ 95%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__load_credentials_file_invalid_json
>  PASSED [ 95%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__load_credentials_file_no_file_version
>  PASSED [ 95%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__load_credentials_no_open_file
>  PASSED [ 96%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__read_write_credentials_file
>  PASSED [ 96%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__refresh_predicate
>  PASSED [ 96%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test_acquire_lock_nonexistent_file
>  PASSED [ 96%]
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test_release_lock_with_no_file
>  PASSED [ 96%]
> tests/contrib/test_sqlalchemy.py::TestSQLAlchemyStorage::test_delete PASSED [ 
> 97%]
> tests/contrib/test_sqlalchemy.py::TestSQLAlchemyStorage::test_get PASSED [ 
> 97%]
> tests/contrib/test_sqlalchemy.py::TestSQLAlchemyStorage::test_put PASSED [ 
> 97%]
> tests/contrib/test_xsrfutil.py::Test_generate_token::test_it PASSED      [ 
> 97%]
> tests/contrib/test_xsrfutil.py::Test_generate_token::test_with_system_time 
> PASSED [ 98%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_no_token PASSED [ 
> 98%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_success PASSED [ 
> 98%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_token_differs_from_generated_but_same_length
>  PASSED [ 98%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_token_length_differs_from_generated
>  PASSED [ 98%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_token_non_integer 
> PASSED [ 99%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_token_not_valid_base64
>  PASSED [ 99%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_token_too_old_explicit_current_time
>  PASSED [ 99%]
> tests/contrib/test_xsrfutil.py::Test_validate_token::test_token_too_old_implicit_current_time
>  PASSED [ 99%]
> tests/contrib/test_xsrfutil.py::XsrfUtilTests::testGenerateAndValidateToken 
> PASSED [100%]
> 
> =================================== FAILURES 
> ===================================
> ___________ GoogleCredentialsTests.test_from_stream_malformed_file_1 
> ___________
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_from_stream_malformed_file_1>
> 
>     def test_from_stream_malformed_file_1(self):
>         credentials_file = datafile(
>             os.path.join('gcloud',
>                          'application_default_credentials_malformed_1.json'))
>         expected_err_msg = (
>             'An error was encountered while reading json file: ' +
>             credentials_file +
>             ' \(provided as parameter to the from_stream\(\) method\): ' +
>             "'type' field should be defined \(and have one of the '" +
>             client.AUTHORIZED_USER + "' or '" + client.SERVICE_ACCOUNT +
>             "' values\)")
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:740: AttributeError
> ___________ GoogleCredentialsTests.test_from_stream_malformed_file_2 
> ___________
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_from_stream_malformed_file_2>
> 
>     def test_from_stream_malformed_file_2(self):
>         credentials_file = datafile(
>             os.path.join('gcloud',
>                          'application_default_credentials_malformed_2.json'))
>         expected_err_msg = (
>             'An error was encountered while reading json file: ' +
>             credentials_file +
>             ' \(provided as parameter to the from_stream\(\) method\): '
>             'The following field\(s\) must be defined: '
>             'private_key_id')
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:755: AttributeError
> _____________ GoogleCredentialsTests.test_from_stream_missing_file 
> _____________
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_from_stream_missing_file>
> 
>     def test_from_stream_missing_file(self):
>         credentials_filename = None
>         expected_err_msg = (r'The parameter passed to the from_stream\(\) '
>                             r'method should point to a file.')
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:724: AttributeError
> _ 
> GoogleCredentialsTests.test_get_application_default_credential_from_malformed_file_1
>  _
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_get_application_default_credential_from_malformed_file_1>
> 
>     def test_get_application_default_credential_from_malformed_file_1(self):
>         credentials_file = datafile(
>             os.path.join('gcloud',
>                          'application_default_credentials_malformed_1.json'))
>         expected_err_msg = (
>             "'type' field should be defined \(and have one of the '{0}' or "
>             "'{1}' values\)".format(client.AUTHORIZED_USER,
>                                     client.SERVICE_ACCOUNT))
>     
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:544: AttributeError
> _ 
> GoogleCredentialsTests.test_get_application_default_credential_from_malformed_file_2
>  _
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_get_application_default_credential_from_malformed_file_2>
> 
>     def test_get_application_default_credential_from_malformed_file_2(self):
>         credentials_file = datafile(
>             os.path.join('gcloud',
>                          'application_default_credentials_malformed_2.json'))
>         expected_err_msg = (
>             'The following field\(s\) must be defined: private_key_id')
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:555: AttributeError
> _______ GoogleCredentialsTests.test_get_environment_variable_file_error 
> ________
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_get_environment_variable_file_error>
> 
>     def test_get_environment_variable_file_error(self):
>         nonexistent_file = datafile('nonexistent')
>         os.environ[client.GOOGLE_APPLICATION_CREDENTIALS] = nonexistent_file
>         expected_err_msg = (
>             'File {0} \(pointed by {1} environment variable\) does not '
>             'exist!'.format(
>                 nonexistent_file, client.GOOGLE_APPLICATION_CREDENTIALS))
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:439: AttributeError
> ________ GoogleCredentialsTests.test_raise_exception_for_missing_fields 
> ________
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_raise_exception_for_missing_fields>
> 
>     def test_raise_exception_for_missing_fields(self):
>         missing_fields = ['first', 'second', 'third']
>         expected_err_msg = ('The following field\(s\) must be defined: ' +
>                             ', '.join(missing_fields))
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:572: AttributeError
> _________ GoogleCredentialsTests.test_raise_exception_for_reading_json 
> _________
> 
> self = <tests.test_client.GoogleCredentialsTests 
> testMethod=test_raise_exception_for_reading_json>
> 
>     def test_raise_exception_for_reading_json(self):
>         credential_file = 'any_file'
>         extra_help = ' be good'
>         error = client.ApplicationDefaultCredentialsError('stuff happens')
>         expected_err_msg = ('An error was encountered while reading '
>                             'json file: ' + credential_file +
>                             extra_help + ': ' + str(error))
> >       with 
> > self.assertRaisesRegexp(client.ApplicationDefaultCredentialsError,
>                                      expected_err_msg):
> E                                    AttributeError: 'GoogleCredentialsTests' 
> object has no attribute 'assertRaisesRegexp'. Did you mean: 
> 'assertRaisesRegex'?
> 
> tests/test_client.py:583: AttributeError
> ____________ OAuth2WebServerFlowTest.test_exchange_fails_if_no_code 
> ____________
> 
> self = <tests.test_client.OAuth2WebServerFlowTest 
> testMethod=test_exchange_fails_if_no_code>
> 
>     def test_exchange_fails_if_no_code(self):
>         payload = (b'{'
>                    b'  "access_token":"SlAV32hkKG",'
>                    b'  "refresh_token":"8xLOxBtZp8"'
>                    b'}')
>         http = http_mock.HttpMock(data=payload)
>     
>         code = {'error': 'thou shall not pass'}
> >       with self.assertRaisesRegexp(
>                 client.FlowExchangeError, 'shall not pass'):
> E               AttributeError: 'OAuth2WebServerFlowTest' object has no 
> attribute 'assertRaisesRegexp'. Did you mean: 'assertRaisesRegex'?
> 
> tests/test_client.py:2058: AttributeError
> ___________ OAuth2WebServerFlowTest.test_urlencoded_exchange_failure 
> ___________
> 
> self = <tests.test_client.OAuth2WebServerFlowTest 
> testMethod=test_urlencoded_exchange_failure>
> 
>     def test_urlencoded_exchange_failure(self):
>         http = http_mock.HttpMock(
>             headers={'status': http_client.BAD_REQUEST},
>             data=b'error=invalid_request',
>         )
>     
> >       with self.assertRaisesRegexp(client.FlowExchangeError,
>                                      'invalid_request'):
> E                                    AttributeError: 
> 'OAuth2WebServerFlowTest' object has no attribute 'assertRaisesRegexp'. Did 
> you mean: 'assertRaisesRegex'?
> 
> tests/test_client.py:1875: AttributeError
> ____ FlowFromCachedClientsecrets.test_flow_from_clientsecrets_unknown_flow 
> _____
> 
> self = <tests.test_client.FlowFromCachedClientsecrets 
> testMethod=test_flow_from_clientsecrets_unknown_flow>
> loadfile_mock = <MagicMock name='loadfile' id='139816734703792'>
> 
>     @mock.patch('oauth2client.clientsecrets.loadfile')
>     def test_flow_from_clientsecrets_unknown_flow(self, loadfile_mock):
>         client_type = 'UNKNOWN'
>         loadfile_mock.return_value = client_type, None
>         filename = object()
>         cache = object()
>     
>         err_msg = ('This OAuth 2.0 flow is unsupported: '
>                    '{0!r}'.format(client_type))
> >       with self.assertRaisesRegexp(client.UnknownClientSecretsFlowError,
>                                      err_msg):
> E                                    AttributeError: 
> 'FlowFromCachedClientsecrets' object has no attribute 'assertRaisesRegexp'. 
> Did you mean: 'assertRaisesRegex'?
> 
> tests/test_client.py:2191: AttributeError
> __________ OAuth2CredentialsTests.test_load_by_filename_missing_file 
> ___________
> 
> self = <tests.test_clientsecrets.OAuth2CredentialsTests 
> testMethod=test_load_by_filename_missing_file>
> 
>     def test_load_by_filename_missing_file(self):
>         with self.assertRaises(
>                 clientsecrets.InvalidClientSecretsError) as exc_manager:
>             clientsecrets._loadfile(NONEXISTENT_FILE)
>     
> >       self.assertEquals(exc_manager.exception.args[1], NONEXISTENT_FILE)
> E       AttributeError: 'OAuth2CredentialsTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_clientsecrets.py:218: AttributeError
> _____________ OAuth2ClientFileTests.test_access_token_credentials 
> ______________
> 
> self = <tests.test_file.OAuth2ClientFileTests 
> testMethod=test_access_token_credentials>
> 
>     def test_access_token_credentials(self):
>         access_token = 'foo'
>         user_agent = 'refresh_checker/1.0'
>     
>         credentials = client.AccessTokenCredentials(access_token, user_agent)
>     
>         storage = file_module.Storage(FILENAME)
>         credentials = storage.put(credentials)
>         credentials = storage.get()
>     
>         self.assertIsNotNone(credentials)
> >       self.assertEquals('foo', credentials.access_token)
> E       AttributeError: 'OAuth2ClientFileTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_file.py:266: AttributeError
> ______________ OAuth2ClientFileTests.test_pickle_and_json_interop 
> ______________
> 
> self = <tests.test_file.OAuth2ClientFileTests 
> testMethod=test_pickle_and_json_interop>
> 
>     def test_pickle_and_json_interop(self):
>         # Write a file with a pickled OAuth2Credentials.
>         credentials = self._create_test_credentials()
>     
>         credentials_file = open(FILENAME, 'wb')
>         pickle.dump(credentials, credentials_file)
>         credentials_file.close()
>     
>         # Storage should be not be able to read that object, as the capability
>         # to read and write credentials as pickled objects has been removed.
>         storage = file_module.Storage(FILENAME)
>         read_credentials = storage.get()
>         self.assertIsNone(read_credentials)
>     
>         # Now write it back out and confirm it has been rewritten as JSON
>         storage.put(credentials)
>         with open(FILENAME) as credentials_file:
>             data = json.load(credentials_file)
>     
> >       self.assertEquals(data['access_token'], 'foo')
> E       AttributeError: 'OAuth2ClientFileTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_file.py:125: AttributeError
> _____________ OAuth2ClientFileTests.test_token_refresh_good_store 
> ______________
> 
> self = <tests.test_file.OAuth2ClientFileTests 
> testMethod=test_token_refresh_good_store>
> 
>     def test_token_refresh_good_store(self):
>         expiration = (datetime.datetime.utcnow() +
>                       datetime.timedelta(minutes=15))
>         credentials = self._create_test_credentials(expiration=expiration)
>     
>         storage = file_module.Storage(FILENAME)
>         storage.put(credentials)
>         credentials = storage.get()
>         new_cred = copy.copy(credentials)
>         new_cred.access_token = 'bar'
>         storage.put(new_cred)
>     
>         credentials._refresh(None)
> >       self.assertEquals(credentials.access_token, 'bar')
> E       AttributeError: 'OAuth2ClientFileTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_file.py:210: AttributeError
> ____________ OAuth2ClientFileTests.test_token_refresh_store_expired 
> ____________
> 
> self = <tests.test_file.OAuth2ClientFileTests 
> testMethod=test_token_refresh_store_expired>
> 
>     def test_token_refresh_store_expired(self):
>         expiration = (datetime.datetime.utcnow() -
>                       datetime.timedelta(minutes=15))
>         credentials = self._create_test_credentials(expiration=expiration)
>     
>         storage = file_module.Storage(FILENAME)
>         storage.put(credentials)
>         credentials = storage.get()
>         new_cred = copy.copy(credentials)
>         new_cred.access_token = 'bar'
>         storage.put(new_cred)
>     
>         access_token = '1/3w'
>         token_response = {'access_token': access_token, 'expires_in': 3600}
>         response_content = json.dumps(token_response).encode('utf-8')
>         http = http_mock.HttpMock(data=response_content)
>     
>         credentials._refresh(http)
> >       self.assertEquals(credentials.access_token, access_token)
> E       AttributeError: 'OAuth2ClientFileTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_file.py:147: AttributeError
> _________________ JWTAccessCredentialsTests.test_authorize_401 
> _________________
> 
> self = <tests.test_service_account.JWTAccessCredentialsTests 
> testMethod=test_authorize_401>
> utcnow = <MagicMock name='_UTCNOW' id='139816733352848'>
> 
>     @mock.patch('oauth2client.client._UTCNOW')
>     def test_authorize_401(self, utcnow):
>         utcnow.return_value = T1_DATE
>     
>         http = http_mock.HttpMockSequence([
>             ({'status': http_client.OK}, b''),
>             ({'status': http_client.UNAUTHORIZED}, b''),
>             ({'status': http_client.OK}, b''),
>         ])
>         self.jwt.authorize(http)
>         transport.request(http, self.url)
>         token_1 = self.jwt.access_token
>     
>         utcnow.return_value = T2_DATE
>         response, _ = transport.request(http, self.url)
> >       self.assertEquals(response.status, http_client.OK)
> E       AttributeError: 'JWTAccessCredentialsTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_service_account.py:618: AttributeError
> _____________ JWTAccessCredentialsTests.test_authorize_stale_token 
> _____________
> 
> self = <tests.test_service_account.JWTAccessCredentialsTests 
> testMethod=test_authorize_stale_token>
> utcnow = <MagicMock name='_UTCNOW' id='139816732738048'>
> 
>     @mock.patch('oauth2client.client._UTCNOW')
>     def test_authorize_stale_token(self, utcnow):
>         utcnow.return_value = T1_DATE
>         # Create an initial token
>         http = http_mock.HttpMockSequence([
>             ({'status': http_client.OK}, b''),
>             ({'status': http_client.OK}, b''),
>         ])
>         self.jwt.authorize(http)
>         transport.request(http, self.url)
>         token_1 = self.jwt.access_token
>     
>         # Expire the token
>         utcnow.return_value = T3_DATE
>         transport.request(http, self.url)
>         token_2 = self.jwt.access_token
> >       self.assertEquals(self.jwt.token_expiry, T3_EXPIRY_DATE)
> E       AttributeError: 'JWTAccessCredentialsTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_service_account.py:574: AttributeError
> ____________________ JWTAccessCredentialsTests.test_refresh 
> ____________________
> 
> self = <tests.test_service_account.JWTAccessCredentialsTests 
> testMethod=test_refresh>
> utcnow = <MagicMock name='_UTCNOW' id='139816735587984'>
> 
>     @mock.patch('oauth2client.client._UTCNOW')
>     def test_refresh(self, utcnow):
>         utcnow.return_value = T1_DATE
>         token_1 = self.jwt.access_token
>     
>         utcnow.return_value = T2_DATE
>         self.jwt.refresh(None)
>         token_2 = self.jwt.access_token
> >       self.assertEquals(self.jwt.token_expiry, T2_EXPIRY_DATE)
> E       AttributeError: 'JWTAccessCredentialsTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/test_service_account.py:657: AttributeError
> ________________ DevshellCredentialsTests.test_no_refresh_token 
> ________________
> 
> self = <tests.contrib.test_devshell.DevshellCredentialsTests 
> testMethod=test_no_refresh_token>
> 
>     def test_no_refresh_token(self):
>         with _AuthReferenceServer():
>             creds = devshell.DevshellCredentials()
> >           self.assertEquals(None, creds.refresh_token)
> E           AttributeError: 'DevshellCredentialsTests' object has no 
> attribute 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/contrib/test_devshell.py:208: AttributeError
> ______ KeyringStorageTests.test_get_and_set_with_json_credentials_stored 
> _______
> 
> self = <tests.contrib.test_keyring_storage.KeyringStorageTests 
> testMethod=test_get_and_set_with_json_credentials_stored>
> 
>     def test_get_and_set_with_json_credentials_stored(self):
>         access_token = 'foo'
>         client_id = 'some_client_id'
>         client_secret = 'cOuDdkfjxxnv+'
>         refresh_token = '1/0/a.df219fjls0'
>         token_expiry = datetime.datetime.utcnow()
>         user_agent = 'refresh_checker/1.0'
>     
>         credentials = client.OAuth2Credentials(
>             access_token, client_id, client_secret,
>             refresh_token, token_expiry, oauth2client.GOOGLE_TOKEN_URI,
>             user_agent)
>     
>         # Setting autospec on a mock with an iterable side_effect is
>         # currently broken (http://bugs.python.org/issue17826), so instead
>         # we patch twice.
>         with mock.patch.object(keyring, 'get_password',
>                                return_value=None,
>                                autospec=True) as get_password:
>             with mock.patch.object(keyring, 'set_password',
>                                    return_value=None,
>                                    autospec=True) as set_password:
>                 store = keyring_storage.Storage('my_unit_test', 'me')
> >               self.assertEquals(None, store.get())
> E               AttributeError: 'KeyringStorageTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/contrib/test_keyring_storage.py:142: AttributeError
> _____ KeyringStorageTests.test_get_with_malformed_json_credentials_stored 
> ______
> 
> self = <tests.contrib.test_keyring_storage.KeyringStorageTests 
> testMethod=test_get_with_malformed_json_credentials_stored>
> 
>     def test_get_with_malformed_json_credentials_stored(self):
>         with mock.patch.object(keyring, 'get_password',
>                                return_value='{',
>                                autospec=True) as get_password:
>             store = keyring_storage.Storage('my_unit_test', 'me')
>             credentials = store.get()
> >           self.assertEquals(None, credentials)
> E           AttributeError: 'KeyringStorageTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/contrib/test_keyring_storage.py:116: AttributeError
> ___________ KeyringStorageTests.test_get_with_no_credentials_stored 
> ____________
> 
> self = <tests.contrib.test_keyring_storage.KeyringStorageTests 
> testMethod=test_get_with_no_credentials_stored>
> 
>     def test_get_with_no_credentials_stored(self):
>         with mock.patch.object(keyring, 'get_password',
>                                return_value=None,
>                                autospec=True) as get_password:
>             store = keyring_storage.Storage('my_unit_test', 'me')
>             credentials = store.get()
> >           self.assertEquals(None, credentials)
> E           AttributeError: 'KeyringStorageTests' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> tests/contrib/test_keyring_storage.py:107: AttributeError
> =============================== warnings summary 
> ===============================
> tests/test_client.py:436
>   /<<PKGBUILDDIR>>/tests/test_client.py:436: SyntaxWarning: invalid escape 
> sequence '\('
>     'File {0} \(pointed by {1} environment variable\) does not '
> 
> tests/test_client.py:540
>   /<<PKGBUILDDIR>>/tests/test_client.py:540: SyntaxWarning: invalid escape 
> sequence '\('
>     "'type' field should be defined \(and have one of the '{0}' or "
> 
> tests/test_client.py:541
>   /<<PKGBUILDDIR>>/tests/test_client.py:541: SyntaxWarning: invalid escape 
> sequence '\)'
>     "'{1}' values\)".format(client.AUTHORIZED_USER,
> 
> tests/test_client.py:554
>   /<<PKGBUILDDIR>>/tests/test_client.py:554: SyntaxWarning: invalid escape 
> sequence '\('
>     'The following field\(s\) must be defined: private_key_id')
> 
> tests/test_client.py:570
>   /<<PKGBUILDDIR>>/tests/test_client.py:570: SyntaxWarning: invalid escape 
> sequence '\('
>     expected_err_msg = ('The following field\(s\) must be defined: ' +
> 
> tests/test_client.py:736
>   /<<PKGBUILDDIR>>/tests/test_client.py:736: SyntaxWarning: invalid escape 
> sequence '\('
>     ' \(provided as parameter to the from_stream\(\) method\): ' +
> 
> tests/test_client.py:737
>   /<<PKGBUILDDIR>>/tests/test_client.py:737: SyntaxWarning: invalid escape 
> sequence '\('
>     "'type' field should be defined \(and have one of the '" +
> 
> tests/test_client.py:739
>   /<<PKGBUILDDIR>>/tests/test_client.py:739: SyntaxWarning: invalid escape 
> sequence '\)'
>     "' values\)")
> 
> tests/test_client.py:752
>   /<<PKGBUILDDIR>>/tests/test_client.py:752: SyntaxWarning: invalid escape 
> sequence '\('
>     ' \(provided as parameter to the from_stream\(\) method\): '
> 
> tests/test_client.py:753
>   /<<PKGBUILDDIR>>/tests/test_client.py:753: SyntaxWarning: invalid escape 
> sequence '\('
>     'The following field\(s\) must be defined: '
> 
> oauth2client/contrib/flask_util.py:173
> oauth2client/contrib/flask_util.py:173
>   /<<PKGBUILDDIR>>/oauth2client/contrib/flask_util.py:173: 
> DeprecationWarning: '_app_ctx_stack' is deprecated and will be removed in 
> Flask 2.3.
>     from flask import _app_ctx_stack
> 
> ../../../usr/lib/python3/dist-packages/sqlalchemy/sql/sqltypes.py:2061
>   /usr/lib/python3/dist-packages/sqlalchemy/sql/sqltypes.py:2061: 
> DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
> scheduled for removal in a future version. Use timezone-aware objects to 
> represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
> datetime.UTC).
>     epoch = dt.datetime.utcfromtimestamp(0)
> 
> tests/contrib/test_sqlalchemy.py:27
>   /<<PKGBUILDDIR>>/tests/contrib/test_sqlalchemy.py:27: MovedIn20Warning: 
> 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)
>     Base = sqlalchemy.ext.declarative.declarative_base()
> 
> tests/test_client.py: 38 warnings
>   /<<PKGBUILDDIR>>/tests/test_client.py:858: 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).
>     token_expiry = datetime.datetime.utcnow()
> 
> tests/test_client.py::BasicCredentialsTests::test__expires_in_expired
>   /<<PKGBUILDDIR>>/tests/test_client.py:1062: 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).
>     credentials.token_expiry = datetime.datetime.utcnow()
> 
> tests/test_client.py::BasicCredentialsTests::test__expires_in_not_expired
>   /<<PKGBUILDDIR>>/tests/test_client.py:1073: 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).
>     credentials.token_expiry = datetime.datetime.utcnow()
> 
> tests/test_client.py::BasicCredentialsTests::test_no_unicode_in_request_params
>   /<<PKGBUILDDIR>>/tests/test_client.py:1023: 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).
>     token_expiry = str(datetime.datetime.utcnow())
> 
> tests/test_client.py: 2 warnings
> tests/test_jwt.py: 15 warnings
> tests/contrib/test_multiprocess_file_storage.py: 1 warning
>   /<<PKGBUILDDIR>>/oauth2client/client.py:789: 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).
>     self.token_expiry = delta + _UTCNOW()
> 
> tests/test_client.py: 1 warning
> tests/contrib/test_flask_util.py: 2 warnings
> tests/contrib/test_gce.py: 3 warnings
> tests/contrib/test_multiprocess_file_storage.py: 9 warnings
>   /<<PKGBUILDDIR>>/oauth2client/client.py:647: 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).
>     now = _UTCNOW()
> 
> tests/test_client.py::BasicCredentialsTests::test_unicode_header_checks
>   /<<PKGBUILDDIR>>/tests/test_client.py:991: 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).
>     token_expiry = str(datetime.datetime.utcnow())
> 
> tests/test_client.py: 8 warnings
> tests/contrib/test_flask_util.py: 3 warnings
>   /<<PKGBUILDDIR>>/oauth2client/client.py:2066: 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).
>     token_expiry = delta + _UTCNOW()
> 
> tests/test_crypt.py: 2 warnings
> tests/test_jwt.py: 13 warnings
> tests/test_service_account.py: 4 warnings
>   /<<PKGBUILDDIR>>/oauth2client/_openssl_crypt.py:119: DeprecationWarning: 
> PKCS#12 support in pyOpenSSL is deprecated. You should use the APIs in 
> cryptography.
>     pkey = crypto.load_pkcs12(key, password).get_privatekey()
> 
> tests/test_crypt.py::Test_pkcs12_key_as_pem::test_succeeds
> tests/test_crypt.py::Test_pkcs12_key_as_pem::test_succeeds_with_unicode_password
>   /<<PKGBUILDDIR>>/oauth2client/_openssl_crypt.py:134: DeprecationWarning: 
> PKCS#12 support in pyOpenSSL is deprecated. You should use the APIs in 
> cryptography.
>     pkcs12 = crypto.load_pkcs12(private_key_bytes, private_key_password)
> 
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_handles_ignores_extra_fields
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_no_refresh_token
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_refuses_to_save_to_well_known_file
>   /<<PKGBUILDDIR>>/oauth2client/contrib/devshell.py:132: 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).
>     self.token_expiry = client._UTCNOW() + delta
> 
> tests/contrib/test_flask_util.py: 185 warnings
>   /usr/lib/python3/dist-packages/werkzeug/routing/rules.py:726: 
> DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; 
> use ast.Constant instead
>     parts = parts or [ast.Str("")]
> 
> tests/contrib/test_flask_util.py: 430 warnings
>   /usr/lib/python3/dist-packages/werkzeug/routing/rules.py:723: 
> DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; 
> use ast.Constant instead
>     _convert(elem) if is_dynamic else ast.Str(s=elem)
> 
> tests/contrib/test_flask_util.py: 430 warnings
>   /usr/lib/python3.12/ast.py:587: DeprecationWarning: Attribute s is 
> deprecated and will be removed in Python 3.14; use value instead
>     return Constant(*args, **kwargs)
> 
> tests/contrib/test_flask_util.py: 554 warnings
>   /usr/lib/python3/dist-packages/werkzeug/routing/rules.py:730: 
> DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; 
> use ast.Constant instead
>     if isinstance(p, ast.Str) and isinstance(ret[-1], ast.Str):
> 
> tests/contrib/test_flask_util.py: 492 warnings
>   /usr/lib/python3/dist-packages/werkzeug/routing/rules.py:731: 
> DeprecationWarning: Attribute s is deprecated and will be removed in Python 
> 3.14; use value instead
>     ret[-1] = ast.Str(ret[-1].s + p.s)
> 
> tests/contrib/test_flask_util.py: 246 warnings
>   /usr/lib/python3/dist-packages/werkzeug/routing/rules.py:731: 
> DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; 
> use ast.Constant instead
>     ret[-1] = ast.Str(ret[-1].s + p.s)
> 
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_bad_id_token
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_delete
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_refresh
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_required
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_with_credentials
> tests/contrib/test_flask_util.py::FlaskOAuth2Tests::test_with_expired_credentials
>   /<<PKGBUILDDIR>>/tests/contrib/test_flask_util.py:62: 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).
>     datetime.datetime.utcnow() + datetime.timedelta(seconds=3600),
> 
> tests/contrib/test_flask_util.py: 49 warnings
>   /<<PKGBUILDDIR>>/oauth2client/contrib/flask_util.py:437: 
> DeprecationWarning: '_app_ctx_stack' is deprecated and will be removed in 
> Flask 2.3. Use 'g' to store data, or 'app_ctx' to access the current context.
>     ctx = _app_ctx_stack.top
> 
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_refresh_token
> tests/contrib/test_gce.py::AppAssertionCredentialsTests::test_refresh_token
>   /<<PKGBUILDDIR>>/oauth2client/client.py:690: 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).
>     now = _UTCNOW()
> 
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_and_set_with_json_credentials_stored
>   /<<PKGBUILDDIR>>/tests/contrib/test_keyring_storage.py:124: 
> 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).
>     token_expiry = datetime.datetime.utcnow()
> 
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_basic_operations
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_multi_process_refresh
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_read_only_file_fail_lock
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_single_process_refresh
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__read_write_credentials_file
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__refresh_predicate
>   /<<PKGBUILDDIR>>/tests/contrib/test_multiprocess_file_storage.py:55: 
> 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).
>     datetime.datetime.utcnow() + datetime.timedelta(seconds=3600))
> 
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageBehaviorTests::test_read_only_file_fail_lock
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test_acquire_lock_nonexistent_file
>   /<<PKGBUILDDIR>>/oauth2client/contrib/multiprocess_file_storage.py:234: 
> DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
>     logger.warn(
> 
> tests/contrib/test_multiprocess_file_storage.py::MultiprocessStorageUnitTests::test__refresh_predicate
>   /<<PKGBUILDDIR>>/tests/contrib/test_multiprocess_file_storage.py:329: 
> 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).
>     datetime.datetime.utcnow() - datetime.timedelta(seconds=3600)))
> 
> tests/contrib/test_sqlalchemy.py::TestSQLAlchemyStorage::test_delete
> tests/contrib/test_sqlalchemy.py::TestSQLAlchemyStorage::test_get
> tests/contrib/test_sqlalchemy.py::TestSQLAlchemyStorage::test_put
>   /<<PKGBUILDDIR>>/tests/contrib/test_sqlalchemy.py:51: 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).
>     token_expiry=datetime.datetime.utcnow(),
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_malformed_file_1
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_malformed_file_2
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_from_stream_missing_file
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_credential_from_malformed_file_1
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_get_application_default_credential_from_malformed_file_2
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_get_environment_variable_file_error
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_raise_exception_for_missing_fields
> FAILED 
> tests/test_client.py::GoogleCredentialsTests::test_raise_exception_for_reading_json
> FAILED 
> tests/test_client.py::OAuth2WebServerFlowTest::test_exchange_fails_if_no_code
> FAILED 
> tests/test_client.py::OAuth2WebServerFlowTest::test_urlencoded_exchange_failure
> FAILED 
> tests/test_client.py::FlowFromCachedClientsecrets::test_flow_from_clientsecrets_unknown_flow
> FAILED 
> tests/test_clientsecrets.py::OAuth2CredentialsTests::test_load_by_filename_missing_file
> FAILED 
> tests/test_file.py::OAuth2ClientFileTests::test_access_token_credentials
> FAILED tests/test_file.py::OAuth2ClientFileTests::test_pickle_and_json_interop
> FAILED 
> tests/test_file.py::OAuth2ClientFileTests::test_token_refresh_good_store
> FAILED 
> tests/test_file.py::OAuth2ClientFileTests::test_token_refresh_store_expired
> FAILED 
> tests/test_service_account.py::JWTAccessCredentialsTests::test_authorize_401
> FAILED 
> tests/test_service_account.py::JWTAccessCredentialsTests::test_authorize_stale_token
> FAILED tests/test_service_account.py::JWTAccessCredentialsTests::test_refresh
> FAILED 
> tests/contrib/test_devshell.py::DevshellCredentialsTests::test_no_refresh_token
> FAILED 
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_and_set_with_json_credentials_stored
> FAILED 
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_with_malformed_json_credentials_stored
> FAILED 
> tests/contrib/test_keyring_storage.py::KeyringStorageTests::test_get_with_no_credentials_stored
> =========== 23 failed, 436 passed, 1 skipped, 2531 warnings in 6.45s 
> ===========
> make[1]: *** [debian/rules:30: override_dh_auto_install] Error 1


The full build log is available from:
http://qa-logs.debian.net/2023/12/12/python-oauth2client_4.1.3-5_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&[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 ---
Version: 4.1.3-5+rm

Dear submitter,

as the package python-oauth2client has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/1118720

The version of this package that was in Debian prior to this removal
can still be found using https://snapshot.debian.org/.

Please note that the changes have been done on the master archive and
will not propagate to any mirrors until the next dinstall run at the
earliest.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
[email protected].

Debian distribution maintenance software
pp.
Thorsten Alteholz (the ftpmaster behind the curtain)

--- End Message ---

Reply via email to