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.