Package: src:vcr.py
Version: 7.0.0-2
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

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

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

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

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

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:317: python3.14 setup.py clean 
/<<PKGBUILDDIR>>/setup.py:16: DeprecationWarning: codecs.open() is deprecated. 
Use open() instead.
  with codecs.open(os.path.join(here, *parts), "r") as fp:
/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: 
Unknown distribution option: 'tests_require'
  warnings.warn(msg)
/usr/lib/python3/dist-packages/setuptools/dist.py:759: 
SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        
********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX 
license expression:

        License :: OSI Approved :: MIT License

[... snipped ...]


self = <vcr.cassette.CassetteContextDecorator object at 0x7f47afc71a90>
function = <bound method TestVCRClass.test_one of <test_vcr.TestVCRClass object 
at 0x7f47afc71950>>
instance = <test_vcr.TestVCRClass object at 0x7f47afc71950>, args = ()
kwargs = {}

    @wrapt.decorator
    def __call__(self, function, instance, args, kwargs):
        # This awkward cloning thing is done to ensure that decorated
        # functions are reentrant. This is required for thread
        # safety and the correct operation of recursive functions.
        args_getter = self._build_args_getter_for_decorator(function)
>       return type(self)(self.cls, args_getter)._execute_function(function, 
> args, kwargs)
               
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

