10s autopkgtest [20:32:13]: starting date and time: 2024-11-23 20:32:13+0000 11s autopkgtest [20:32:15]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 11s autopkgtest [20:32:15]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.cqpl3l06/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python-aiohttp --apt-upgrade python-aiomodernforms --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python-aiohttp/3.10.10-2build1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-24.secgroup --name adt-plucky-arm64-python-aiomodernforms-20241123-203137-juju-7f2275-prod-proposed-migration-environment-15-5d364316-7ea8-4637-afa2-744a80665e27 --image adt/ubuntu-plucky-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 472s autopkgtest [20:39:56]: testbed dpkg architecture: arm64 472s autopkgtest [20:39:56]: testbed apt version: 2.9.8 472s autopkgtest [20:39:56]: @@@@@@@@@@@@@@@@@@@@ test bed setup 473s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 473s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [13.6 kB] 473s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 473s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [54.8 kB] 473s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [930 kB] 474s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 Packages [87.1 kB] 474s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/restricted arm64 Packages [57.8 kB] 474s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 Packages [796 kB] 474s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 Packages [19.3 kB] 474s Fetched 2043 kB in 1s (1746 kB/s) 474s Reading package lists... 478s Reading package lists... 478s Building dependency tree... 478s Reading state information... 479s Calculating upgrade... 479s The following package was automatically installed and is no longer required: 479s libsgutils2-1.46-2 479s Use 'sudo apt autoremove' to remove it. 479s The following NEW packages will be installed: 479s libsgutils2-1.48 479s The following packages will be upgraded: 479s bash bpftrace curl debconf debconf-i18n distro-info fwupd-signed 479s gir1.2-girepository-2.0 gir1.2-glib-2.0 hostname libaudit-common libaudit1 479s libcurl3t64-gnutls libcurl4t64 libgirepository-1.0-1 libglib2.0-0t64 479s libglib2.0-data libpam-modules libpam-modules-bin libpam-runtime libpam0g 479s libplymouth5 libselinux1 libsemanage-common libsemanage2 linux-base 479s lxd-installer openssh-client openssh-server openssh-sftp-server plymouth 479s plymouth-theme-ubuntu-text python3-blinker python3-dbus python3-debconf 479s python3-gi python3-jsonschema-specifications python3-rpds-py python3-yaml 479s sg3-utils sg3-utils-udev vim-common vim-tiny xxd 479s 44 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 479s Need to get 11.7 MB of archives. 479s After this operation, 2983 kB of additional disk space will be used. 479s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 bash arm64 5.2.32-1ubuntu2 [791 kB] 480s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 hostname arm64 3.25 [11.0 kB] 480s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 libaudit-common all 1:4.0.2-2ubuntu1 [6578 B] 480s Get:4 http://ftpmaster.internal/ubuntu plucky/main arm64 libaudit1 arm64 1:4.0.2-2ubuntu1 [54.2 kB] 480s Get:5 http://ftpmaster.internal/ubuntu plucky/main arm64 debconf-i18n all 1.5.87ubuntu1 [204 kB] 480s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-debconf all 1.5.87ubuntu1 [4156 B] 480s Get:7 http://ftpmaster.internal/ubuntu plucky/main arm64 debconf all 1.5.87ubuntu1 [124 kB] 480s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam0g arm64 1.5.3-7ubuntu4 [68.6 kB] 480s Get:9 http://ftpmaster.internal/ubuntu plucky/main arm64 libselinux1 arm64 3.7-3ubuntu1 [81.6 kB] 480s Get:10 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam-modules-bin arm64 1.5.3-7ubuntu4 [50.4 kB] 480s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam-modules arm64 1.5.3-7ubuntu4 [285 kB] 480s Get:12 http://ftpmaster.internal/ubuntu plucky/main arm64 openssh-sftp-server arm64 1:9.9p1-3ubuntu2 [36.8 kB] 480s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 openssh-server arm64 1:9.9p1-3ubuntu2 [524 kB] 480s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 openssh-client arm64 1:9.9p1-3ubuntu2 [920 kB] 480s Get:15 http://ftpmaster.internal/ubuntu plucky/main arm64 libpam-runtime all 1.5.3-7ubuntu4 [40.8 kB] 480s Get:16 http://ftpmaster.internal/ubuntu plucky/main arm64 libsemanage-common all 3.7-2build1 [7186 B] 480s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 libsemanage2 arm64 3.7-2build1 [92.2 kB] 480s Get:18 http://ftpmaster.internal/ubuntu plucky/main arm64 distro-info arm64 1.12 [19.4 kB] 480s Get:19 http://ftpmaster.internal/ubuntu plucky/main arm64 gir1.2-girepository-2.0 arm64 1.82.0-2 [25.2 kB] 480s Get:20 http://ftpmaster.internal/ubuntu plucky/main arm64 gir1.2-glib-2.0 arm64 2.82.2-3 [182 kB] 480s Get:21 http://ftpmaster.internal/ubuntu plucky/main arm64 libglib2.0-0t64 arm64 2.82.2-3 [1560 kB] 481s Get:22 http://ftpmaster.internal/ubuntu plucky/main arm64 libgirepository-1.0-1 arm64 1.82.0-2 [83.0 kB] 481s Get:23 http://ftpmaster.internal/ubuntu plucky/main arm64 libglib2.0-data all 2.82.2-3 [51.7 kB] 481s Get:24 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-dbus arm64 1.3.2-5build4 [109 kB] 481s Get:25 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-gi arm64 3.50.0-3build1 [279 kB] 481s Get:26 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-yaml arm64 6.0.2-1build1 [164 kB] 481s Get:27 http://ftpmaster.internal/ubuntu plucky/main arm64 vim-tiny arm64 2:9.1.0861-1ubuntu1 [805 kB] 481s Get:28 http://ftpmaster.internal/ubuntu plucky/main arm64 vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 481s Get:29 http://ftpmaster.internal/ubuntu plucky/main arm64 xxd arm64 2:9.1.0861-1ubuntu1 [67.3 kB] 481s Get:30 http://ftpmaster.internal/ubuntu plucky/main arm64 libplymouth5 arm64 24.004.60-2ubuntu3 [141 kB] 481s Get:31 http://ftpmaster.internal/ubuntu plucky/main arm64 plymouth-theme-ubuntu-text arm64 24.004.60-2ubuntu3 [9914 B] 481s Get:32 http://ftpmaster.internal/ubuntu plucky/main arm64 plymouth arm64 24.004.60-2ubuntu3 [135 kB] 481s Get:33 http://ftpmaster.internal/ubuntu plucky/main arm64 bpftrace arm64 0.21.2-2ubuntu3 [1854 kB] 481s Get:34 http://ftpmaster.internal/ubuntu plucky/main arm64 curl arm64 8.9.1-2ubuntu3 [235 kB] 481s Get:35 http://ftpmaster.internal/ubuntu plucky/main arm64 libcurl4t64 arm64 8.9.1-2ubuntu3 [365 kB] 481s Get:36 http://ftpmaster.internal/ubuntu plucky/main arm64 fwupd-signed arm64 1.55+1.7-1 [30.9 kB] 481s Get:37 http://ftpmaster.internal/ubuntu plucky/main arm64 libcurl3t64-gnutls arm64 8.9.1-2ubuntu3 [359 kB] 481s Get:38 http://ftpmaster.internal/ubuntu plucky/main arm64 libsgutils2-1.48 arm64 1.48-0ubuntu1 [118 kB] 481s Get:39 http://ftpmaster.internal/ubuntu plucky/main arm64 linux-base all 4.10.1ubuntu1 [34.8 kB] 481s Get:40 http://ftpmaster.internal/ubuntu plucky/main arm64 lxd-installer all 10 [5264 B] 481s Get:41 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-blinker all 1.9.0-1 [10.7 kB] 481s Get:42 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-rpds-py arm64 0.21.0-2ubuntu1 [302 kB] 481s Get:43 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-jsonschema-specifications all 2023.12.1-2 [9116 B] 481s Get:44 http://ftpmaster.internal/ubuntu plucky/main arm64 sg3-utils arm64 1.48-0ubuntu1 [999 kB] 483s Get:45 http://ftpmaster.internal/ubuntu plucky/main arm64 sg3-utils-udev all 1.48-0ubuntu1 [6608 B] 483s Preconfiguring packages ... 483s Fetched 11.7 MB in 2s (5480 kB/s) 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../bash_5.2.32-1ubuntu2_arm64.deb ... 483s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 483s Setting up bash (5.2.32-1ubuntu2) ... 483s update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../hostname_3.25_arm64.deb ... 483s Unpacking hostname (3.25) over (3.23+nmu2ubuntu2) ... 483s Setting up hostname (3.25) ... 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu1_all.deb ... 483s Unpacking libaudit-common (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 483s Setting up libaudit-common (1:4.0.2-2ubuntu1) ... 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu1_arm64.deb ... 483s Unpacking libaudit1:arm64 (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 483s Setting up libaudit1:arm64 (1:4.0.2-2ubuntu1) ... 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 483s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 483s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 483s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 483s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 483s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 483s Setting up debconf (1.5.87ubuntu1) ... 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../libpam0g_1.5.3-7ubuntu4_arm64.deb ... 483s Unpacking libpam0g:arm64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 483s Setting up libpam0g:arm64 (1.5.3-7ubuntu4) ... 483s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 483s Preparing to unpack .../libselinux1_3.7-3ubuntu1_arm64.deb ... 483s Unpacking libselinux1:arm64 (3.7-3ubuntu1) over (3.5-2ubuntu5) ... 484s Setting up libselinux1:arm64 (3.7-3ubuntu1) ... 484s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 484s Preparing to unpack .../libpam-modules-bin_1.5.3-7ubuntu4_arm64.deb ... 484s Unpacking libpam-modules-bin (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 484s Setting up libpam-modules-bin (1.5.3-7ubuntu4) ... 484s pam_namespace.service is a disabled or a static unit not running, not starting it. 484s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 484s Preparing to unpack .../libpam-modules_1.5.3-7ubuntu4_arm64.deb ... 484s Unpacking libpam-modules:arm64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 484s Setting up libpam-modules:arm64 (1.5.3-7ubuntu4) ... 484s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80002 files and directories currently installed.) 484s Preparing to unpack .../openssh-sftp-server_1%3a9.9p1-3ubuntu2_arm64.deb ... 484s Unpacking openssh-sftp-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 484s Preparing to unpack .../openssh-server_1%3a9.9p1-3ubuntu2_arm64.deb ... 484s Unpacking openssh-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 484s Preparing to unpack .../openssh-client_1%3a9.9p1-3ubuntu2_arm64.deb ... 484s Unpacking openssh-client (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 485s Preparing to unpack .../libpam-runtime_1.5.3-7ubuntu4_all.deb ... 485s Unpacking libpam-runtime (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 485s Setting up libpam-runtime (1.5.3-7ubuntu4) ... 485s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80004 files and directories currently installed.) 485s Preparing to unpack .../libsemanage-common_3.7-2build1_all.deb ... 485s Unpacking libsemanage-common (3.7-2build1) over (3.5-1build6) ... 485s Setting up libsemanage-common (3.7-2build1) ... 485s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80003 files and directories currently installed.) 485s Preparing to unpack .../libsemanage2_3.7-2build1_arm64.deb ... 485s Unpacking libsemanage2:arm64 (3.7-2build1) over (3.5-1build6) ... 485s Setting up libsemanage2:arm64 (3.7-2build1) ... 485s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80003 files and directories currently installed.) 485s Preparing to unpack .../00-distro-info_1.12_arm64.deb ... 485s Unpacking distro-info (1.12) over (1.9) ... 485s Preparing to unpack .../01-gir1.2-girepository-2.0_1.82.0-2_arm64.deb ... 485s Unpacking gir1.2-girepository-2.0:arm64 (1.82.0-2) over (1.80.1-4) ... 485s Preparing to unpack .../02-gir1.2-glib-2.0_2.82.2-3_arm64.deb ... 485s Unpacking gir1.2-glib-2.0:arm64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 485s Preparing to unpack .../03-libglib2.0-0t64_2.82.2-3_arm64.deb ... 485s Unpacking libglib2.0-0t64:arm64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 485s Preparing to unpack .../04-libgirepository-1.0-1_1.82.0-2_arm64.deb ... 485s Unpacking libgirepository-1.0-1:arm64 (1.82.0-2) over (1.80.1-4) ... 485s Preparing to unpack .../05-libglib2.0-data_2.82.2-3_all.deb ... 485s Unpacking libglib2.0-data (2.82.2-3) over (2.82.1-0ubuntu1) ... 485s Preparing to unpack .../06-python3-dbus_1.3.2-5build4_arm64.deb ... 485s Unpacking python3-dbus (1.3.2-5build4) over (1.3.2-5build3) ... 485s Preparing to unpack .../07-python3-gi_3.50.0-3build1_arm64.deb ... 486s Unpacking python3-gi (3.50.0-3build1) over (3.50.0-3) ... 486s Preparing to unpack .../08-python3-yaml_6.0.2-1build1_arm64.deb ... 486s Unpacking python3-yaml (6.0.2-1build1) over (6.0.2-1) ... 486s Preparing to unpack .../09-vim-tiny_2%3a9.1.0861-1ubuntu1_arm64.deb ... 486s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 486s Preparing to unpack .../10-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 486s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 486s Preparing to unpack .../11-xxd_2%3a9.1.0861-1ubuntu1_arm64.deb ... 486s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 486s Preparing to unpack .../12-libplymouth5_24.004.60-2ubuntu3_arm64.deb ... 486s Unpacking libplymouth5:arm64 (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 486s Preparing to unpack .../13-plymouth-theme-ubuntu-text_24.004.60-2ubuntu3_arm64.deb ... 486s Unpacking plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 486s Preparing to unpack .../14-plymouth_24.004.60-2ubuntu3_arm64.deb ... 486s Unpacking plymouth (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 486s Preparing to unpack .../15-bpftrace_0.21.2-2ubuntu3_arm64.deb ... 486s Unpacking bpftrace (0.21.2-2ubuntu3) over (0.21.2-2ubuntu2) ... 486s Preparing to unpack .../16-curl_8.9.1-2ubuntu3_arm64.deb ... 486s Unpacking curl (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 486s Preparing to unpack .../17-libcurl4t64_8.9.1-2ubuntu3_arm64.deb ... 486s Unpacking libcurl4t64:arm64 (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 486s Preparing to unpack .../18-fwupd-signed_1.55+1.7-1_arm64.deb ... 486s Unpacking fwupd-signed (1.55+1.7-1) over (1.54+1.6-1build1) ... 486s Preparing to unpack .../19-libcurl3t64-gnutls_8.9.1-2ubuntu3_arm64.deb ... 486s Unpacking libcurl3t64-gnutls:arm64 (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 486s Selecting previously unselected package libsgutils2-1.48:arm64. 486s Preparing to unpack .../20-libsgutils2-1.48_1.48-0ubuntu1_arm64.deb ... 486s Unpacking libsgutils2-1.48:arm64 (1.48-0ubuntu1) ... 487s Preparing to unpack .../21-linux-base_4.10.1ubuntu1_all.deb ... 487s Unpacking linux-base (4.10.1ubuntu1) over (4.5ubuntu9) ... 487s Preparing to unpack .../22-lxd-installer_10_all.deb ... 487s Unpacking lxd-installer (10) over (9) ... 487s Preparing to unpack .../23-python3-blinker_1.9.0-1_all.deb ... 487s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 487s Preparing to unpack .../24-python3-rpds-py_0.21.0-2ubuntu1_arm64.deb ... 487s Unpacking python3-rpds-py (0.21.0-2ubuntu1) over (0.20.0-0ubuntu3) ... 487s Preparing to unpack .../25-python3-jsonschema-specifications_2023.12.1-2_all.deb ... 487s Unpacking python3-jsonschema-specifications (2023.12.1-2) over (2023.12.1-1ubuntu1) ... 487s Preparing to unpack .../26-sg3-utils_1.48-0ubuntu1_arm64.deb ... 487s Unpacking sg3-utils (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 487s Preparing to unpack .../27-sg3-utils-udev_1.48-0ubuntu1_all.deb ... 487s Unpacking sg3-utils-udev (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 487s Setting up distro-info (1.12) ... 487s Setting up linux-base (4.10.1ubuntu1) ... 487s Setting up libcurl4t64:arm64 (8.9.1-2ubuntu3) ... 487s Setting up bpftrace (0.21.2-2ubuntu3) ... 487s Setting up openssh-client (1:9.9p1-3ubuntu2) ... 487s Setting up python3-debconf (1.5.87ubuntu1) ... 487s Setting up libcurl3t64-gnutls:arm64 (8.9.1-2ubuntu3) ... 487s Setting up fwupd-signed (1.55+1.7-1) ... 487s Setting up libsgutils2-1.48:arm64 (1.48-0ubuntu1) ... 487s Setting up python3-yaml (6.0.2-1build1) ... 488s Setting up debconf-i18n (1.5.87ubuntu1) ... 488s Setting up xxd (2:9.1.0861-1ubuntu1) ... 488s Setting up libglib2.0-0t64:arm64 (2.82.2-3) ... 488s No schema files found: doing nothing. 488s Setting up libglib2.0-data (2.82.2-3) ... 488s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 488s Setting up gir1.2-glib-2.0:arm64 (2.82.2-3) ... 488s Setting up lxd-installer (10) ... 488s Setting up python3-rpds-py (0.21.0-2ubuntu1) ... 488s Setting up libplymouth5:arm64 (24.004.60-2ubuntu3) ... 488s Setting up libgirepository-1.0-1:arm64 (1.82.0-2) ... 488s Setting up curl (8.9.1-2ubuntu3) ... 488s Setting up python3-jsonschema-specifications (2023.12.1-2) ... 488s Setting up sg3-utils (1.48-0ubuntu1) ... 488s Setting up python3-blinker (1.9.0-1) ... 488s Setting up openssh-sftp-server (1:9.9p1-3ubuntu2) ... 488s Setting up python3-dbus (1.3.2-5build4) ... 489s Setting up openssh-server (1:9.9p1-3ubuntu2) ... 489s Installing new version of config file /etc/ssh/moduli ... 489s Replacing config file /etc/ssh/sshd_config with new version 490s Setting up plymouth (24.004.60-2ubuntu3) ... 490s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 490s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 505s flash-kernel: deferring update (trigger activated) 506s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 506s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 506s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 506s Setting up sg3-utils-udev (1.48-0ubuntu1) ... 506s update-initramfs: deferring update (trigger activated) 506s Setting up plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) ... 506s update-initramfs: deferring update (trigger activated) 506s Setting up gir1.2-girepository-2.0:arm64 (1.82.0-2) ... 506s Setting up python3-gi (3.50.0-3build1) ... 506s Processing triggers for install-info (7.1.1-1) ... 506s Processing triggers for initramfs-tools (0.142ubuntu35) ... 506s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 506s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 519s System running in EFI mode, skipping. 519s Processing triggers for libc-bin (2.40-1ubuntu3) ... 519s Processing triggers for ufw (0.36.2-8) ... 520s Processing triggers for man-db (2.13.0-1) ... 521s Processing triggers for debianutils (5.21) ... 521s Processing triggers for flash-kernel (3.107ubuntu13) ... 522s System running in EFI mode, skipping. 522s Reading package lists... 522s Building dependency tree... 522s Reading state information... 523s The following packages will be REMOVED: 523s libsgutils2-1.46-2* 523s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 523s After this operation, 314 kB disk space will be freed. 523s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80037 files and directories currently installed.) 523s Removing libsgutils2-1.46-2:arm64 (1.46-3ubuntu5) ... 523s Processing triggers for libc-bin (2.40-1ubuntu3) ... 524s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 524s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 524s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 524s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 525s Reading package lists... 525s Reading package lists... 525s Building dependency tree... 525s Reading state information... 526s Calculating upgrade... 526s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 526s Reading package lists... 526s Building dependency tree... 526s Reading state information... 527s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 527s autopkgtest [20:40:51]: rebooting testbed after setup commands that affected boot 531s autopkgtest-virt-ssh: WARNING: ssh connection failed. Retrying in 3 seconds... 553s autopkgtest [20:41:17]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 14:19:41 UTC 2024 556s autopkgtest [20:41:20]: @@@@@@@@@@@@@@@@@@@@ apt-source python-aiomodernforms 558s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (dsc) [2407 B] 558s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (tar) [34.5 kB] 558s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (diff) [2120 B] 559s gpgv: Signature made Wed Aug 14 20:49:59 2024 UTC 559s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 559s gpgv: Can't check signature: No public key 559s dpkg-source: warning: cannot verify inline signature for ./python-aiomodernforms_0.1.8-2.dsc: no acceptable signature found 559s autopkgtest [20:41:23]: testing package python-aiomodernforms version 0.1.8-2 559s autopkgtest [20:41:23]: build not needed 560s autopkgtest [20:41:24]: test pybuild-autopkgtest: preparing testbed 569s Reading package lists... 570s Building dependency tree... 570s Reading state information... 570s Starting pkgProblemResolver with broken count: 1 570s Starting 2 pkgProblemResolver with broken count: 1 570s Investigating (0) python3-aiohttp:arm64 < none -> 3.10.10-2build1 @un puN Ib > 570s Broken python3-aiohttp:arm64 Depends on python3-yarl:arm64 < none -> 1.9.4-1 @un puN > (>= 1.12.0) 570s Considering python3-yarl:arm64 3 as a solution to python3-aiohttp:arm64 2 570s Re-Instated python3-yarl:arm64 570s Broken python3-aiohttp:arm64 Depends on python3-async-timeout:arm64 < none | 4.0.3-1 @un uH > (>= 4.0.1) 570s Considering python3-async-timeout:arm64 0 as a solution to python3-aiohttp:arm64 2 570s Re-Instated python3-async-timeout:arm64 570s Broken python3-aiohttp:arm64 Depends on python3-aiohappyeyeballs:arm64 < none | 2.4.3-1 @un uH > 570s Considering python3-aiohappyeyeballs:arm64 1 as a solution to python3-aiohttp:arm64 2 570s Re-Instated python3-aiohappyeyeballs:arm64 570s Broken python3-aiohttp:arm64 Depends on python3-aiosignal:arm64 < none | 1.3.1-1 @un uH > 570s Considering python3-aiosignal:arm64 1 as a solution to python3-aiohttp:arm64 2 570s Re-Instated python3-frozenlist:arm64 570s Re-Instated python3-aiosignal:arm64 570s Done 570s Some packages could not be installed. This may mean that you have 570s requested an impossible situation or if you are using the unstable 570s distribution that some required packages have not yet been created 570s or been moved out of Incoming. 570s The following information may help to resolve the situation: 570s 570s The following packages have unmet dependencies: 570s python3-aiohttp : Depends: python3-yarl (>= 1.12.0) but 1.9.4-1 is to be installed 570s E: Unable to correct problems, you have held broken packages. 570s autopkgtest: WARNING: Test dependencies are unsatisfiable with using apt pinning. Retrying with using all packages from plucky-proposed 571s Reading package lists... 571s Building dependency tree... 571s Reading state information... 572s Starting pkgProblemResolver with broken count: 0 572s Starting 2 pkgProblemResolver with broken count: 0 572s Done 572s The following additional packages will be installed: 572s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 572s cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper debugedit 572s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 572s g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14 572s gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 572s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 572s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libhwasan0 libisl23 572s libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 572s libjs-jquery-metadata libjs-jquery-tablesorter 572s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3-stdlib 572s libpython3.13-minimal libpython3.13-stdlib libstdc++-14-dev libtool libtsan2 572s libubsan1 m4 openstack-pkg-tools po-debconf pybuild-plugin-pyproject python3 572s python3-aiohappyeyeballs python3-aiohttp python3-aiomodernforms 572s python3-aiosignal python3-all python3-aresponses python3-async-generator 572s python3-async-timeout python3-backoff python3-build python3-coverage 572s python3-frozenlist python3-iniconfig python3-installer python3-minimal 572s python3-multidict python3-mypy python3-mypy-extensions python3-packaging 572s python3-pip python3-pluggy python3-psutil python3-pyproject-hooks 572s python3-pytest python3-pytest-asyncio python3-pytest-cov python3-toml 572s python3-wheel python3-yarl python3.13 python3.13-minimal 572s Suggested packages: 572s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 572s cpp-14-doc dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb 572s gcc-doc gdb-aarch64-linux-gnu gettext-doc libasprintf-dev libgettextpo-dev 572s libstdc++-14-doc libtool-doc gfortran | fortran95-compiler gcj-jdk m4-doc 572s libmail-box-perl python3-venv python-build-doc python-coverage-doc 572s python-installer-doc python3.13-venv python3.13-doc binfmt-support 572s Recommended packages: 572s libarchive-cpio-perl javascript-common libltdl-dev autopkgtest madison-lite 572s pristine-tar libmail-sendmail-perl python3-aiodns python3-lxml 572s python3-orjson python3-dev libjs-sphinxdoc 572s The following NEW packages will be installed: 572s autoconf automake autopkgtest-satdep autopoint autotools-dev build-essential 572s cpp cpp-14 cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper 572s debugedit dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 572s g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14 572s gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 572s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 572s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libhwasan0 libisl23 572s libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 572s libjs-jquery-metadata libjs-jquery-tablesorter 572s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3.13-minimal 572s libpython3.13-stdlib libstdc++-14-dev libtool libtsan2 libubsan1 m4 572s openstack-pkg-tools po-debconf pybuild-plugin-pyproject 572s python3-aiohappyeyeballs python3-aiohttp python3-aiomodernforms 572s python3-aiosignal python3-all python3-aresponses python3-async-generator 572s python3-async-timeout python3-backoff python3-build python3-coverage 572s python3-frozenlist python3-iniconfig python3-installer python3-multidict 572s python3-mypy python3-mypy-extensions python3-packaging python3-pip 572s python3-pluggy python3-psutil python3-pyproject-hooks python3-pytest 572s python3-pytest-asyncio python3-pytest-cov python3-toml python3-wheel 572s python3-yarl python3.13 python3.13-minimal 572s The following packages will be upgraded: 572s libpython3-stdlib python3 python3-minimal 572s 3 upgraded, 84 newly installed, 0 to remove and 49 not upgraded. 572s Need to get 88.6 MB/88.6 MB of archives. 572s After this operation, 360 MB of additional disk space will be used. 572s Get:1 /tmp/autopkgtest.VTjnjw/1-autopkgtest-satdep.deb autopkgtest-satdep arm64 0 [856 B] 573s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 python3-minimal arm64 3.12.7-1 [27.4 kB] 573s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 python3 arm64 3.12.7-1 [24.0 kB] 573s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 libpython3-stdlib arm64 3.12.7-1 [10.0 kB] 573s Get:5 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3.13-minimal arm64 3.13.0-2 [877 kB] 573s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.13-minimal arm64 3.13.0-2 [2100 kB] 573s Get:7 http://ftpmaster.internal/ubuntu plucky/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 573s Get:8 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 573s Get:9 http://ftpmaster.internal/ubuntu plucky/main arm64 m4 arm64 1.4.19-4build1 [240 kB] 573s Get:10 http://ftpmaster.internal/ubuntu plucky/main arm64 autoconf all 2.72-3 [382 kB] 574s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 autotools-dev all 20220109.1 [44.9 kB] 574s Get:12 http://ftpmaster.internal/ubuntu plucky/main arm64 automake all 1:1.16.5-1.3ubuntu1 [558 kB] 574s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 autopoint all 0.22.5-2 [616 kB] 574s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 libisl23 arm64 0.27-1 [676 kB] 574s Get:15 http://ftpmaster.internal/ubuntu plucky/main arm64 libmpc3 arm64 1.3.1-1build2 [56.8 kB] 574s Get:16 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-14-aarch64-linux-gnu arm64 14.2.0-8ubuntu1 [10.6 MB] 575s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-14 arm64 14.2.0-8ubuntu1 [1028 B] 575s Get:18 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-aarch64-linux-gnu arm64 4:14.1.0-2ubuntu1 [5452 B] 575s Get:19 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp arm64 4:14.1.0-2ubuntu1 [22.5 kB] 575s Get:20 http://ftpmaster.internal/ubuntu plucky/main arm64 libcc1-0 arm64 14.2.0-8ubuntu1 [49.7 kB] 575s Get:21 http://ftpmaster.internal/ubuntu plucky/main arm64 libgomp1 arm64 14.2.0-8ubuntu1 [145 kB] 575s Get:22 http://ftpmaster.internal/ubuntu plucky/main arm64 libitm1 arm64 14.2.0-8ubuntu1 [27.8 kB] 575s Get:23 http://ftpmaster.internal/ubuntu plucky/main arm64 libasan8 arm64 14.2.0-8ubuntu1 [2893 kB] 575s Get:24 http://ftpmaster.internal/ubuntu plucky/main arm64 liblsan0 arm64 14.2.0-8ubuntu1 [1283 kB] 575s Get:25 http://ftpmaster.internal/ubuntu plucky/main arm64 libtsan2 arm64 14.2.0-8ubuntu1 [2686 kB] 575s Get:26 http://ftpmaster.internal/ubuntu plucky/main arm64 libubsan1 arm64 14.2.0-8ubuntu1 [1151 kB] 575s Get:27 http://ftpmaster.internal/ubuntu plucky/main arm64 libhwasan0 arm64 14.2.0-8ubuntu1 [1598 kB] 575s Get:28 http://ftpmaster.internal/ubuntu plucky/main arm64 libgcc-14-dev arm64 14.2.0-8ubuntu1 [2594 kB] 575s Get:29 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-14-aarch64-linux-gnu arm64 14.2.0-8ubuntu1 [20.9 MB] 576s Get:30 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-14 arm64 14.2.0-8ubuntu1 [518 kB] 576s Get:31 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-aarch64-linux-gnu arm64 4:14.1.0-2ubuntu1 [1200 B] 576s Get:32 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc arm64 4:14.1.0-2ubuntu1 [4994 B] 576s Get:33 http://ftpmaster.internal/ubuntu plucky/main arm64 libstdc++-14-dev arm64 14.2.0-8ubuntu1 [2476 kB] 576s Get:34 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-14-aarch64-linux-gnu arm64 14.2.0-8ubuntu1 [12.1 MB] 576s Get:35 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-14 arm64 14.2.0-8ubuntu1 [19.9 kB] 576s Get:36 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-aarch64-linux-gnu arm64 4:14.1.0-2ubuntu1 [958 B] 576s Get:37 http://ftpmaster.internal/ubuntu plucky/main arm64 g++ arm64 4:14.1.0-2ubuntu1 [1080 B] 576s Get:38 http://ftpmaster.internal/ubuntu plucky/main arm64 build-essential arm64 12.10ubuntu1 [4932 B] 576s Get:39 http://ftpmaster.internal/ubuntu plucky/main arm64 libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 576s Get:40 http://ftpmaster.internal/ubuntu plucky/main arm64 libtool all 2.4.7-8 [166 kB] 576s Get:41 http://ftpmaster.internal/ubuntu plucky/main arm64 dh-autoreconf all 20 [16.1 kB] 576s Get:42 http://ftpmaster.internal/ubuntu plucky/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 576s Get:43 http://ftpmaster.internal/ubuntu plucky/main arm64 libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 577s Get:44 http://ftpmaster.internal/ubuntu plucky/main arm64 dh-strip-nondeterminism all 1.14.0-1 [5058 B] 577s Get:45 http://ftpmaster.internal/ubuntu plucky/main arm64 debugedit arm64 1:5.1-1 [45.9 kB] 577s Get:46 http://ftpmaster.internal/ubuntu plucky/main arm64 dwz arm64 0.15-1build6 [113 kB] 577s Get:47 http://ftpmaster.internal/ubuntu plucky/main arm64 gettext arm64 0.22.5-2 [930 kB] 577s Get:48 http://ftpmaster.internal/ubuntu plucky/main arm64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 577s Get:49 http://ftpmaster.internal/ubuntu plucky/main arm64 po-debconf all 1.0.21+nmu1 [233 kB] 577s Get:50 http://ftpmaster.internal/ubuntu plucky/main arm64 debhelper all 13.20ubuntu1 [893 kB] 577s Get:51 http://ftpmaster.internal/ubuntu plucky/universe arm64 dh-python all 6.20241024 [112 kB] 577s Get:52 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-metadata all 12-4 [6582 B] 577s Get:53 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 577s Get:54 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 577s Get:55 http://ftpmaster.internal/ubuntu plucky/main arm64 libpython3.13-stdlib arm64 3.13.0-2 [2073 kB] 577s Get:56 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-packaging all 24.2-1 [51.5 kB] 577s Get:57 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 577s Get:58 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-toml all 0.10.2-1 [16.5 kB] 577s Get:59 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-wheel all 0.45.0-1 [57.7 kB] 577s Get:60 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-build all 1.2.2-1 [31.0 kB] 577s Get:61 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 577s Get:62 http://ftpmaster.internal/ubuntu plucky/universe arm64 pybuild-plugin-pyproject all 6.20241024 [1728 B] 577s Get:63 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-aiohappyeyeballs all 2.4.3-1 [10.5 kB] 577s Get:64 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-multidict arm64 6.1.0-1build1 [38.3 kB] 577s Get:65 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 python3-yarl arm64 1.13.1-1build1 [110 kB] 577s Get:66 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 python3-async-timeout all 5.0.1-1 [6830 B] 577s Get:67 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-frozenlist arm64 1.5.0-1build1 [59.0 kB] 577s Get:68 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-aiosignal all 1.3.1-1 [5172 B] 577s Get:69 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 python3-aiohttp arm64 3.10.10-2build1 [334 kB] 577s Get:70 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-backoff all 2.2.1-2 [17.9 kB] 577s Get:71 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-aiomodernforms all 0.1.8-2 [8106 B] 577s Get:72 http://ftpmaster.internal/ubuntu plucky/main arm64 python3.13 arm64 3.13.0-2 [719 kB] 577s Get:73 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 python3-all arm64 3.12.7-1 [890 B] 577s Get:74 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-async-generator all 1.10-4 [17.5 kB] 577s Get:75 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-iniconfig all 1.1.1-2 [6024 B] 577s Get:76 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pluggy all 1.5.0-1 [21.0 kB] 577s Get:77 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest all 8.3.3-1 [251 kB] 577s Get:78 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 python3-pytest-asyncio all 0.24.0a1-1 [15.8 kB] 577s Get:79 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-aresponses all 3.0.0-2 [13.8 kB] 577s Get:80 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-coverage arm64 7.4.4+dfsg1-0ubuntu3 [150 kB] 577s Get:81 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-mypy-extensions all 1.0.0-1 [6148 B] 577s Get:82 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-psutil arm64 5.9.8-2build3 [196 kB] 577s Get:83 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 python3-mypy arm64 1.13.0-2 [14.8 MB] 578s Get:84 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pip all 24.3.1+dfsg-1 [1404 kB] 578s Get:85 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 578s Get:86 http://ftpmaster.internal/ubuntu plucky/universe arm64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 578s Get:87 http://ftpmaster.internal/ubuntu plucky/universe arm64 openstack-pkg-tools all 123ubuntu2 [94.5 kB] 578s Fetched 88.6 MB in 5s (16.8 MB/s) 579s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80032 files and directories currently installed.) 579s Preparing to unpack .../python3-minimal_3.12.7-1_arm64.deb ... 579s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 579s Setting up python3-minimal (3.12.7-1) ... 579s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80032 files and directories currently installed.) 579s Preparing to unpack .../00-python3_3.12.7-1_arm64.deb ... 579s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 579s Preparing to unpack .../01-libpython3-stdlib_3.12.7-1_arm64.deb ... 579s Unpacking libpython3-stdlib:arm64 (3.12.7-1) over (3.12.6-0ubuntu1) ... 579s Selecting previously unselected package libpython3.13-minimal:arm64. 579s Preparing to unpack .../02-libpython3.13-minimal_3.13.0-2_arm64.deb ... 579s Unpacking libpython3.13-minimal:arm64 (3.13.0-2) ... 579s Selecting previously unselected package python3.13-minimal. 579s Preparing to unpack .../03-python3.13-minimal_3.13.0-2_arm64.deb ... 579s Unpacking python3.13-minimal (3.13.0-2) ... 579s Selecting previously unselected package libjs-jquery. 579s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 579s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 579s Selecting previously unselected package libjs-jquery-hotkeys. 579s Preparing to unpack .../05-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 579s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 579s Selecting previously unselected package m4. 579s Preparing to unpack .../06-m4_1.4.19-4build1_arm64.deb ... 579s Unpacking m4 (1.4.19-4build1) ... 579s Selecting previously unselected package autoconf. 579s Preparing to unpack .../07-autoconf_2.72-3_all.deb ... 579s Unpacking autoconf (2.72-3) ... 579s Selecting previously unselected package autotools-dev. 579s Preparing to unpack .../08-autotools-dev_20220109.1_all.deb ... 579s Unpacking autotools-dev (20220109.1) ... 579s Selecting previously unselected package automake. 579s Preparing to unpack .../09-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 579s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 579s Selecting previously unselected package autopoint. 579s Preparing to unpack .../10-autopoint_0.22.5-2_all.deb ... 579s Unpacking autopoint (0.22.5-2) ... 579s Selecting previously unselected package libisl23:arm64. 579s Preparing to unpack .../11-libisl23_0.27-1_arm64.deb ... 579s Unpacking libisl23:arm64 (0.27-1) ... 580s Selecting previously unselected package libmpc3:arm64. 580s Preparing to unpack .../12-libmpc3_1.3.1-1build2_arm64.deb ... 580s Unpacking libmpc3:arm64 (1.3.1-1build2) ... 580s Selecting previously unselected package cpp-14-aarch64-linux-gnu. 580s Preparing to unpack .../13-cpp-14-aarch64-linux-gnu_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking cpp-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package cpp-14. 580s Preparing to unpack .../14-cpp-14_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package cpp-aarch64-linux-gnu. 580s Preparing to unpack .../15-cpp-aarch64-linux-gnu_4%3a14.1.0-2ubuntu1_arm64.deb ... 580s Unpacking cpp-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 580s Selecting previously unselected package cpp. 580s Preparing to unpack .../16-cpp_4%3a14.1.0-2ubuntu1_arm64.deb ... 580s Unpacking cpp (4:14.1.0-2ubuntu1) ... 580s Selecting previously unselected package libcc1-0:arm64. 580s Preparing to unpack .../17-libcc1-0_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libcc1-0:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libgomp1:arm64. 580s Preparing to unpack .../18-libgomp1_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libgomp1:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libitm1:arm64. 580s Preparing to unpack .../19-libitm1_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libitm1:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libasan8:arm64. 580s Preparing to unpack .../20-libasan8_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libasan8:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package liblsan0:arm64. 580s Preparing to unpack .../21-liblsan0_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking liblsan0:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libtsan2:arm64. 580s Preparing to unpack .../22-libtsan2_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libtsan2:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libubsan1:arm64. 580s Preparing to unpack .../23-libubsan1_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libubsan1:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libhwasan0:arm64. 580s Preparing to unpack .../24-libhwasan0_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libhwasan0:arm64 (14.2.0-8ubuntu1) ... 580s Selecting previously unselected package libgcc-14-dev:arm64. 580s Preparing to unpack .../25-libgcc-14-dev_14.2.0-8ubuntu1_arm64.deb ... 580s Unpacking libgcc-14-dev:arm64 (14.2.0-8ubuntu1) ... 581s Selecting previously unselected package gcc-14-aarch64-linux-gnu. 581s Preparing to unpack .../26-gcc-14-aarch64-linux-gnu_14.2.0-8ubuntu1_arm64.deb ... 581s Unpacking gcc-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 581s Selecting previously unselected package gcc-14. 581s Preparing to unpack .../27-gcc-14_14.2.0-8ubuntu1_arm64.deb ... 581s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 581s Selecting previously unselected package gcc-aarch64-linux-gnu. 581s Preparing to unpack .../28-gcc-aarch64-linux-gnu_4%3a14.1.0-2ubuntu1_arm64.deb ... 581s Unpacking gcc-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 581s Selecting previously unselected package gcc. 581s Preparing to unpack .../29-gcc_4%3a14.1.0-2ubuntu1_arm64.deb ... 581s Unpacking gcc (4:14.1.0-2ubuntu1) ... 581s Selecting previously unselected package libstdc++-14-dev:arm64. 581s Preparing to unpack .../30-libstdc++-14-dev_14.2.0-8ubuntu1_arm64.deb ... 581s Unpacking libstdc++-14-dev:arm64 (14.2.0-8ubuntu1) ... 581s Selecting previously unselected package g++-14-aarch64-linux-gnu. 581s Preparing to unpack .../31-g++-14-aarch64-linux-gnu_14.2.0-8ubuntu1_arm64.deb ... 581s Unpacking g++-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 582s Selecting previously unselected package g++-14. 582s Preparing to unpack .../32-g++-14_14.2.0-8ubuntu1_arm64.deb ... 582s Unpacking g++-14 (14.2.0-8ubuntu1) ... 582s Selecting previously unselected package g++-aarch64-linux-gnu. 582s Preparing to unpack .../33-g++-aarch64-linux-gnu_4%3a14.1.0-2ubuntu1_arm64.deb ... 582s Unpacking g++-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 582s Selecting previously unselected package g++. 582s Preparing to unpack .../34-g++_4%3a14.1.0-2ubuntu1_arm64.deb ... 582s Unpacking g++ (4:14.1.0-2ubuntu1) ... 582s Selecting previously unselected package build-essential. 582s Preparing to unpack .../35-build-essential_12.10ubuntu1_arm64.deb ... 582s Unpacking build-essential (12.10ubuntu1) ... 582s Selecting previously unselected package libdebhelper-perl. 582s Preparing to unpack .../36-libdebhelper-perl_13.20ubuntu1_all.deb ... 582s Unpacking libdebhelper-perl (13.20ubuntu1) ... 582s Selecting previously unselected package libtool. 582s Preparing to unpack .../37-libtool_2.4.7-8_all.deb ... 582s Unpacking libtool (2.4.7-8) ... 582s Selecting previously unselected package dh-autoreconf. 582s Preparing to unpack .../38-dh-autoreconf_20_all.deb ... 582s Unpacking dh-autoreconf (20) ... 582s Selecting previously unselected package libarchive-zip-perl. 582s Preparing to unpack .../39-libarchive-zip-perl_1.68-1_all.deb ... 582s Unpacking libarchive-zip-perl (1.68-1) ... 582s Selecting previously unselected package libfile-stripnondeterminism-perl. 582s Preparing to unpack .../40-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 582s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 582s Selecting previously unselected package dh-strip-nondeterminism. 582s Preparing to unpack .../41-dh-strip-nondeterminism_1.14.0-1_all.deb ... 582s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 582s Selecting previously unselected package debugedit. 582s Preparing to unpack .../42-debugedit_1%3a5.1-1_arm64.deb ... 582s Unpacking debugedit (1:5.1-1) ... 582s Selecting previously unselected package dwz. 582s Preparing to unpack .../43-dwz_0.15-1build6_arm64.deb ... 582s Unpacking dwz (0.15-1build6) ... 582s Selecting previously unselected package gettext. 582s Preparing to unpack .../44-gettext_0.22.5-2_arm64.deb ... 582s Unpacking gettext (0.22.5-2) ... 582s Selecting previously unselected package intltool-debian. 582s Preparing to unpack .../45-intltool-debian_0.35.0+20060710.6_all.deb ... 582s Unpacking intltool-debian (0.35.0+20060710.6) ... 582s Selecting previously unselected package po-debconf. 582s Preparing to unpack .../46-po-debconf_1.0.21+nmu1_all.deb ... 582s Unpacking po-debconf (1.0.21+nmu1) ... 582s Selecting previously unselected package debhelper. 582s Preparing to unpack .../47-debhelper_13.20ubuntu1_all.deb ... 582s Unpacking debhelper (13.20ubuntu1) ... 582s Selecting previously unselected package dh-python. 582s Preparing to unpack .../48-dh-python_6.20241024_all.deb ... 582s Unpacking dh-python (6.20241024) ... 582s Selecting previously unselected package libjs-jquery-metadata. 582s Preparing to unpack .../49-libjs-jquery-metadata_12-4_all.deb ... 582s Unpacking libjs-jquery-metadata (12-4) ... 582s Selecting previously unselected package libjs-jquery-tablesorter. 582s Preparing to unpack .../50-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 582s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 582s Selecting previously unselected package libjs-jquery-throttle-debounce. 582s Preparing to unpack .../51-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 582s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 582s Selecting previously unselected package libpython3.13-stdlib:arm64. 582s Preparing to unpack .../52-libpython3.13-stdlib_3.13.0-2_arm64.deb ... 582s Unpacking libpython3.13-stdlib:arm64 (3.13.0-2) ... 583s Selecting previously unselected package python3-packaging. 583s Preparing to unpack .../53-python3-packaging_24.2-1_all.deb ... 583s Unpacking python3-packaging (24.2-1) ... 583s Selecting previously unselected package python3-pyproject-hooks. 583s Preparing to unpack .../54-python3-pyproject-hooks_1.2.0-1_all.deb ... 583s Unpacking python3-pyproject-hooks (1.2.0-1) ... 583s Selecting previously unselected package python3-toml. 583s Preparing to unpack .../55-python3-toml_0.10.2-1_all.deb ... 583s Unpacking python3-toml (0.10.2-1) ... 583s Selecting previously unselected package python3-wheel. 583s Preparing to unpack .../56-python3-wheel_0.45.0-1_all.deb ... 583s Unpacking python3-wheel (0.45.0-1) ... 583s Selecting previously unselected package python3-build. 583s Preparing to unpack .../57-python3-build_1.2.2-1_all.deb ... 583s Unpacking python3-build (1.2.2-1) ... 583s Selecting previously unselected package python3-installer. 583s Preparing to unpack .../58-python3-installer_0.7.0+dfsg1-3_all.deb ... 583s Unpacking python3-installer (0.7.0+dfsg1-3) ... 583s Selecting previously unselected package pybuild-plugin-pyproject. 583s Preparing to unpack .../59-pybuild-plugin-pyproject_6.20241024_all.deb ... 583s Unpacking pybuild-plugin-pyproject (6.20241024) ... 583s Selecting previously unselected package python3-aiohappyeyeballs. 583s Preparing to unpack .../60-python3-aiohappyeyeballs_2.4.3-1_all.deb ... 583s Unpacking python3-aiohappyeyeballs (2.4.3-1) ... 583s Selecting previously unselected package python3-multidict. 583s Preparing to unpack .../61-python3-multidict_6.1.0-1build1_arm64.deb ... 583s Unpacking python3-multidict (6.1.0-1build1) ... 583s Selecting previously unselected package python3-yarl. 583s Preparing to unpack .../62-python3-yarl_1.13.1-1build1_arm64.deb ... 583s Unpacking python3-yarl (1.13.1-1build1) ... 583s Selecting previously unselected package python3-async-timeout. 583s Preparing to unpack .../63-python3-async-timeout_5.0.1-1_all.deb ... 583s Unpacking python3-async-timeout (5.0.1-1) ... 583s Selecting previously unselected package python3-frozenlist. 583s Preparing to unpack .../64-python3-frozenlist_1.5.0-1build1_arm64.deb ... 583s Unpacking python3-frozenlist (1.5.0-1build1) ... 583s Selecting previously unselected package python3-aiosignal. 583s Preparing to unpack .../65-python3-aiosignal_1.3.1-1_all.deb ... 583s Unpacking python3-aiosignal (1.3.1-1) ... 583s Selecting previously unselected package python3-aiohttp. 583s Preparing to unpack .../66-python3-aiohttp_3.10.10-2build1_arm64.deb ... 583s Unpacking python3-aiohttp (3.10.10-2build1) ... 583s Selecting previously unselected package python3-backoff. 583s Preparing to unpack .../67-python3-backoff_2.2.1-2_all.deb ... 583s Unpacking python3-backoff (2.2.1-2) ... 583s Selecting previously unselected package python3-aiomodernforms. 583s Preparing to unpack .../68-python3-aiomodernforms_0.1.8-2_all.deb ... 583s Unpacking python3-aiomodernforms (0.1.8-2) ... 583s Selecting previously unselected package python3.13. 583s Preparing to unpack .../69-python3.13_3.13.0-2_arm64.deb ... 583s Unpacking python3.13 (3.13.0-2) ... 583s Selecting previously unselected package python3-all. 583s Preparing to unpack .../70-python3-all_3.12.7-1_arm64.deb ... 583s Unpacking python3-all (3.12.7-1) ... 583s Selecting previously unselected package python3-async-generator. 583s Preparing to unpack .../71-python3-async-generator_1.10-4_all.deb ... 583s Unpacking python3-async-generator (1.10-4) ... 584s Selecting previously unselected package python3-iniconfig. 584s Preparing to unpack .../72-python3-iniconfig_1.1.1-2_all.deb ... 584s Unpacking python3-iniconfig (1.1.1-2) ... 584s Selecting previously unselected package python3-pluggy. 584s Preparing to unpack .../73-python3-pluggy_1.5.0-1_all.deb ... 584s Unpacking python3-pluggy (1.5.0-1) ... 584s Selecting previously unselected package python3-pytest. 584s Preparing to unpack .../74-python3-pytest_8.3.3-1_all.deb ... 584s Unpacking python3-pytest (8.3.3-1) ... 584s Selecting previously unselected package python3-pytest-asyncio. 584s Preparing to unpack .../75-python3-pytest-asyncio_0.24.0a1-1_all.deb ... 584s Unpacking python3-pytest-asyncio (0.24.0a1-1) ... 584s Selecting previously unselected package python3-aresponses. 584s Preparing to unpack .../76-python3-aresponses_3.0.0-2_all.deb ... 584s Unpacking python3-aresponses (3.0.0-2) ... 584s Selecting previously unselected package python3-coverage. 584s Preparing to unpack .../77-python3-coverage_7.4.4+dfsg1-0ubuntu3_arm64.deb ... 584s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 584s Selecting previously unselected package python3-mypy-extensions. 584s Preparing to unpack .../78-python3-mypy-extensions_1.0.0-1_all.deb ... 584s Unpacking python3-mypy-extensions (1.0.0-1) ... 584s Selecting previously unselected package python3-psutil. 584s Preparing to unpack .../79-python3-psutil_5.9.8-2build3_arm64.deb ... 584s Unpacking python3-psutil (5.9.8-2build3) ... 584s Selecting previously unselected package python3-mypy. 584s Preparing to unpack .../80-python3-mypy_1.13.0-2_arm64.deb ... 584s Unpacking python3-mypy (1.13.0-2) ... 584s Selecting previously unselected package python3-pip. 584s Preparing to unpack .../81-python3-pip_24.3.1+dfsg-1_all.deb ... 584s Unpacking python3-pip (24.3.1+dfsg-1) ... 585s Selecting previously unselected package libjs-jquery-isonscreen. 585s Preparing to unpack .../82-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 585s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 585s Selecting previously unselected package python3-pytest-cov. 585s Preparing to unpack .../83-python3-pytest-cov_5.0.0-1_all.deb ... 585s Unpacking python3-pytest-cov (5.0.0-1) ... 585s Selecting previously unselected package openstack-pkg-tools. 585s Preparing to unpack .../84-openstack-pkg-tools_123ubuntu2_all.deb ... 585s Unpacking openstack-pkg-tools (123ubuntu2) ... 585s Selecting previously unselected package autopkgtest-satdep. 585s Preparing to unpack .../85-1-autopkgtest-satdep.deb ... 585s Unpacking autopkgtest-satdep (0) ... 585s Setting up libarchive-zip-perl (1.68-1) ... 585s Setting up libdebhelper-perl (13.20ubuntu1) ... 585s Setting up m4 (1.4.19-4build1) ... 585s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 585s Setting up libgomp1:arm64 (14.2.0-8ubuntu1) ... 585s Setting up libpython3.13-minimal:arm64 (3.13.0-2) ... 585s Setting up autotools-dev (20220109.1) ... 585s Setting up libmpc3:arm64 (1.3.1-1build2) ... 585s Setting up autopoint (0.22.5-2) ... 585s Setting up autoconf (2.72-3) ... 585s Setting up libubsan1:arm64 (14.2.0-8ubuntu1) ... 585s Setting up dwz (0.15-1build6) ... 585s Setting up libhwasan0:arm64 (14.2.0-8ubuntu1) ... 585s Setting up libasan8:arm64 (14.2.0-8ubuntu1) ... 585s Setting up debugedit (1:5.1-1) ... 585s Setting up python3.13-minimal (3.13.0-2) ... 586s Setting up libtsan2:arm64 (14.2.0-8ubuntu1) ... 586s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 586s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 586s Setting up libisl23:arm64 (0.27-1) ... 586s Setting up libpython3.13-stdlib:arm64 (3.13.0-2) ... 586s Setting up libcc1-0:arm64 (14.2.0-8ubuntu1) ... 586s Setting up liblsan0:arm64 (14.2.0-8ubuntu1) ... 586s Setting up libitm1:arm64 (14.2.0-8ubuntu1) ... 586s Setting up libpython3-stdlib:arm64 (3.12.7-1) ... 586s Setting up automake (1:1.16.5-1.3ubuntu1) ... 586s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 586s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 586s Setting up gettext (0.22.5-2) ... 586s Setting up python3.13 (3.13.0-2) ... 587s Setting up python3 (3.12.7-1) ... 587s Setting up python3-wheel (0.45.0-1) ... 588s Setting up python3-psutil (5.9.8-2build3) ... 588s Setting up python3-multidict (6.1.0-1build1) ... 588s Setting up python3-frozenlist (1.5.0-1build1) ... 589s Setting up python3-aiosignal (1.3.1-1) ... 589s Setting up intltool-debian (0.35.0+20060710.6) ... 589s Setting up python3-async-timeout (5.0.1-1) ... 589s Setting up python3-packaging (24.2-1) ... 589s Setting up python3-pyproject-hooks (1.2.0-1) ... 590s Setting up libjs-jquery-metadata (12-4) ... 590s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 590s Setting up python3-aiohappyeyeballs (2.4.3-1) ... 590s Setting up python3-pip (24.3.1+dfsg-1) ... 592s Setting up python3-toml (0.10.2-1) ... 592s Setting up python3-installer (0.7.0+dfsg1-3) ... 592s Setting up python3-pluggy (1.5.0-1) ... 593s Setting up dh-strip-nondeterminism (1.14.0-1) ... 593s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 593s Setting up cpp-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 593s Setting up python3-backoff (2.2.1-2) ... 593s Setting up libgcc-14-dev:arm64 (14.2.0-8ubuntu1) ... 593s Setting up python3-build (1.2.2-1) ... 593s Setting up libstdc++-14-dev:arm64 (14.2.0-8ubuntu1) ... 593s Setting up python3-yarl (1.13.1-1build1) ... 593s Setting up dh-python (6.20241024) ... 593s Setting up python3-iniconfig (1.1.1-2) ... 594s Setting up python3-async-generator (1.10-4) ... 594s Setting up pybuild-plugin-pyproject (6.20241024) ... 594s Setting up python3-pytest (8.3.3-1) ... 595s Setting up python3-mypy-extensions (1.0.0-1) ... 595s Setting up po-debconf (1.0.21+nmu1) ... 595s Setting up python3-aiohttp (3.10.10-2build1) ... 595s Setting up python3-all (3.12.7-1) ... 595s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 596s Setting up python3-pytest-cov (5.0.0-1) ... 596s Setting up python3-aiomodernforms (0.1.8-2) ... 596s Setting up openstack-pkg-tools (123ubuntu2) ... 596s Setting up cpp-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 596s Setting up python3-mypy (1.13.0-2) ... 599s Setting up cpp-14 (14.2.0-8ubuntu1) ... 599s Setting up python3-pytest-asyncio (0.24.0a1-1) ... 599s Setting up cpp (4:14.1.0-2ubuntu1) ... 599s Setting up gcc-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 599s Setting up gcc-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 599s Setting up g++-14-aarch64-linux-gnu (14.2.0-8ubuntu1) ... 599s Setting up python3-aresponses (3.0.0-2) ... 599s Setting up gcc-14 (14.2.0-8ubuntu1) ... 599s Setting up g++-aarch64-linux-gnu (4:14.1.0-2ubuntu1) ... 599s Setting up g++-14 (14.2.0-8ubuntu1) ... 599s Setting up libtool (2.4.7-8) ... 599s Setting up gcc (4:14.1.0-2ubuntu1) ... 599s Setting up dh-autoreconf (20) ... 599s Setting up g++ (4:14.1.0-2ubuntu1) ... 599s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 599s Setting up build-essential (12.10ubuntu1) ... 599s Setting up debhelper (13.20ubuntu1) ... 599s Setting up autopkgtest-satdep (0) ... 599s Processing triggers for systemd (256.5-2ubuntu4) ... 599s Processing triggers for man-db (2.13.0-1) ... 601s Processing triggers for install-info (7.1.1-1) ... 601s Processing triggers for libc-bin (2.40-1ubuntu3) ... 605s (Reading database ... 86337 files and directories currently installed.) 605s Removing autopkgtest-satdep (0) ... 606s autopkgtest [20:42:10]: test pybuild-autopkgtest: pybuild-autopkgtest 606s autopkgtest [20:42:10]: test pybuild-autopkgtest: [----------------------- 606s make: pyversions: No such file or directory 606s pybuild-autopkgtest 606s py3versions: no X-Python3-Version in control file, using supported versions 607s I: pybuild base:311: cd /tmp/autopkgtest.VTjnjw/autopkgtest_tmp/build; python3.13 -m pytest -v 607s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 607s The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" 607s 607s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 607s ============================= test session starts ============================== 607s platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 607s cachedir: .pytest_cache 607s rootdir: /tmp/autopkgtest.VTjnjw/autopkgtest_tmp/build 607s configfile: pytest.ini 607s testpaths: tests 607s plugins: cov-5.0.0, asyncio-0.24.0a1, typeguard-4.4.1, aresponses-3.0.0 607s asyncio: mode=Mode.STRICT, default_loop_scope=None 608s collecting ... collected 19 items 608s 608s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 608s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 608s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 608s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 608s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 608s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 608s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 608s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 608s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 608s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 608s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 608s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 608s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 608s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 608s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 608s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 608s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 608s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 608s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 608s 608s =================================== FAILURES =================================== 608s ______________________________ test_basic_status _______________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_basic_status(aresponses): 608s """Test JSON response is handled correctly.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add( 608s "fan.local", 608s "/mf", 608s "POST", 608s response=basic_response, 608s repeat=2, 608s ) 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:79: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s _________________________________ test_command _________________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_command(aresponses): 608s """Test to make sure setting lights works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_LIGHT_POWER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:108: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s __________________________________ test_light __________________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_light(aresponses): 608s """Test to make sure setting lights works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_LIGHT_POWER in data 608s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 608s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 608s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 608s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 608s ] 608s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:143: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s __________________________ test_light_sleep_datetime ___________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_light_sleep_datetime(aresponses): 608s """Test to make sure setting light sleep works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s sleep_time = datetime.now() + timedelta(minutes=2) 608s > await device.light( 608s sleep=sleep_time, 608s ) 608s 608s tests/test_aiomodernforms.py:180: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 608s await self.request(commands=commands) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 608s await self.update() 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s _____________________________ test_light_sleep_int _____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_light_sleep_int(aresponses): 608s """Test to make sure setting light sleep works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s sleep_time = datetime.now() + timedelta(seconds=120) 608s > await device.light( 608s sleep=120, 608s ) 608s 608s tests/test_aiomodernforms.py:209: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 608s await self.request(commands=commands) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 608s await self.update() 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ____________________________ test_light_sleep_clear ____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_light_sleep_clear(aresponses): 608s """Test to make sure setting light sleep works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s # check to clear timer 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.light( 608s sleep=0, 608s ) 608s 608s tests/test_aiomodernforms.py:238: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 608s await self.request(commands=commands) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 608s await self.update() 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ___________________________________ test_fan ___________________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_fan(aresponses): 608s """Test to make sure setting fan works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_FAN_POWER in data 608s assert aiomodernforms.COMMAND_FAN_SPEED in data 608s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 608s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 608s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 608s modified_response[STATE_FAN_DIRECTION] = data[ 608s aiomodernforms.COMMAND_FAN_DIRECTION 608s ] 608s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:274: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ___________________________ test_fan_sleep_datetime ____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_fan_sleep_datetime(aresponses): 608s """Test to make sure setting light sleep works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s sleep_time = datetime.now() + timedelta(minutes=2) 608s > await device.fan( 608s sleep=sleep_time, 608s ) 608s 608s tests/test_aiomodernforms.py:311: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 608s await self.request(commands=commands) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 608s await self.update() 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ______________________________ test_fan_sleep_int ______________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_fan_sleep_int(aresponses): 608s """Test to make sure setting light sleep works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s sleep_time = datetime.now() + timedelta(seconds=120) 608s > await device.fan( 608s sleep=120, 608s ) 608s 608s tests/test_aiomodernforms.py:340: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 608s await self.request(commands=commands) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 608s await self.update() 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s _____________________________ test_fan_sleep_clear _____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_fan_sleep_clear(aresponses): 608s """Test to make sure setting light sleep works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 608s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s # check to clear timer 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.fan( 608s sleep=0, 608s ) 608s 608s tests/test_aiomodernforms.py:369: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 608s await self.request(commands=commands) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 608s await self.update() 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s __________________________________ test_away ___________________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_away(aresponses): 608s """Test to make sure setting away mode works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_AWAY_MODE in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:395: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ____________________________ test_adaptive_learning ____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_adaptive_learning(aresponses): 608s """Test to make sure setting adaptive learning mode works.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async def evaluate_request(request): 608s data = await request.json() 608s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 608s modified_response = basic_response.copy() 608s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 608s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 608s ] 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text=json.dumps(modified_response), 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:422: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s _____________________________ test_invalid_setting _____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_invalid_setting(aresponses): 608s """Test to make sure setting invalid settings are rejected.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:434: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ____________________________ test_connection_error _____________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_connection_error(aresponses): 608s """Test to make validate proper connection error handling.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:502: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s ______________________________ test_server_error _______________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_server_error(aresponses): 608s """Test to make validate proper server error handling.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add( 608s "fan.local", 608s "/mf", 608s "POST", 608s response=aresponses.Response(text="error", status=500), 608s ) 608s 608s with pytest.raises(aiomodernforms.ModernFormsError): 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:518: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s _________________________________ test_reboot __________________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_reboot(aresponses): 608s """Test how reboot is handled.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 608s 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:528: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s _____________________________ test_empty_response ______________________________ 608s 608s aresponses = 608s 608s @pytest.mark.asyncio 608s async def test_empty_response(aresponses): 608s """Test for an Empty Response.""" 608s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 608s 608s async def send_empty_state(request): 608s await request.json() 608s return aresponses.Response( 608s status=200, 608s content_type="application/json", 608s text="{}", 608s ) 608s 608s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 608s with pytest.raises(ModernFormsConnectionError): 608s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 608s > await device.update() 608s 608s tests/test_aiomodernforms.py:568: 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 608s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 608s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 608s ret = await target(*args, **kwargs) 608s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 608s 608s self = 608s commands = {'queryStaticShadowData': True} 608s 608s @backoff.on_exception( 608s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 608s ) 608s async def _request(self, commands: Optional[dict] = None) -> Any: 608s """Handle a request to a Modern Forms Fan device.""" 608s scheme = "https" if self._tls else "http" 608s url = URL.build( 608s scheme=scheme, 608s host=self._host, 608s port=self._port, 608s path=self._base_path, 608s ) 608s 608s auth = None 608s if self._username and self._password: 608s auth = aiohttp.BasicAuth(self._username, self._password) 608s 608s headers = { 608s "User-Agent": self._user_agent, 608s "Accept": "application/json", 608s } 608s 608s if self._session is None: 608s self._session = aiohttp.ClientSession() 608s self._close_session = True 608s 608s # If updating the state, always request for a state response 608s if commands is None: 608s commands = {COMMAND_QUERY_STATUS: True} 608s 608s try: 608s > with async_timeout.timeout(self._request_timeout): 608s E TypeError: 'Timeout' object does not support the context manager protocol 608s 608s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 608s =========================== short test summary info ============================ 608s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 608s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 608s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 608s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 608s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 608s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 608s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 608s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 608s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 608s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 608s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 608s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 608s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 608s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 608s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 608s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 608s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 608s ========================= 17 failed, 2 passed in 0.53s ========================= 608s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.VTjnjw/autopkgtest_tmp/build; python3.13 -m pytest -v 608s I: pybuild base:311: cd /tmp/autopkgtest.VTjnjw/autopkgtest_tmp/build; python3.12 -m pytest -v 609s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 609s The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" 609s 609s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 609s ============================= test session starts ============================== 609s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 609s cachedir: .pytest_cache 609s rootdir: /tmp/autopkgtest.VTjnjw/autopkgtest_tmp/build 609s configfile: pytest.ini 609s testpaths: tests 609s plugins: cov-5.0.0, asyncio-0.24.0a1, typeguard-4.4.1, aresponses-3.0.0 609s asyncio: mode=Mode.STRICT, default_loop_scope=None 609s collecting ... collected 19 items 609s 609s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 609s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 609s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 609s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 609s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 609s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 609s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 609s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 609s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 609s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 609s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 609s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 609s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 609s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 609s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 609s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 609s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 609s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 609s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 609s 609s =================================== FAILURES =================================== 609s ______________________________ test_basic_status _______________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_basic_status(aresponses): 609s """Test JSON response is handled correctly.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add( 609s "fan.local", 609s "/mf", 609s "POST", 609s response=basic_response, 609s repeat=2, 609s ) 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:79: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s _________________________________ test_command _________________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_command(aresponses): 609s """Test to make sure setting lights works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_LIGHT_POWER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:108: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s __________________________________ test_light __________________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_light(aresponses): 609s """Test to make sure setting lights works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_LIGHT_POWER in data 609s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 609s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 609s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 609s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 609s ] 609s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:143: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s __________________________ test_light_sleep_datetime ___________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_light_sleep_datetime(aresponses): 609s """Test to make sure setting light sleep works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s sleep_time = datetime.now() + timedelta(minutes=2) 609s > await device.light( 609s sleep=sleep_time, 609s ) 609s 609s tests/test_aiomodernforms.py:180: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 609s await self.request(commands=commands) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 609s await self.update() 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s _____________________________ test_light_sleep_int _____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_light_sleep_int(aresponses): 609s """Test to make sure setting light sleep works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s sleep_time = datetime.now() + timedelta(seconds=120) 609s > await device.light( 609s sleep=120, 609s ) 609s 609s tests/test_aiomodernforms.py:209: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 609s await self.request(commands=commands) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 609s await self.update() 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ____________________________ test_light_sleep_clear ____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_light_sleep_clear(aresponses): 609s """Test to make sure setting light sleep works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s # check to clear timer 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.light( 609s sleep=0, 609s ) 609s 609s tests/test_aiomodernforms.py:238: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 609s await self.request(commands=commands) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 609s await self.update() 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ___________________________________ test_fan ___________________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_fan(aresponses): 609s """Test to make sure setting fan works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_FAN_POWER in data 609s assert aiomodernforms.COMMAND_FAN_SPEED in data 609s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 609s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 609s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 609s modified_response[STATE_FAN_DIRECTION] = data[ 609s aiomodernforms.COMMAND_FAN_DIRECTION 609s ] 609s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:274: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ___________________________ test_fan_sleep_datetime ____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_fan_sleep_datetime(aresponses): 609s """Test to make sure setting light sleep works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s sleep_time = datetime.now() + timedelta(minutes=2) 609s > await device.fan( 609s sleep=sleep_time, 609s ) 609s 609s tests/test_aiomodernforms.py:311: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 609s await self.request(commands=commands) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 609s await self.update() 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ______________________________ test_fan_sleep_int ______________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_fan_sleep_int(aresponses): 609s """Test to make sure setting light sleep works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s sleep_time = datetime.now() + timedelta(seconds=120) 609s > await device.fan( 609s sleep=120, 609s ) 609s 609s tests/test_aiomodernforms.py:340: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 609s await self.request(commands=commands) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 609s await self.update() 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s _____________________________ test_fan_sleep_clear _____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_fan_sleep_clear(aresponses): 609s """Test to make sure setting light sleep works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 609s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s # check to clear timer 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.fan( 609s sleep=0, 609s ) 609s 609s tests/test_aiomodernforms.py:369: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 609s await self.request(commands=commands) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 609s await self.update() 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s __________________________________ test_away ___________________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_away(aresponses): 609s """Test to make sure setting away mode works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_AWAY_MODE in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:395: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ____________________________ test_adaptive_learning ____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_adaptive_learning(aresponses): 609s """Test to make sure setting adaptive learning mode works.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async def evaluate_request(request): 609s data = await request.json() 609s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 609s modified_response = basic_response.copy() 609s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 609s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 609s ] 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text=json.dumps(modified_response), 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:422: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s _____________________________ test_invalid_setting _____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_invalid_setting(aresponses): 609s """Test to make sure setting invalid settings are rejected.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:434: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ____________________________ test_connection_error _____________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_connection_error(aresponses): 609s """Test to make validate proper connection error handling.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:502: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s ______________________________ test_server_error _______________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_server_error(aresponses): 609s """Test to make validate proper server error handling.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add( 609s "fan.local", 609s "/mf", 609s "POST", 609s response=aresponses.Response(text="error", status=500), 609s ) 609s 609s with pytest.raises(aiomodernforms.ModernFormsError): 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:518: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s _________________________________ test_reboot __________________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_reboot(aresponses): 609s """Test how reboot is handled.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 609s 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:528: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s _____________________________ test_empty_response ______________________________ 609s 609s aresponses = 609s 609s @pytest.mark.asyncio 609s async def test_empty_response(aresponses): 609s """Test for an Empty Response.""" 609s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 609s 609s async def send_empty_state(request): 609s await request.json() 609s return aresponses.Response( 609s status=200, 609s content_type="application/json", 609s text="{}", 609s ) 609s 609s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 609s with pytest.raises(ModernFormsConnectionError): 609s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 609s > await device.update() 609s 609s tests/test_aiomodernforms.py:568: 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 609s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 609s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 609s ret = await target(*args, **kwargs) 609s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609s 609s self = 609s commands = {'queryStaticShadowData': True} 609s 609s @backoff.on_exception( 609s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 609s ) 609s async def _request(self, commands: Optional[dict] = None) -> Any: 609s """Handle a request to a Modern Forms Fan device.""" 609s scheme = "https" if self._tls else "http" 609s url = URL.build( 609s scheme=scheme, 609s host=self._host, 609s port=self._port, 609s path=self._base_path, 609s ) 609s 609s auth = None 609s if self._username and self._password: 609s auth = aiohttp.BasicAuth(self._username, self._password) 609s 609s headers = { 609s "User-Agent": self._user_agent, 609s "Accept": "application/json", 609s } 609s 609s if self._session is None: 609s self._session = aiohttp.ClientSession() 609s self._close_session = True 609s 609s # If updating the state, always request for a state response 609s if commands is None: 609s commands = {COMMAND_QUERY_STATUS: True} 609s 609s try: 609s > with async_timeout.timeout(self._request_timeout): 609s E TypeError: 'Timeout' object does not support the context manager protocol 609s 609s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 609s =========================== short test summary info ============================ 609s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 609s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 609s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 609s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 609s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 609s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 609s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 609s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 609s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 609s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 609s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 609s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 609s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 609s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 609s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 609s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 609s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 609s ========================= 17 failed, 2 passed in 0.55s ========================= 609s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.VTjnjw/autopkgtest_tmp/build; python3.12 -m pytest -v 609s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 609s make: *** [/tmp/geBRxycc86/run:4: pybuild-autopkgtest] Error 25 609s pybuild-autopkgtest: error: /tmp/geBRxycc86/run pybuild-autopkgtest returned exit code 2 610s autopkgtest [20:42:14]: test pybuild-autopkgtest: -----------------------] 611s autopkgtest [20:42:15]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 611s pybuild-autopkgtest FAIL non-zero exit status 25 611s autopkgtest [20:42:15]: @@@@@@@@@@@@@@@@@@@@ summary 611s pybuild-autopkgtest FAIL non-zero exit status 25 623s nova [W] Skipping flock in bos03-arm64 623s Creating nova instance adt-plucky-arm64-python-aiomodernforms-20241123-203137-juju-7f2275-prod-proposed-migration-environment-15-5d364316-7ea8-4637-afa2-744a80665e27 from image adt/ubuntu-plucky-arm64-server-20241119.img (UUID 254dc414-4366-404b-b85c-a4e26b3194ad)... 623s nova [W] nova quota exceeded (attempt #0)