Package: src:python-miio
Version: 0.5.12-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 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:129: Building wheel for python3.13 with "build" 
module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13  
* Building wheel...
Successfully built python_miio-0.5.12-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with 
"installer" module
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12  
* Building wheel...
Successfully built python_miio-0.5.12-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
"installer" module
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
# the core file must not exist before tests are run
[ -z "$(find ./.pybuild -regex './.pybuild/cpython3_[0-9.]+/build/core' -print 
-quit)" ] || exit 1
dh_auto_test
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; 
python3.13 -m pytest 
============================= test session starts ==============================
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build
configfile: pyproject.toml
plugins: mock-3.14.0, typeguard-4.4.1
collected 838 items

miio/integrations/airpurifier/airdog/tests/test_airpurifier_airdog.py .. [  0%]
.....                                                                    [  0%]
miio/integrations/airpurifier/dmaker/tests/test_airfresh_t2017.py ...... [  1%]
.................                                                        [  3%]
miio/integrations/airpurifier/zhimi/tests/test_airfilter_util.py ....    [  4%]
miio/integrations/airpurifier/zhimi/tests/test_airfresh.py ............. [  5%]
........                                                                 [  6%]
miio/integrations/airpurifier/zhimi/tests/test_airpurifier.py .......... [  7%]
..................                                                       [  9%]
miio/integrations/airpurifier/zhimi/tests/test_airpurifier_miot.py ..... [ 10%]
..............                                                           [ 12%]
miio/integrations/fan/dmaker/test_fan.py ...........                     [ 13%]
miio/integrations/fan/dmaker/test_fan_miot.py .....................      [ 15%]
miio/integrations/fan/leshow/tests/test_fan_leshow.py .......            [ 16%]
miio/integrations/fan/zhimi/test_fan.py ................................ [ 20%]
............                                                             [ 22%]
miio/integrations/fan/zhimi/test_zhimi_miot.py ............              [ 23%]
miio/integrations/humidifier/deerma/tests/test_airhumidifier_jsqs.py ... [ 23%]
.....                                                                    [ 24%]
miio/integrations/humidifier/deerma/tests/test_airhumidifier_mjjsq.py .. [ 24%]
......                                                                   [ 25%]
miio/integrations/humidifier/shuii/tests/test_airhumidifier_jsq.py ..... [ 26%]
.........                                                                [ 27%]
miio/integrations/humidifier/zhimi/tests/test_airhumidifier.py ......... [ 28%]
.............................................                            [ 33%]
miio/integrations/humidifier/zhimi/tests/test_airhumidifier_miot.py .... [ 34%]
.............                                                            [ 35%]
miio/integrations/light/philips/tests/test_ceil.py ..........            [ 36%]
miio/integrations/light/philips/tests/test_philips_bulb.py ............. [ 38%]
                                                                         [ 38%]
miio/integrations/light/philips/tests/test_philips_eyecare.py .......... [ 39%]
.                                                                        [ 39%]
miio/integrations/light/philips/tests/test_philips_moonlight.py ........ [ 40%]
.                                                                        [ 40%]
miio/integrations/light/philips/tests/test_philips_rwread.py .........   [ 41%]
miio/integrations/light/yeelight/tests/test_yeelight.py ....s...s.s....  [ 43%]
miio/integrations/light/yeelight/tests/test_yeelight_spec_helper.py ..   [ 43%]
miio/integrations/petwaterdispenser/tests/test_status.py .               [ 43%]
miio/integrations/vacuum/dreame/tests/test_dreamevacuum_miot.py ........ [ 44%]
.........                                                                [ 45%]
miio/integrations/vacuum/roborock/tests/test_mirobo.py .                 [ 46%]
miio/integrations/vacuum/roborock/tests/test_vacuum.py ................. [ 48%]
....                                                                     [ 48%]
miio/integrations/vacuum/roidmi/tests/test_roidmivacuum_miot.py ........ [ 49%]
                                                                         [ 49%]