vcr/cassette.py:107: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
vcr/cassette.py:116: in _execute_function
    if iscoroutinefunction(function):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/asyncio/coroutines.py:23: in iscoroutinefunction
    warnings._deprecated("asyncio.iscoroutinefunction",
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'asyncio.iscoroutinefunction'
message = '{name!r} is deprecated and slated for removal in Python {remove}; 
use inspect.iscoroutinefunction() instead'

    def _deprecated(name, message=_DEPRECATED_MSG, *, remove, 
_version=sys.version_info):
        """Warn that *name* is deprecated or should be removed.
    
        RuntimeError is raised if *remove* specifies a major/minor tuple older 
than
        the current Python version or the same version but past the alpha.
    
        The *message* argument is formatted with *name* and *remove* as a Python
        version tuple (e.g. (3, 11)).
    
        """
        remove_formatted = f"{remove[0]}.{remove[1]}"
        if (_version[:2] > remove) or (_version[:2] == remove and _version[3] 
!= "alpha"):
            msg = f"{name!r} was slated for removal after Python 
{remove_formatted} alpha"
            raise RuntimeError(msg)
        else:
            msg = message.format(name=name, remove=remove_formatted)
>           _wm.warn(msg, DeprecationWarning, stacklevel=3)
E           DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and 
slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead

/usr/lib/python3.14/_py_warnings.py:833: DeprecationWarning
____________________________ TestVCRClass.test_two _____________________________

self = <vcr.cassette.CassetteContextDecorator object at 0x7f47afc71bd0>
function = <bound method TestVCRClass.test_two of <test_vcr.TestVCRClass object 
at 0x7f47afc71d10>>
instance = <test_vcr.TestVCRClass object at 0x7f47afc71d10>, args = ()
kwargs = {}

    @wrapt.decorator
    def __call__(self, function, instance, args, kwargs):
        # This awkward cloning thing is done to ensure that decorated
        # functions are reentrant. This is required for thread
        # safety and the correct operation of recursive functions.
        args_getter = self._build_args_getter_for_decorator(function)
>       return type(self)(self.cls, args_getter)._execute_function(function, 
> args, kwargs)
               
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

vcr/cassette.py:107: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
vcr/cassette.py:116: in _execute_function
    if iscoroutinefunction(function):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/asyncio/coroutines.py:23: in iscoroutinefunction
    warnings._deprecated("asyncio.iscoroutinefunction",
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'asyncio.iscoroutinefunction'
message = '{name!r} is deprecated and slated for removal in Python {remove}; 
use inspect.iscoroutinefunction() instead'

    def _deprecated(name, message=_DEPRECATED_MSG, *, remove, 
_version=sys.version_info):
        """Warn that *name* is deprecated or should be removed.
    
        RuntimeError is raised if *remove* specifies a major/minor tuple older 
than
        the current Python version or the same version but past the alpha.
    
        The *message* argument is formatted with *name* and *remove* as a Python
        version tuple (e.g. (3, 11)).
    
        """
        remove_formatted = f"{remove[0]}.{remove[1]}"
        if (_version[:2] > remove) or (_version[:2] == remove and _version[3] 
!= "alpha"):
            msg = f"{name!r} was slated for removal after Python 
{remove_formatted} alpha"
            raise RuntimeError(msg)
        else:
            msg = message.format(name=name, remove=remove_formatted)
>           _wm.warn(msg, DeprecationWarning, stacklevel=3)
E           DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and 
slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead

/usr/lib/python3.14/_py_warnings.py:833: DeprecationWarning
_____________________ TestVCRClass.test_dynamically_added ______________________

self = <vcr.cassette.CassetteContextDecorator object at 0x7f47afddbce0>
function = <bound method test_dynamically_added of <test_vcr.TestVCRClass 
object at 0x7f47b05b6780>>
instance = <test_vcr.TestVCRClass object at 0x7f47b05b6780>, args = ()
kwargs = {}

    @wrapt.decorator
    def __call__(self, function, instance, args, kwargs):
        # This awkward cloning thing is done to ensure that decorated
        # functions are reentrant. This is required for thread
        # safety and the correct operation of recursive functions.
        args_getter = self._build_args_getter_for_decorator(function)
>       return type(self)(self.cls, args_getter)._execute_function(function, 
> args, kwargs)
               
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

vcr/cassette.py:107: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
vcr/cassette.py:116: in _execute_function
    if iscoroutinefunction(function):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/asyncio/coroutines.py:23: in iscoroutinefunction
    warnings._deprecated("asyncio.iscoroutinefunction",
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'asyncio.iscoroutinefunction'
message = '{name!r} is deprecated and slated for removal in Python {remove}; 
use inspect.iscoroutinefunction() instead'

    def _deprecated(name, message=_DEPRECATED_MSG, *, remove, 
_version=sys.version_info):
        """Warn that *name* is deprecated or should be removed.
    
        RuntimeError is raised if *remove* specifies a major/minor tuple older 
than
        the current Python version or the same version but past the alpha.
    
        The *message* argument is formatted with *name* and *remove* as a Python
        version tuple (e.g. (3, 11)).
    
        """
        remove_formatted = f"{remove[0]}.{remove[1]}"
        if (_version[:2] > remove) or (_version[:2] == remove and _version[3] 
!= "alpha"):
            msg = f"{name!r} was slated for removal after Python 
{remove_formatted} alpha"
            raise RuntimeError(msg)
        else:
            msg = message.format(name=name, remove=remove_formatted)
>           _wm.warn(msg, DeprecationWarning, stacklevel=3)
E           DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and 
slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead

/usr/lib/python3.14/_py_warnings.py:833: DeprecationWarning
______________________ test_use_cassette_generator_return ______________________

    def test_use_cassette_generator_return():
        ret_val = object()
    
        vcr = VCR()
    
        @vcr.use_cassette("test")
        def gen():
            return ret_val
            yield
    
        with pytest.raises(StopIteration) as exc_info:
>           next(gen())
                 ^^^^^

tests/unit/test_vcr.py:388: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
vcr/cassette.py:107: in __call__
    return type(self)(self.cls, args_getter)._execute_function(function, args, 
kwargs)
           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vcr/cassette.py:116: in _execute_function
    if iscoroutinefunction(function):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/asyncio/coroutines.py:23: in iscoroutinefunction
    warnings._deprecated("asyncio.iscoroutinefunction",
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'asyncio.iscoroutinefunction'
message = '{name!r} is deprecated and slated for removal in Python {remove}; 
use inspect.iscoroutinefunction() instead'

    def _deprecated(name, message=_DEPRECATED_MSG, *, remove, 
_version=sys.version_info):
        """Warn that *name* is deprecated or should be removed.
    
        RuntimeError is raised if *remove* specifies a major/minor tuple older 
than
        the current Python version or the same version but past the alpha.
    
        The *message* argument is formatted with *name* and *remove* as a Python
        version tuple (e.g. (3, 11)).
    
        """
        remove_formatted = f"{remove[0]}.{remove[1]}"
        if (_version[:2] > remove) or (_version[:2] == remove and _version[3] 
!= "alpha"):
            msg = f"{name!r} was slated for removal after Python 
{remove_formatted} alpha"
            raise RuntimeError(msg)
        else:
            msg = message.format(name=name, remove=remove_formatted)
>           _wm.warn(msg, DeprecationWarning, stacklevel=3)
E           DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and 
slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead

/usr/lib/python3.14/_py_warnings.py:833: DeprecationWarning
=========================== short test summary info ============================
FAILED tests/integration/test_filter.py::test_filter_basic_auth - ExceptionGr...
FAILED tests/integration/test_httplib2.py::test_decorator[http] - Deprecation...
FAILED tests/integration/test_urllib2.py::test_decorator[http] - DeprecationW...
FAILED tests/integration/test_httplib2.py::test_decorator[https] - Deprecatio...
FAILED tests/integration/test_urllib2.py::test_decorator[https] - Deprecation...
FAILED 
tests/unit/test_cassettes.py::test_function_decorated_with_use_cassette_can_be_invoked_multiple_times
FAILED tests/unit/test_cassettes.py::test_arg_getter_functionality - Deprecat...
FAILED tests/unit/test_cassettes.py::test_decorated_functions_are_reentrant
FAILED 
tests/unit/test_cassettes.py::test_cassette_use_called_without_path_uses_function_to_generate_path
FAILED tests/unit/test_cassettes.py::test_path_transformer_with_function_path
FAILED tests/unit/test_cassettes.py::test_func_path_generator - DeprecationWa...
FAILED tests/unit/test_cassettes.py::test_use_as_decorator_on_coroutine - Dep...
FAILED tests/unit/test_cassettes.py::test_use_as_decorator_on_generator - Dep...
FAILED tests/unit/test_vcr.py::test_vcr_use_cassette - DeprecationWarning: 'a...
FAILED tests/unit/test_vcr.py::test_fixtures_with_use_cassette - DeprecationW...
FAILED tests/unit/test_vcr.py::test_inject_cassette - DeprecationWarning: 'as...
FAILED tests/unit/test_vcr.py::test_with_current_defaults - DeprecationWarnin...
FAILED 
tests/unit/test_vcr.py::test_cassette_library_dir_with_decoration_and_no_explicit_path
FAILED 
tests/unit/test_vcr.py::test_cassette_library_dir_with_decoration_and_explicit_path
FAILED 
tests/unit/test_vcr.py::test_cassette_library_dir_with_decoration_and_super_explicit_path
FAILED tests/unit/test_vcr.py::test_cassette_library_dir_with_path_transformer
FAILED tests/unit/test_vcr.py::test_use_cassette_with_no_extra_invocation - D...
FAILED tests/unit/test_vcr.py::test_path_transformer - DeprecationWarning: 'a...
FAILED 
tests/unit/test_vcr.py::test_cassette_name_generator_defaults_to_using_module_function_defined_in
FAILED tests/unit/test_vcr.py::test_ensure_suffix - DeprecationWarning: 'asyn...
FAILED 
tests/unit/test_vcr.py::test_decoration_should_respect_function_return_value
FAILED tests/unit/test_vcr.py::TestVCRClass::test_one - DeprecationWarning: '...
FAILED tests/unit/test_vcr.py::TestVCRClass::test_two - DeprecationWarning: '...
FAILED tests/unit/test_vcr.py::TestVCRClass::test_dynamically_added - Depreca...
FAILED tests/unit/test_vcr.py::test_use_cassette_generator_return - Deprecati...
=========== 30 failed, 249 passed, 3 skipped, 24 deselected in 2.17s ===========
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_vcr/build; python3.14 -m pytest 
--ignore tests/integration/test_aiohttp.py --ignore 
tests/integration/test_tornado.py --ignore tests/integration/test_requests.py 
-m "not online" -k "not test_basic_json_use and not 
test_load_cassette_with_custom_persister and not test_post[http] and not 
test_post[https] and not test_body_consumed_once_stream and not 
test_body_consumed_once_iterator and not test_additional_matchers"
I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_vcr/build; 
python3.13 -m pytest --ignore tests/integration/test_aiohttp.py --ignore 
tests/integration/test_tornado.py --ignore tests/integration/test_requests.py 
-m "not online" -k "not test_basic_json_use and not 
test_load_cassette_with_custom_persister and not test_post[http] and not 
test_post[https] and not test_body_consumed_once_stream and not 
test_body_consumed_once_iterator and not test_additional_matchers"
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>
configfile: pyproject.toml
plugins: httpbin-2.1.0, typeguard-4.4.4, tornado-0.8.1
collected 305 items / 24 deselected / 1 skipped / 281 selected

tests/integration/test_basic.py ....                                     [  1%]
tests/integration/test_boto3.py ss                                       [  2%]
tests/integration/test_config.py .                                       [  2%]
tests/integration/test_filter.py ..........                              [  6%]
tests/integration/test_httplib2.py ........                              [  8%]
tests/integration/test_urllib2.py ........                               [ 11%]
tests/integration/test_urllib3.py ......                                 [ 13%]
tests/integration/test_httplib2.py ........                              [ 16%]
tests/integration/test_urllib2.py ........                               [ 19%]
tests/integration/test_urllib3.py ......                                 [ 21%]
tests/integration/test_httplib2.py .                                     [ 22%]
tests/integration/test_ignore.py ....                                    [ 23%]
tests/integration/test_matchers.py ..............                        [ 28%]
tests/integration/test_multiple.py .                                     [ 28%]
tests/integration/test_proxy.py .                                        [ 29%]
tests/integration/test_record_mode.py ........                           [ 32%]
tests/integration/test_register_persister.py ..                          [ 32%]
tests/integration/test_register_serializer.py .                          [ 33%]
tests/integration/test_request.py ..                                     [ 33%]
tests/integration/test_stubs.py ....                                     [ 35%]
tests/integration/test_urllib2.py .                                      [ 35%]
tests/integration/test_urllib3.py ...                                    [ 36%]
tests/integration/test_wild.py ....                                      [ 38%]
tests/unit/test_cassettes.py ...............................             [ 49%]
tests/unit/test_errors.py ....                                           [ 50%]
tests/unit/test_filters.py ........................                      [ 59%]
tests/unit/test_json_serializer.py .                                     [ 59%]
tests/unit/test_matchers.py ............................                 [ 69%]
tests/unit/test_migration.py ...                                         [ 70%]
tests/unit/test_persist.py ....                                          [ 71%]
tests/unit/test_request.py .................                             [ 77%]
tests/unit/test_response.py ....                                         [ 79%]
tests/unit/test_serialize.py ...............                             [ 84%]
tests/unit/test_stubs.py .                                               [ 85%]
tests/unit/test_unittest.py .......                                      [ 87%]
tests/unit/test_util.py ...........                                      [ 91%]
tests/unit/test_vcr.py .......................                           [ 99%]
tests/unit/test_vcr_import.py .                                          [100%]

================ 279 passed, 3 skipped, 24 deselected in 1.62s =================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:28: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

Reply via email to