Package: src:pyswitchbot
Version: 0.72.1-1
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:pyswitchbot, 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
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:131: Building wheel for python3.14 with "build" 
module
I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14  
* Building wheel...
running bdist_wheel

[... snipped ...]

        if self._local._loop is None:
>           raise RuntimeError('There is no current event loop in thread %r.'
                               % threading.current_thread().name)
E           RuntimeError: There is no current event loop in thread 'MainThread'.

/usr/lib/python3.14/asyncio/events.py:715: RuntimeError
______________________________ test_get_position _______________________________

    def test_get_position():
>       curtain_device = create_device_for_command_testing()
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_roller_shade.py:208: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_roller_shade.py:16: in create_device_for_command_testing
    roller_shade_device = roller_shade.SwitchbotRollerShade(
switchbot/devices/roller_shade.py:39: in __init__
    super().__init__(self._reverse, *args, **kwargs)
switchbot/devices/base_cover.py:38: in __init__
    super().__init__(*args, **kwargs)
switchbot/devices/device.py:196: in __init__
    self.loop = asyncio.get_event_loop()
                ^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 
0x7f6b1b6a9400>

    def get_event_loop(self):
        """Get the event loop for the current context.
    
        Returns an instance of EventLoop or raises an exception.
        """
        if self._local._loop is None:
>           raise RuntimeError('There is no current event loop in thread %r.'
                               % threading.current_thread().name)
E           RuntimeError: There is no current event loop in thread 'MainThread'.

/usr/lib/python3.14/asyncio/events.py:715: RuntimeError
____________ test_update_motion_direction_with_no_previous_position ____________

    def test_update_motion_direction_with_no_previous_position():
>       curtain_device = create_device_for_command_testing(reverse_mode=True)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_roller_shade.py:213: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_roller_shade.py:16: in create_device_for_command_testing
    roller_shade_device = roller_shade.SwitchbotRollerShade(
switchbot/devices/roller_shade.py:39: in __init__
    super().__init__(self._reverse, *args, **kwargs)
switchbot/devices/base_cover.py:38: in __init__
    super().__init__(*args, **kwargs)
switchbot/devices/device.py:196: in __init__
    self.loop = asyncio.get_event_loop()
                ^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 
0x7f6b1b6a9400>

    def get_event_loop(self):
        """Get the event loop for the current context.
    
        Returns an instance of EventLoop or raises an exception.
        """
        if self._local._loop is None:
>           raise RuntimeError('There is no current event loop in thread %r.'
                               % threading.current_thread().name)
E           RuntimeError: There is no current event loop in thread 'MainThread'.

/usr/lib/python3.14/asyncio/events.py:715: RuntimeError
_____________ test_update_motion_direction_with_previous_position ______________

    def test_update_motion_direction_with_previous_position():
>       curtain_device = create_device_for_command_testing(reverse_mode=True)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_roller_shade.py:220: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/test_roller_shade.py:16: in create_device_for_command_testing
    roller_shade_device = roller_shade.SwitchbotRollerShade(
switchbot/devices/roller_shade.py:39: in __init__
    super().__init__(self._reverse, *args, **kwargs)
switchbot/devices/base_cover.py:38: in __init__
    super().__init__(*args, **kwargs)
switchbot/devices/device.py:196: in __init__
    self.loop = asyncio.get_event_loop()
                ^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 
0x7f6b1b6a9400>

    def get_event_loop(self):
        """Get the event loop for the current context.
    
        Returns an instance of EventLoop or raises an exception.
        """
        if self._local._loop is None:
>           raise RuntimeError('There is no current event loop in thread %r.'
                               % threading.current_thread().name)
E           RuntimeError: There is no current event loop in thread 'MainThread'.

/usr/lib/python3.14/asyncio/events.py:715: RuntimeError
=============================== warnings summary ===============================
tests/test_adv_parser.py: 150 warnings
tests/test_air_purifier.py: 61 warnings
tests/test_base_cover.py: 20 warnings
tests/test_blind_tilt.py: 24 warnings
tests/test_bulb.py: 16 warnings
tests/test_ceiling_light.py: 16 warnings
tests/test_curtain.py: 42 warnings
tests/test_encrypted_device.py: 17 warnings
tests/test_evaporative_humidifier.py: 21 warnings
tests/test_fan.py: 15 warnings
tests/test_lock.py: 105 warnings
tests/test_relay_switch.py: 32 warnings
tests/test_roller_shade.py: 17 warnings
tests/test_smart_thermostat_radiator.py: 17 warnings
tests/test_strip_light.py: 83 warnings
tests/test_vacuum.py: 24 warnings
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_adv_parser.py:57: 
DeprecationWarning: Passing additional arguments for BLEDevice is deprecated 
and has no effect.
    return BLEDevice(**new)

tests/test_relay_switch.py: 17 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/switchbot/devices/relay_switch.py:173:
 RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    _LOGGER.debug(
  Enable tracemalloc to get traceback where the object was allocated.
  See 
https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings
 for more info.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_blind_tilt.py::test_device_passive_opening[True] - RuntimeE...
FAILED tests/test_blind_tilt.py::test_device_passive_opening[False] - Runtime...
FAILED tests/test_blind_tilt.py::test_device_passive_closing[True] - RuntimeE...
FAILED tests/test_blind_tilt.py::test_device_passive_closing[False] - Runtime...
FAILED tests/test_blind_tilt.py::test_device_passive_opening_then_stop[True]
FAILED tests/test_blind_tilt.py::test_device_passive_opening_then_stop[False]
FAILED tests/test_blind_tilt.py::test_device_passive_closing_then_stop[True]
FAILED tests/test_blind_tilt.py::test_device_passive_closing_then_stop[False]
FAILED tests/test_bulb.py::test_effect_list_contains_lowercase_names - Runtim...
FAILED tests/test_curtain.py::test_device_passive_not_in_motion[True] - Runti...
FAILED tests/test_curtain.py::test_device_passive_not_in_motion[False] - Runt...
FAILED tests/test_curtain.py::test_device_passive_opening[True] - RuntimeErro...
FAILED tests/test_curtain.py::test_device_passive_opening[False] - RuntimeErr...
FAILED tests/test_curtain.py::test_device_passive_closing[True] - RuntimeErro...
FAILED tests/test_curtain.py::test_device_passive_closing[False] - RuntimeErr...
FAILED tests/test_curtain.py::test_device_passive_opening_then_stop[True] - R...
FAILED tests/test_curtain.py::test_device_passive_opening_then_stop[False] - ...
FAILED tests/test_curtain.py::test_device_passive_closing_then_stop[True] - R...
FAILED tests/test_curtain.py::test_device_passive_closing_then_stop[False] - ...
FAILED tests/test_curtain.py::test_get_position - RuntimeError: There is no c...
FAILED tests/test_curtain.py::test_get_light_level - RuntimeError: There is n...
FAILED tests/test_curtain.py::test_is_reversed[True] - RuntimeError: There is...
FAILED tests/test_curtain.py::test_is_reversed[False] - RuntimeError: There i...
FAILED tests/test_curtain.py::test_is_calibrated[True] - RuntimeError: There ...
FAILED tests/test_curtain.py::test_is_calibrated[False] - RuntimeError: There...
FAILED tests/test_lock.py::test_lock_init[WoLock] - RuntimeError: There is no...
FAILED tests/test_lock.py::test_lock_init[Lock Lite] - RuntimeError: There is...
FAILED tests/test_lock.py::test_lock_init[WoLockPro] - RuntimeError: There is...
FAILED tests/test_lock.py::test_lock_init[Lock Ultra] - RuntimeError: There i...
FAILED tests/test_lock.py::test_parse_basic_data - RuntimeError: There is no ...
FAILED tests/test_lock.py::test_is_calibrated[WoLock] - RuntimeError: There i...
FAILED tests/test_lock.py::test_is_calibrated[Lock Lite] - RuntimeError: Ther...
FAILED tests/test_lock.py::test_is_calibrated[WoLockPro] - RuntimeError: Ther...
FAILED tests/test_lock.py::test_is_calibrated[Lock Ultra] - RuntimeError: The...
FAILED tests/test_lock.py::test_get_lock_status[WoLock] - RuntimeError: There...
FAILED tests/test_lock.py::test_get_lock_status[Lock Lite] - RuntimeError: Th...
FAILED tests/test_lock.py::test_get_lock_status[WoLockPro] - RuntimeError: Th...
FAILED tests/test_lock.py::test_get_lock_status[Lock Ultra] - RuntimeError: T...
FAILED tests/test_lock.py::test_is_door_open[WoLock] - RuntimeError: There is...
FAILED tests/test_lock.py::test_is_door_open[WoLockPro] - RuntimeError: There...
FAILED tests/test_lock.py::test_is_door_open[Lock Ultra] - RuntimeError: Ther...
FAILED tests/test_lock.py::test_is_unclosed_alarm_on[WoLock] - RuntimeError: ...
FAILED tests/test_lock.py::test_is_unclosed_alarm_on[WoLockPro] - RuntimeErro...
FAILED tests/test_lock.py::test_is_unclosed_alarm_on[Lock Ultra] - RuntimeErr...
FAILED tests/test_lock.py::test_is_unlocked_alarm_on[WoLock] - RuntimeError: ...
FAILED tests/test_lock.py::test_is_unlocked_alarm_on[Lock Lite] - RuntimeErro...
FAILED tests/test_lock.py::test_is_unlocked_alarm_on[WoLockPro] - RuntimeErro...
FAILED tests/test_lock.py::test_is_unlocked_alarm_on[Lock Ultra] - RuntimeErr...
FAILED tests/test_lock.py::test_is_auto_lock_paused[WoLock] - RuntimeError: T...
FAILED tests/test_lock.py::test_is_night_latch_enabled[WoLock] - RuntimeError...
FAILED tests/test_lock.py::test_is_night_latch_enabled[Lock Lite] - RuntimeEr...
FAILED tests/test_lock.py::test_is_night_latch_enabled[WoLockPro] - RuntimeEr...
FAILED tests/test_lock.py::test_is_night_latch_enabled[Lock Ultra] - RuntimeE...
FAILED tests/test_lock.py::test_notification_handler[WoLock] - RuntimeError: ...
FAILED tests/test_lock.py::test_notification_handler[Lock Lite] - RuntimeErro...
FAILED tests/test_lock.py::test_notification_handler[WoLockPro] - RuntimeErro...
FAILED tests/test_lock.py::test_notification_handler[Lock Ultra] - RuntimeErr...
FAILED tests/test_lock.py::test_notification_handler_not_enabled[WoLock] - Ru...
FAILED tests/test_lock.py::test_notification_handler_not_enabled[Lock Lite]
FAILED tests/test_lock.py::test_notification_handler_not_enabled[WoLockPro]
FAILED tests/test_lock.py::test_notification_handler_not_enabled[Lock Ultra]
FAILED tests/test_lock.py::test_notification_handler_during_disconnect[WoLock]
FAILED tests/test_lock.py::test_notification_handler_during_disconnect[Lock 
Lite]
FAILED 
tests/test_lock.py::test_notification_handler_during_disconnect[WoLockPro]
FAILED tests/test_lock.py::test_notification_handler_during_disconnect[Lock 
Ultra]
FAILED tests/test_lock.py::test_update_lock_status[WoLock] - RuntimeError: Th...
FAILED tests/test_lock.py::test_update_lock_status[Lock Lite] - RuntimeError:...
FAILED tests/test_lock.py::test_update_lock_status[WoLockPro] - RuntimeError:...
FAILED tests/test_lock.py::test_update_lock_status[Lock Ultra] - RuntimeError...
FAILED tests/test_roller_shade.py::test_device_passive_closing[True] - Runtim...
FAILED tests/test_roller_shade.py::test_device_passive_closing[False] - Runti...
FAILED tests/test_roller_shade.py::test_device_passive_opening_then_stop[True]
FAILED tests/test_roller_shade.py::test_device_passive_opening_then_stop[False]
FAILED tests/test_roller_shade.py::test_device_passive_closing_then_stop[True]
FAILED tests/test_roller_shade.py::test_device_passive_closing_then_stop[False]
FAILED tests/test_roller_shade.py::test_get_position - RuntimeError: There is...
FAILED 
tests/test_roller_shade.py::test_update_motion_direction_with_no_previous_position
FAILED 
tests/test_roller_shade.py::test_update_motion_direction_with_previous_position
================= 78 failed, 618 passed, 677 warnings in 2.95s =================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build; python3.14 -m pytest tests
I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; 
python3.13 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build
configfile: pyproject.toml
plugins: asyncio-1.2.0, typeguard-4.4.4
asyncio: mode=Mode.STRICT, debug=False, 
asyncio_default_fixture_loop_scope=None, 
asyncio_default_test_loop_scope=function
collected 696 items

tests/test_adv_parser.py ............................................... [  6%]
........................................................................ [ 17%]
...............................                                          [ 21%]
tests/test_air_purifier.py ............................................. [ 28%]
.................                                                        [ 30%]
tests/test_base_cover.py ....................                            [ 33%]
tests/test_blind_tilt.py ........................                        [ 36%]
tests/test_bulb.py ................                                      [ 39%]
tests/test_ceiling_light.py ................                             [ 41%]
tests/test_colormode_imports.py .....                                    [ 42%]
tests/test_curtain.py ..........................................         [ 48%]
tests/test_device.py .........                                           [ 49%]
tests/test_encrypted_device.py .................                         [ 51%]
tests/test_evaporative_humidifier.py .......................             [ 55%]
tests/test_fan.py ................                                       [ 57%]
tests/test_helpers.py .....                                              [ 58%]
tests/test_hub2.py .                                                     [ 58%]
tests/test_hub3.py .                                                     [ 58%]
tests/test_lock.py ..................................................... [ 66%]
............................................................             [ 74%]
tests/test_relay_switch.py ..................................            [ 79%]
tests/test_roller_shade.py .................                             [ 82%]
tests/test_smart_thermostat_radiator.py .................                [ 84%]
tests/test_strip_light.py .............................................. [ 91%]
.....................................                                    [ 96%]
tests/test_utils.py .                                                    [ 96%]
tests/test_vacuum.py ........................                            [100%]

=============================== warnings summary ===============================
tests/test_adv_parser.py: 150 warnings
tests/test_air_purifier.py: 61 warnings
tests/test_base_cover.py: 20 warnings
tests/test_blind_tilt.py: 24 warnings
tests/test_bulb.py: 16 warnings
tests/test_ceiling_light.py: 16 warnings
tests/test_curtain.py: 42 warnings
tests/test_encrypted_device.py: 17 warnings
tests/test_evaporative_humidifier.py: 21 warnings
tests/test_fan.py: 15 warnings
tests/test_lock.py: 105 warnings
tests/test_relay_switch.py: 32 warnings
tests/test_roller_shade.py: 17 warnings
tests/test_smart_thermostat_radiator.py: 17 warnings
tests/test_strip_light.py: 83 warnings
tests/test_vacuum.py: 24 warnings
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tests/test_adv_parser.py:57: 
DeprecationWarning: Passing additional arguments for BLEDevice is deprecated 
and has no effect.
    return BLEDevice(**new)

tests/test_relay_switch.py: 17 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/switchbot/devices/relay_switch.py:173:
 RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
    _LOGGER.debug(
  Enable tracemalloc to get traceback where the object was allocated.
  See 
https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings
 for more info.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
====================== 696 passed, 677 warnings in 1.22s =======================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:3: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

Reply via email to