miio/tests/test_airconditioner_miot.py ................                  [ 51%]
miio/tests/test_airconditioningcompanion.py .................            [ 53%]
miio/tests/test_airdehumidifier.py .........                             [ 54%]
miio/tests/test_airqualitymonitor.py .....                               [ 55%]
miio/tests/test_airqualitymonitor_miot.py .....                          [ 55%]
miio/tests/test_chuangmi_ir.py .......                                   [ 56%]
miio/tests/test_chuangmi_plug.py ...............                         [ 58%]
miio/tests/test_click_common.py ..                                       [ 58%]
miio/tests/test_device.py .............................................. [ 64%]
........................................................................ [ 72%]
.....                                                                    [ 73%]
miio/tests/test_deviceinfo.py ..                                         [ 73%]
miio/tests/test_devicestatus.py ......                                   [ 74%]
miio/tests/test_heater.py ........                                       [ 75%]
miio/tests/test_heater_miot.py .......                                   [ 76%]
miio/tests/test_huizuo.py ...............                                [ 77%]
miio/tests/test_miotdevice.py .......F.................................. [ 82%]
...............                                                          [ 84%]
miio/tests/test_powerstrip.py ...................                        [ 86%]
miio/tests/test_protocol.py ...............                              [ 88%]
miio/tests/test_toiletlid.py ......                                      [ 89%]
miio/tests/test_vacuums.py ............................................. [ 94%]
.......................                                                  [ 97%]
miio/tests/test_walkingpad.py .......                                    [ 98%]
miio/tests/test_waterpurifier.py ...                                     [ 98%]
miio/tests/test_wifirepeater.py .....                                    [ 99%]
miio/tests/test_yeelight_dual_switch.py ......                           [100%]

=================================== FAILURES ===================================
_____________________ test_set_property_by[value_type4-1] ______________________

dev = <MiotDevice: 127.0.0.1 (token: 68ffffffffffffffffffffffffffffff)>
value_type = functools.partial(<function MiotValueType._str2bool at 
0x7fa9e8e142c0>)
value = '1'

    @pytest.mark.parametrize(
        "value_type,value",
        [
            (None, 1),
            (MiotValueType.Int, "1"),
            (MiotValueType.Float, "1.2"),
            (MiotValueType.Str, "str"),
            (MiotValueType.Bool, "1"),
        ],
    )
    def test_set_property_by(dev, value_type, value):
        siid = 1
        piid = 1
>       _ = dev.set_property_by(siid, piid, value, value_type)

miio/tests/test_miotdevice.py:61: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
miio/click_common.py:184: in _wrap
    return func(self, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <MiotDevice: 127.0.0.1 (token: 68ffffffffffffffffffffffffffffff)>
siid = 1, piid = 1, value = '1'
value_type = functools.partial(<function MiotValueType._str2bool at 
0x7fa9e8e142c0>)

    @command(
        click.argument("siid", type=int),
        click.argument("piid", type=int),
        click.argument("value"),
        click.argument(
            "value_type", type=EnumType(MiotValueType), required=False, 
default=None
        ),
    )
    def set_property_by(
        self,
        siid: int,
        piid: int,
        value: Union[int, float, str, bool],
        value_type: Any = None,
    ):
        """Set a single property (siid/piid) to given value.
    
        value_type can be given to convert the value to wanted type, allowed 
types are:
        int, float, bool, str
        """
        if value_type is not None:
>           value = value_type.value(value)
E           AttributeError: 'functools.partial' object has no attribute 'value'

miio/miot_device.py:142: AttributeError
=============================== warnings summary ===============================
miio/protocol.py:222
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/miio/protocol.py:222: 
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).
    "ts" / TimeAdapter(Default(Int32ub, datetime.datetime.utcnow())),

miio/miot_device.py:23
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/miio/miot_device.py:23: 
FutureWarning: functools.partial will be a method descriptor in future Python 
versions; wrap it in enum.member() if you want to preserve the old behavior
    Bool = partial(_str2bool)

miio/integrations/vacuum/dreame/tests/test_dreamevacuum_miot.py: 8 warnings
miio/integrations/vacuum/roborock/tests/test_mirobo.py: 1 warning
miio/tests/test_device.py: 68 warnings
miio/tests/test_miotdevice.py: 3 warnings
miio/tests/test_protocol.py: 8 warnings
miio/tests/test_vacuums.py: 66 warnings
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/miio/miioprotocol.py:50: 
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._device_ts: datetime = datetime.utcnow()

miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV1::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV1::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV3::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV3::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugM1::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugM1::test_status
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/miio/device.py:41: 
DeprecationWarning: Call to deprecated function wifi_led (Use led()).
    prop_value = prop.fget(self)

miio/tests/test_powerstrip.py::TestPowerStripV1::test_status
miio/tests/test_powerstrip.py::TestPowerStripV1::test_status
miio/tests/test_powerstrip.py::TestPowerStripV2::test_status
miio/tests/test_powerstrip.py::TestPowerStripV2::test_status
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/miio/device.py:41: 
DeprecationWarning: Call to deprecated function wifi_led (Use led instead of 
wifi_led).
    prop_value = prop.fget(self)

miio/tests/test_protocol.py::test_decode_json_payload
miio/tests/test_protocol.py::test_decode_json_quirk_powerstrip
miio/tests/test_protocol.py::test_decode_json_quirk_cloud
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/miio/protocol.py:146: 
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).
    return datetime.datetime.utcfromtimestamp(obj)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED miio/tests/test_miotdevice.py::test_set_property_by[value_type4-1] - A...
============ 1 failed, 834 passed, 3 skipped, 169 warnings in 1.31s ============
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest 
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; 
python3.12 -m pytest 
============================= test session starts ==============================
platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build
configfile: pyproject.toml
plugins: mock-3.14.0, typeguard-4.4.1
collected 838 items

miio/integrations/airpurifier/airdog/tests/test_airpurifier_airdog.py .. [  0%]
.....                                                                    [  0%]
miio/integrations/airpurifier/dmaker/tests/test_airfresh_t2017.py ...... [  1%]
.................                                                        [  3%]
miio/integrations/airpurifier/zhimi/tests/test_airfilter_util.py ....    [  4%]
miio/integrations/airpurifier/zhimi/tests/test_airfresh.py ............. [  5%]
........                                                                 [  6%]
miio/integrations/airpurifier/zhimi/tests/test_airpurifier.py .......... [  7%]
..................                                                       [  9%]
miio/integrations/airpurifier/zhimi/tests/test_airpurifier_miot.py ..... [ 10%]
..............                                                           [ 12%]
miio/integrations/fan/dmaker/test_fan.py ...........                     [ 13%]
miio/integrations/fan/dmaker/test_fan_miot.py .....................      [ 15%]
miio/integrations/fan/leshow/tests/test_fan_leshow.py .......            [ 16%]
miio/integrations/fan/zhimi/test_fan.py ................................ [ 20%]
............                                                             [ 22%]
miio/integrations/fan/zhimi/test_zhimi_miot.py ............              [ 23%]
miio/integrations/humidifier/deerma/tests/test_airhumidifier_jsqs.py ... [ 23%]
.....                                                                    [ 24%]
miio/integrations/humidifier/deerma/tests/test_airhumidifier_mjjsq.py .. [ 24%]
......                                                                   [ 25%]
miio/integrations/humidifier/shuii/tests/test_airhumidifier_jsq.py ..... [ 26%]
.........                                                                [ 27%]
miio/integrations/humidifier/zhimi/tests/test_airhumidifier.py ......... [ 28%]
.............................................                            [ 33%]
miio/integrations/humidifier/zhimi/tests/test_airhumidifier_miot.py .... [ 34%]
.............                                                            [ 35%]
miio/integrations/light/philips/tests/test_ceil.py ..........            [ 36%]
miio/integrations/light/philips/tests/test_philips_bulb.py ............. [ 38%]
                                                                         [ 38%]
miio/integrations/light/philips/tests/test_philips_eyecare.py .......... [ 39%]
.                                                                        [ 39%]
miio/integrations/light/philips/tests/test_philips_moonlight.py ........ [ 40%]
.                                                                        [ 40%]
miio/integrations/light/philips/tests/test_philips_rwread.py .........   [ 41%]
miio/integrations/light/yeelight/tests/test_yeelight.py ....s...s.s....  [ 43%]
miio/integrations/light/yeelight/tests/test_yeelight_spec_helper.py ..   [ 43%]
miio/integrations/petwaterdispenser/tests/test_status.py .               [ 43%]
miio/integrations/vacuum/dreame/tests/test_dreamevacuum_miot.py ........ [ 44%]
.........                                                                [ 45%]
miio/integrations/vacuum/roborock/tests/test_mirobo.py .                 [ 46%]
miio/integrations/vacuum/roborock/tests/test_vacuum.py ................. [ 48%]
....                                                                     [ 48%]
miio/integrations/vacuum/roidmi/tests/test_roidmivacuum_miot.py ........ [ 49%]
                                                                         [ 49%]
miio/tests/test_airconditioner_miot.py ................                  [ 51%]
miio/tests/test_airconditioningcompanion.py .................            [ 53%]
miio/tests/test_airdehumidifier.py .........                             [ 54%]
miio/tests/test_airqualitymonitor.py .....                               [ 55%]
miio/tests/test_airqualitymonitor_miot.py .....                          [ 55%]
miio/tests/test_chuangmi_ir.py .......                                   [ 56%]
miio/tests/test_chuangmi_plug.py ...............                         [ 58%]
miio/tests/test_click_common.py ..                                       [ 58%]
miio/tests/test_device.py .............................................. [ 64%]
........................................................................ [ 72%]
.....                                                                    [ 73%]
miio/tests/test_deviceinfo.py ..                                         [ 73%]
miio/tests/test_devicestatus.py ......                                   [ 74%]
miio/tests/test_heater.py ........                                       [ 75%]
miio/tests/test_heater_miot.py .......                                   [ 76%]
miio/tests/test_huizuo.py ...............                                [ 77%]
miio/tests/test_miotdevice.py .......................................... [ 82%]
...............                                                          [ 84%]
miio/tests/test_powerstrip.py ...................                        [ 86%]
miio/tests/test_protocol.py ...............                              [ 88%]
miio/tests/test_toiletlid.py ......                                      [ 89%]
miio/tests/test_vacuums.py ............................................. [ 94%]
.......................                                                  [ 97%]
miio/tests/test_walkingpad.py .......                                    [ 98%]
miio/tests/test_waterpurifier.py ...                                     [ 98%]
miio/tests/test_wifirepeater.py .....                                    [ 99%]
miio/tests/test_yeelight_dual_switch.py ......                           [100%]

=============================== warnings summary ===============================
miio/protocol.py:222
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/miio/protocol.py:222: 
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).
    "ts" / TimeAdapter(Default(Int32ub, datetime.datetime.utcnow())),

miio/integrations/vacuum/dreame/tests/test_dreamevacuum_miot.py: 8 warnings
miio/integrations/vacuum/roborock/tests/test_mirobo.py: 1 warning
miio/tests/test_device.py: 68 warnings
miio/tests/test_miotdevice.py: 3 warnings
miio/tests/test_protocol.py: 8 warnings
miio/tests/test_vacuums.py: 66 warnings
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/miio/miioprotocol.py:50: 
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._device_ts: datetime = datetime.utcnow()

miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV1::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV1::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV3::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugV3::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugM1::test_status
miio/tests/test_chuangmi_plug.py::TestChuangmiPlugM1::test_status
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/miio/device.py:41: 
DeprecationWarning: Call to deprecated function wifi_led (Use led()).
    prop_value = prop.fget(self)

miio/tests/test_powerstrip.py::TestPowerStripV1::test_status
miio/tests/test_powerstrip.py::TestPowerStripV1::test_status
miio/tests/test_powerstrip.py::TestPowerStripV2::test_status
miio/tests/test_powerstrip.py::TestPowerStripV2::test_status
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/miio/device.py:41: 
DeprecationWarning: Call to deprecated function wifi_led (Use led instead of 
wifi_led).
    prop_value = prop.fget(self)

miio/tests/test_protocol.py::test_decode_json_payload
miio/tests/test_protocol.py::test_decode_json_quirk_powerstrip
miio/tests/test_protocol.py::test_decode_json_quirk_cloud
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/miio/protocol.py:146: 
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).
    return datetime.datetime.utcfromtimestamp(obj)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================= 835 passed, 3 skipped, 168 warnings in 1.47s =================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make[1]: *** [debian/rules:16: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:7: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

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

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 could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

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

Thanks.

Reply via email to