0s autopkgtest [20:33:01]: starting date and time: 2024-11-23 20:33:01+0000 0s autopkgtest [20:33:01]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [20:33:01]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.3m2rk1pq/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 builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-2.secgroup --name adt-plucky-amd64-python-aiomodernforms-20241123-203300-juju-7f2275-prod-proposed-migration-environment-20-11a91719-384d-4f6e-9b9f-eb336d88c0d8 --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-amd64 -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/ 41s autopkgtest [20:33:42]: testbed dpkg architecture: amd64 42s autopkgtest [20:33:43]: testbed apt version: 2.9.8 42s autopkgtest [20:33:43]: @@@@@@@@@@@@@@@@@@@@ test bed setup 42s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 43s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [54.8 kB] 43s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [930 kB] 43s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 43s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [13.6 kB] 43s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [91.3 kB] 43s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [43.4 kB] 43s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 Packages [40.1 kB] 43s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/restricted i386 Packages [2408 B] 43s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [295 kB] 43s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [806 kB] 43s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [5528 B] 43s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [20.0 kB] 43s Fetched 2386 kB in 1s (2726 kB/s) 43s Reading package lists... 46s Reading package lists... 46s Building dependency tree... 46s Reading state information... 46s Calculating upgrade... 46s The following package was automatically installed and is no longer required: 46s libsgutils2-1.46-2 46s Use 'sudo apt autoremove' to remove it. 46s The following NEW packages will be installed: 46s libsgutils2-1.48 46s The following packages will be upgraded: 46s amd64-microcode bash bpftrace curl debconf debconf-i18n distro-info 46s fwupd-signed gir1.2-girepository-2.0 gir1.2-glib-2.0 hostname 46s intel-microcode libaudit-common libaudit1 libcurl3t64-gnutls libcurl4t64 46s libgirepository-1.0-1 libglib2.0-0t64 libglib2.0-data libpam-modules 46s libpam-modules-bin libpam-runtime libpam0g libplymouth5 libselinux1 46s libsemanage-common libsemanage2 linux-base lxd-installer openssh-client 46s openssh-server openssh-sftp-server plymouth plymouth-theme-ubuntu-text 46s python3-blinker python3-dbus python3-debconf python3-gi 46s python3-jsonschema-specifications python3-rpds-py python3-yaml sg3-utils 46s sg3-utils-udev vim-common vim-tiny xxd 46s 46 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 46s Need to get 19.8 MB of archives. 46s After this operation, 4441 kB of additional disk space will be used. 46s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 bash amd64 5.2.32-1ubuntu2 [918 kB] 47s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 hostname amd64 3.25 [11.1 kB] 47s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit-common all 1:4.0.2-2ubuntu1 [6578 B] 47s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit1 amd64 1:4.0.2-2ubuntu1 [53.9 kB] 47s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 debconf-i18n all 1.5.87ubuntu1 [204 kB] 47s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-debconf all 1.5.87ubuntu1 [4156 B] 47s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 debconf all 1.5.87ubuntu1 [124 kB] 47s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam0g amd64 1.5.3-7ubuntu4 [69.6 kB] 47s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 libselinux1 amd64 3.7-3ubuntu1 [86.9 kB] 47s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-modules-bin amd64 1.5.3-7ubuntu4 [53.7 kB] 47s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-modules amd64 1.5.3-7ubuntu4 [294 kB] 47s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-sftp-server amd64 1:9.9p1-3ubuntu2 [41.2 kB] 47s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-server amd64 1:9.9p1-3ubuntu2 [625 kB] 47s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 openssh-client amd64 1:9.9p1-3ubuntu2 [1080 kB] 47s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-runtime all 1.5.3-7ubuntu4 [40.8 kB] 47s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage-common all 3.7-2build1 [7186 B] 47s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage2 amd64 3.7-2build1 [105 kB] 47s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 distro-info amd64 1.12 [20.0 kB] 47s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-girepository-2.0 amd64 1.82.0-2 [25.3 kB] 47s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-glib-2.0 amd64 2.82.2-3 [182 kB] 47s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-0t64 amd64 2.82.2-3 [1655 kB] 47s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 libgirepository-1.0-1 amd64 1.82.0-2 [88.7 kB] 47s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-data all 2.82.2-3 [51.7 kB] 47s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dbus amd64 1.3.2-5build4 [110 kB] 47s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-gi amd64 3.50.0-3build1 [293 kB] 47s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-yaml amd64 6.0.2-1build1 [187 kB] 47s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 vim-tiny amd64 2:9.1.0861-1ubuntu1 [1037 kB] 47s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 47s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 xxd amd64 2:9.1.0861-1ubuntu1 [67.8 kB] 47s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 libplymouth5 amd64 24.004.60-2ubuntu3 [145 kB] 47s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 plymouth-theme-ubuntu-text amd64 24.004.60-2ubuntu3 [10.3 kB] 47s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 plymouth amd64 24.004.60-2ubuntu3 [140 kB] 47s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 bpftrace amd64 0.21.2-2ubuntu3 [1787 kB] 47s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 curl amd64 8.9.1-2ubuntu3 [243 kB] 47s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl4t64 amd64 8.9.1-2ubuntu3 [420 kB] 47s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 fwupd-signed amd64 1.55+1.7-1 [30.6 kB] 47s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl3t64-gnutls amd64 8.9.1-2ubuntu3 [412 kB] 47s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 libsgutils2-1.48 amd64 1.48-0ubuntu1 [124 kB] 47s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-base all 4.10.1ubuntu1 [34.8 kB] 47s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 lxd-installer all 10 [5264 B] 47s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-blinker all 1.9.0-1 [10.7 kB] 47s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-rpds-py amd64 0.21.0-2ubuntu1 [323 kB] 47s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-jsonschema-specifications all 2023.12.1-2 [9116 B] 47s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 sg3-utils amd64 1.48-0ubuntu1 [1042 kB] 47s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 sg3-utils-udev all 1.48-0ubuntu1 [6608 B] 47s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 amd64-microcode amd64 3.20240820.1ubuntu1 [187 kB] 47s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 intel-microcode amd64 3.20241112.1ubuntu2 [7055 kB] 48s Preconfiguring packages ... 48s Fetched 19.8 MB in 1s (13.4 MB/s) 48s (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 ... 75620 files and directories currently installed.) 48s Preparing to unpack .../bash_5.2.32-1ubuntu2_amd64.deb ... 48s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 48s Setting up bash (5.2.32-1ubuntu2) ... 48s 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 48s (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 ... 75620 files and directories currently installed.) 48s Preparing to unpack .../hostname_3.25_amd64.deb ... 48s Unpacking hostname (3.25) over (3.23+nmu2ubuntu2) ... 48s Setting up hostname (3.25) ... 48s (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 ... 75620 files and directories currently installed.) 48s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu1_all.deb ... 48s Unpacking libaudit-common (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 48s Setting up libaudit-common (1:4.0.2-2ubuntu1) ... 48s (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 ... 75620 files and directories currently installed.) 48s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu1_amd64.deb ... 48s Unpacking libaudit1:amd64 (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 48s Setting up libaudit1:amd64 (1:4.0.2-2ubuntu1) ... 48s (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 ... 75620 files and directories currently installed.) 48s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 48s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 48s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 49s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 49s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 49s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 49s Setting up debconf (1.5.87ubuntu1) ... 49s (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 ... 75620 files and directories currently installed.) 49s Preparing to unpack .../libpam0g_1.5.3-7ubuntu4_amd64.deb ... 49s Unpacking libpam0g:amd64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 49s Setting up libpam0g:amd64 (1.5.3-7ubuntu4) ... 49s (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 ... 75620 files and directories currently installed.) 49s Preparing to unpack .../libselinux1_3.7-3ubuntu1_amd64.deb ... 49s Unpacking libselinux1:amd64 (3.7-3ubuntu1) over (3.5-2ubuntu5) ... 49s Setting up libselinux1:amd64 (3.7-3ubuntu1) ... 49s (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 ... 75620 files and directories currently installed.) 49s Preparing to unpack .../libpam-modules-bin_1.5.3-7ubuntu4_amd64.deb ... 49s Unpacking libpam-modules-bin (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 49s Setting up libpam-modules-bin (1.5.3-7ubuntu4) ... 49s pam_namespace.service is a disabled or a static unit not running, not starting it. 49s (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 ... 75620 files and directories currently installed.) 49s Preparing to unpack .../libpam-modules_1.5.3-7ubuntu4_amd64.deb ... 49s Unpacking libpam-modules:amd64 (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 49s Setting up libpam-modules:amd64 (1.5.3-7ubuntu4) ... 49s (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 ... 75620 files and directories currently installed.) 49s Preparing to unpack .../openssh-sftp-server_1%3a9.9p1-3ubuntu2_amd64.deb ... 49s Unpacking openssh-sftp-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 49s Preparing to unpack .../openssh-server_1%3a9.9p1-3ubuntu2_amd64.deb ... 50s Unpacking openssh-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 50s Preparing to unpack .../openssh-client_1%3a9.9p1-3ubuntu2_amd64.deb ... 50s Unpacking openssh-client (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 50s Preparing to unpack .../libpam-runtime_1.5.3-7ubuntu4_all.deb ... 50s Unpacking libpam-runtime (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 50s Setting up libpam-runtime (1.5.3-7ubuntu4) ... 50s (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 ... 75622 files and directories currently installed.) 50s Preparing to unpack .../libsemanage-common_3.7-2build1_all.deb ... 50s Unpacking libsemanage-common (3.7-2build1) over (3.5-1build6) ... 50s Setting up libsemanage-common (3.7-2build1) ... 50s (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 ... 75621 files and directories currently installed.) 50s Preparing to unpack .../libsemanage2_3.7-2build1_amd64.deb ... 50s Unpacking libsemanage2:amd64 (3.7-2build1) over (3.5-1build6) ... 50s Setting up libsemanage2:amd64 (3.7-2build1) ... 50s (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 ... 75621 files and directories currently installed.) 50s Preparing to unpack .../00-distro-info_1.12_amd64.deb ... 50s Unpacking distro-info (1.12) over (1.9) ... 50s Preparing to unpack .../01-gir1.2-girepository-2.0_1.82.0-2_amd64.deb ... 50s Unpacking gir1.2-girepository-2.0:amd64 (1.82.0-2) over (1.80.1-4) ... 50s Preparing to unpack .../02-gir1.2-glib-2.0_2.82.2-3_amd64.deb ... 50s Unpacking gir1.2-glib-2.0:amd64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 50s Preparing to unpack .../03-libglib2.0-0t64_2.82.2-3_amd64.deb ... 50s Unpacking libglib2.0-0t64:amd64 (2.82.2-3) over (2.82.1-0ubuntu1) ... 50s Preparing to unpack .../04-libgirepository-1.0-1_1.82.0-2_amd64.deb ... 50s Unpacking libgirepository-1.0-1:amd64 (1.82.0-2) over (1.80.1-4) ... 50s Preparing to unpack .../05-libglib2.0-data_2.82.2-3_all.deb ... 50s Unpacking libglib2.0-data (2.82.2-3) over (2.82.1-0ubuntu1) ... 50s Preparing to unpack .../06-python3-dbus_1.3.2-5build4_amd64.deb ... 50s Unpacking python3-dbus (1.3.2-5build4) over (1.3.2-5build3) ... 50s Preparing to unpack .../07-python3-gi_3.50.0-3build1_amd64.deb ... 50s Unpacking python3-gi (3.50.0-3build1) over (3.50.0-3) ... 50s Preparing to unpack .../08-python3-yaml_6.0.2-1build1_amd64.deb ... 50s Unpacking python3-yaml (6.0.2-1build1) over (6.0.2-1) ... 50s Preparing to unpack .../09-vim-tiny_2%3a9.1.0861-1ubuntu1_amd64.deb ... 50s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 51s Preparing to unpack .../10-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 51s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 51s Preparing to unpack .../11-xxd_2%3a9.1.0861-1ubuntu1_amd64.deb ... 51s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 51s Preparing to unpack .../12-libplymouth5_24.004.60-2ubuntu3_amd64.deb ... 51s Unpacking libplymouth5:amd64 (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 51s Preparing to unpack .../13-plymouth-theme-ubuntu-text_24.004.60-2ubuntu3_amd64.deb ... 51s Unpacking plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 51s Preparing to unpack .../14-plymouth_24.004.60-2ubuntu3_amd64.deb ... 51s Unpacking plymouth (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 51s Preparing to unpack .../15-bpftrace_0.21.2-2ubuntu3_amd64.deb ... 51s Unpacking bpftrace (0.21.2-2ubuntu3) over (0.21.2-2ubuntu2) ... 51s Preparing to unpack .../16-curl_8.9.1-2ubuntu3_amd64.deb ... 51s Unpacking curl (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 51s Preparing to unpack .../17-libcurl4t64_8.9.1-2ubuntu3_amd64.deb ... 51s Unpacking libcurl4t64:amd64 (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 51s Preparing to unpack .../18-fwupd-signed_1.55+1.7-1_amd64.deb ... 51s Unpacking fwupd-signed (1.55+1.7-1) over (1.54+1.6-1build1) ... 51s Preparing to unpack .../19-libcurl3t64-gnutls_8.9.1-2ubuntu3_amd64.deb ... 51s Unpacking libcurl3t64-gnutls:amd64 (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 51s Selecting previously unselected package libsgutils2-1.48:amd64. 51s Preparing to unpack .../20-libsgutils2-1.48_1.48-0ubuntu1_amd64.deb ... 51s Unpacking libsgutils2-1.48:amd64 (1.48-0ubuntu1) ... 51s Preparing to unpack .../21-linux-base_4.10.1ubuntu1_all.deb ... 51s Unpacking linux-base (4.10.1ubuntu1) over (4.5ubuntu9) ... 51s Preparing to unpack .../22-lxd-installer_10_all.deb ... 51s Unpacking lxd-installer (10) over (9) ... 51s Preparing to unpack .../23-python3-blinker_1.9.0-1_all.deb ... 51s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 51s Preparing to unpack .../24-python3-rpds-py_0.21.0-2ubuntu1_amd64.deb ... 51s Unpacking python3-rpds-py (0.21.0-2ubuntu1) over (0.20.0-0ubuntu3) ... 51s Preparing to unpack .../25-python3-jsonschema-specifications_2023.12.1-2_all.deb ... 51s Unpacking python3-jsonschema-specifications (2023.12.1-2) over (2023.12.1-1ubuntu1) ... 51s Preparing to unpack .../26-sg3-utils_1.48-0ubuntu1_amd64.deb ... 51s Unpacking sg3-utils (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 51s Preparing to unpack .../27-sg3-utils-udev_1.48-0ubuntu1_all.deb ... 51s Unpacking sg3-utils-udev (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 51s Preparing to unpack .../28-amd64-microcode_3.20240820.1ubuntu1_amd64.deb ... 51s Unpacking amd64-microcode (3.20240820.1ubuntu1) over (3.20240116.2+nmu1ubuntu1.1) ... 51s Preparing to unpack .../29-intel-microcode_3.20241112.1ubuntu2_amd64.deb ... 51s Unpacking intel-microcode (3.20241112.1ubuntu2) over (3.20240910.0ubuntu1) ... 52s Setting up distro-info (1.12) ... 52s Setting up linux-base (4.10.1ubuntu1) ... 52s Setting up libcurl4t64:amd64 (8.9.1-2ubuntu3) ... 52s Setting up bpftrace (0.21.2-2ubuntu3) ... 52s Setting up openssh-client (1:9.9p1-3ubuntu2) ... 52s Setting up intel-microcode (3.20241112.1ubuntu2) ... 52s intel-microcode: microcode will be updated at next boot 52s Setting up python3-debconf (1.5.87ubuntu1) ... 52s Setting up libcurl3t64-gnutls:amd64 (8.9.1-2ubuntu3) ... 52s Setting up fwupd-signed (1.55+1.7-1) ... 52s Setting up libsgutils2-1.48:amd64 (1.48-0ubuntu1) ... 52s Setting up python3-yaml (6.0.2-1build1) ... 52s Setting up debconf-i18n (1.5.87ubuntu1) ... 52s Setting up amd64-microcode (3.20240820.1ubuntu1) ... 52s amd64-microcode: microcode will be updated at next boot 52s Setting up xxd (2:9.1.0861-1ubuntu1) ... 52s Setting up libglib2.0-0t64:amd64 (2.82.2-3) ... 52s No schema files found: doing nothing. 52s Setting up libglib2.0-data (2.82.2-3) ... 52s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 52s Setting up gir1.2-glib-2.0:amd64 (2.82.2-3) ... 52s Setting up lxd-installer (10) ... 52s Setting up python3-rpds-py (0.21.0-2ubuntu1) ... 52s Setting up libplymouth5:amd64 (24.004.60-2ubuntu3) ... 52s Setting up libgirepository-1.0-1:amd64 (1.82.0-2) ... 52s Setting up curl (8.9.1-2ubuntu3) ... 52s Setting up python3-jsonschema-specifications (2023.12.1-2) ... 52s Setting up sg3-utils (1.48-0ubuntu1) ... 52s Setting up python3-blinker (1.9.0-1) ... 52s Setting up openssh-sftp-server (1:9.9p1-3ubuntu2) ... 52s Setting up python3-dbus (1.3.2-5build4) ... 53s Setting up openssh-server (1:9.9p1-3ubuntu2) ... 53s Installing new version of config file /etc/ssh/moduli ... 53s Replacing config file /etc/ssh/sshd_config with new version 53s Setting up plymouth (24.004.60-2ubuntu3) ... 53s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 54s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 61s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 61s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 61s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 61s Setting up sg3-utils-udev (1.48-0ubuntu1) ... 61s update-initramfs: deferring update (trigger activated) 61s Setting up plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) ... 61s update-initramfs: deferring update (trigger activated) 61s Setting up gir1.2-girepository-2.0:amd64 (1.82.0-2) ... 61s Setting up python3-gi (3.50.0-3build1) ... 61s Processing triggers for install-info (7.1.1-1) ... 62s Processing triggers for initramfs-tools (0.142ubuntu35) ... 62s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 62s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 68s Processing triggers for libc-bin (2.40-1ubuntu3) ... 68s Processing triggers for ufw (0.36.2-8) ... 68s Processing triggers for man-db (2.13.0-1) ... 70s Processing triggers for debianutils (5.21) ... 70s Reading package lists... 70s Building dependency tree... 70s Reading state information... 70s The following packages will be REMOVED: 70s libsgutils2-1.46-2* 70s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 70s After this operation, 294 kB disk space will be freed. 70s (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 ... 75656 files and directories currently installed.) 70s Removing libsgutils2-1.46-2:amd64 (1.46-3ubuntu5) ... 70s Processing triggers for libc-bin (2.40-1ubuntu3) ... 71s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 71s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 71s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 71s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 72s Reading package lists... 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 72s Calculating upgrade... 72s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 72s Reading package lists... 73s Building dependency tree... 73s Reading state information... 73s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 73s autopkgtest [20:34:14]: rebooting testbed after setup commands that affected boot 89s autopkgtest [20:34:30]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 91s autopkgtest [20:34:32]: @@@@@@@@@@@@@@@@@@@@ apt-source python-aiomodernforms 93s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (dsc) [2407 B] 93s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (tar) [34.5 kB] 93s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (diff) [2120 B] 93s gpgv: Signature made Wed Aug 14 20:49:59 2024 UTC 93s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 93s gpgv: Can't check signature: No public key 93s dpkg-source: warning: cannot verify inline signature for ./python-aiomodernforms_0.1.8-2.dsc: no acceptable signature found 93s autopkgtest [20:34:34]: testing package python-aiomodernforms version 0.1.8-2 93s autopkgtest [20:34:34]: build not needed 94s autopkgtest [20:34:35]: test pybuild-autopkgtest: preparing testbed 95s Reading package lists... 95s Building dependency tree... 95s Reading state information... 95s Starting pkgProblemResolver with broken count: 1 95s Starting 2 pkgProblemResolver with broken count: 1 95s Investigating (0) python3-aiohttp:amd64 < none -> 3.10.10-2build1 @un puN Ib > 95s Broken python3-aiohttp:amd64 Depends on python3-yarl:amd64 < none -> 1.9.4-1 @un puN > (>= 1.12.0) 95s Considering python3-yarl:amd64 3 as a solution to python3-aiohttp:amd64 2 95s Re-Instated python3-yarl:amd64 95s Broken python3-aiohttp:amd64 Depends on python3-async-timeout:amd64 < none | 4.0.3-1 @un uH > (>= 4.0.1) 95s Considering python3-async-timeout:amd64 0 as a solution to python3-aiohttp:amd64 2 95s Re-Instated python3-async-timeout:amd64 95s Broken python3-aiohttp:amd64 Depends on python3-aiohappyeyeballs:amd64 < none | 2.4.3-1 @un uH > 95s Considering python3-aiohappyeyeballs:amd64 1 as a solution to python3-aiohttp:amd64 2 95s Re-Instated python3-aiohappyeyeballs:amd64 95s Broken python3-aiohttp:amd64 Depends on python3-aiosignal:amd64 < none | 1.3.1-1 @un uH > 95s Considering python3-aiosignal:amd64 1 as a solution to python3-aiohttp:amd64 2 95s Re-Instated python3-frozenlist:amd64 95s Re-Instated python3-aiosignal:amd64 95s Done 95s Some packages could not be installed. This may mean that you have 95s requested an impossible situation or if you are using the unstable 95s distribution that some required packages have not yet been created 95s or been moved out of Incoming. 95s The following information may help to resolve the situation: 95s 95s The following packages have unmet dependencies: 95s python3-aiohttp : Depends: python3-yarl (>= 1.12.0) but 1.9.4-1 is to be installed 95s E: Unable to correct problems, you have held broken packages. 95s autopkgtest: WARNING: Test dependencies are unsatisfiable with using apt pinning. Retrying with using all packages from plucky-proposed 96s Reading package lists... 96s Building dependency tree... 96s Reading state information... 96s Starting pkgProblemResolver with broken count: 0 96s Starting 2 pkgProblemResolver with broken count: 0 96s Done 96s The following additional packages will be installed: 96s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 96s cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 96s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 96s g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-14 96s gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 96s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 96s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libhwasan0 libisl23 96s libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 96s libjs-jquery-metadata libjs-jquery-tablesorter 96s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3-stdlib 96s libpython3.13-minimal libpython3.13-stdlib libquadmath0 libstdc++-14-dev 96s libtool libtsan2 libubsan1 m4 openstack-pkg-tools po-debconf 96s pybuild-plugin-pyproject python3 python3-aiohappyeyeballs python3-aiohttp 96s python3-aiomodernforms python3-aiosignal python3-all python3-aresponses 96s python3-async-generator python3-async-timeout python3-backoff python3-build 96s python3-coverage python3-frozenlist python3-iniconfig python3-installer 96s python3-minimal python3-multidict python3-mypy python3-mypy-extensions 96s python3-packaging python3-pip python3-pluggy python3-psutil 96s python3-pyproject-hooks python3-pytest python3-pytest-asyncio 96s python3-pytest-cov python3-toml python3-wheel python3-yarl python3.13 96s python3.13-minimal 96s Suggested packages: 96s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 96s cpp-14-doc dh-make flit g++-multilib g++-14-multilib gcc-14-doc gcc-multilib 96s manpages-dev flex bison gdb gcc-doc gcc-14-multilib gdb-x86-64-linux-gnu 96s gettext-doc libasprintf-dev libgettextpo-dev libstdc++-14-doc libtool-doc 96s gfortran | fortran95-compiler gcj-jdk m4-doc libmail-box-perl python3-venv 96s python-build-doc python-coverage-doc python-installer-doc python3.13-venv 96s python3.13-doc binfmt-support 96s Recommended packages: 96s libarchive-cpio-perl javascript-common libltdl-dev autopkgtest madison-lite 96s pristine-tar libmail-sendmail-perl python3-aiodns python3-lxml 96s python3-orjson python3-dev libjs-sphinxdoc 97s The following NEW packages will be installed: 97s autoconf automake autopkgtest-satdep autopoint autotools-dev build-essential 97s cpp cpp-14 cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 97s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 97s g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-14 97s gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 97s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 97s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libhwasan0 libisl23 97s libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 97s libjs-jquery-metadata libjs-jquery-tablesorter 97s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3.13-minimal 97s libpython3.13-stdlib libquadmath0 libstdc++-14-dev libtool libtsan2 97s libubsan1 m4 openstack-pkg-tools po-debconf pybuild-plugin-pyproject 97s python3-aiohappyeyeballs python3-aiohttp python3-aiomodernforms 97s python3-aiosignal python3-all python3-aresponses python3-async-generator 97s python3-async-timeout python3-backoff python3-build python3-coverage 97s python3-frozenlist python3-iniconfig python3-installer python3-multidict 97s python3-mypy python3-mypy-extensions python3-packaging python3-pip 97s python3-pluggy python3-psutil python3-pyproject-hooks python3-pytest 97s python3-pytest-asyncio python3-pytest-cov python3-toml python3-wheel 97s python3-yarl python3.13 python3.13-minimal 97s The following packages will be upgraded: 97s libpython3-stdlib python3 python3-minimal 97s 3 upgraded, 85 newly installed, 0 to remove and 40 not upgraded. 97s Need to get 95.3 MB/95.3 MB of archives. 97s After this operation, 350 MB of additional disk space will be used. 97s Get:1 /tmp/autopkgtest.EGYhjl/1-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [856 B] 97s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 python3-minimal amd64 3.12.7-1 [27.4 kB] 97s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 python3 amd64 3.12.7-1 [24.0 kB] 97s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 libpython3-stdlib amd64 3.12.7-1 [10.0 kB] 97s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-minimal amd64 3.13.0-2 [879 kB] 97s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13-minimal amd64 3.13.0-2 [2188 kB] 97s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 97s Get:8 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 97s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 m4 amd64 1.4.19-4build1 [244 kB] 97s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 autoconf all 2.72-3 [382 kB] 97s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 autotools-dev all 20220109.1 [44.9 kB] 97s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 automake all 1:1.16.5-1.3ubuntu1 [558 kB] 97s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 autopoint all 0.22.5-2 [616 kB] 97s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 libisl23 amd64 0.27-1 [685 kB] 97s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libmpc3 amd64 1.3.1-1build2 [55.3 kB] 97s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-8ubuntu1 [11.9 MB] 98s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14 amd64 14.2.0-8ubuntu1 [1030 B] 98s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [5452 B] 98s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp amd64 4:14.1.0-2ubuntu1 [22.4 kB] 98s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libcc1-0 amd64 14.2.0-8ubuntu1 [47.6 kB] 98s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libgomp1 amd64 14.2.0-8ubuntu1 [148 kB] 98s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 libitm1 amd64 14.2.0-8ubuntu1 [29.1 kB] 98s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 libasan8 amd64 14.2.0-8ubuntu1 [2998 kB] 98s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 liblsan0 amd64 14.2.0-8ubuntu1 [1317 kB] 98s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 libtsan2 amd64 14.2.0-8ubuntu1 [2732 kB] 98s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libubsan1 amd64 14.2.0-8ubuntu1 [1177 kB] 98s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libhwasan0 amd64 14.2.0-8ubuntu1 [1634 kB] 98s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 libquadmath0 amd64 14.2.0-8ubuntu1 [153 kB] 98s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-14-dev amd64 14.2.0-8ubuntu1 [2814 kB] 98s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-8ubuntu1 [23.3 MB] 100s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14 amd64 14.2.0-8ubuntu1 [528 kB] 100s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [1214 B] 100s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc amd64 4:14.1.0-2ubuntu1 [5000 B] 100s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++-14-dev amd64 14.2.0-8ubuntu1 [2504 kB] 100s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14-x86-64-linux-gnu amd64 14.2.0-8ubuntu1 [13.3 MB] 101s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14 amd64 14.2.0-8ubuntu1 [19.9 kB] 101s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-x86-64-linux-gnu amd64 4:14.1.0-2ubuntu1 [966 B] 101s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 g++ amd64 4:14.1.0-2ubuntu1 [1100 B] 101s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 build-essential amd64 12.10ubuntu1 [4928 B] 101s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 101s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 libtool all 2.4.7-8 [166 kB] 101s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-autoreconf all 20 [16.1 kB] 101s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 101s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 101s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-strip-nondeterminism all 1.14.0-1 [5058 B] 101s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 debugedit amd64 1:5.1-1 [46.9 kB] 101s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 dwz amd64 0.15-1build6 [115 kB] 101s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 gettext amd64 0.22.5-2 [948 kB] 101s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 101s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 101s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 debhelper all 13.20ubuntu1 [893 kB] 101s Get:52 http://ftpmaster.internal/ubuntu plucky/universe amd64 dh-python all 6.20241024 [112 kB] 101s Get:53 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 101s Get:54 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 101s Get:55 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 101s Get:56 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-stdlib amd64 3.13.0-2 [2107 kB] 101s Get:57 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.2-1 [51.5 kB] 101s Get:58 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 101s Get:59 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-toml all 0.10.2-1 [16.5 kB] 101s Get:60 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wheel all 0.45.0-1 [57.7 kB] 101s Get:61 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-build all 1.2.2-1 [31.0 kB] 101s Get:62 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 101s Get:63 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-pyproject all 6.20241024 [1728 B] 101s Get:64 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-aiohappyeyeballs all 2.4.3-1 [10.5 kB] 101s Get:65 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-multidict amd64 6.1.0-1build1 [38.5 kB] 101s Get:66 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-yarl amd64 1.13.1-1build1 [127 kB] 101s Get:67 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-async-timeout all 5.0.1-1 [6830 B] 101s Get:68 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-frozenlist amd64 1.5.0-1build1 [67.8 kB] 101s Get:69 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-aiosignal all 1.3.1-1 [5172 B] 101s Get:70 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-aiohttp amd64 3.10.10-2build1 [377 kB] 101s Get:71 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-backoff all 2.2.1-2 [17.9 kB] 101s Get:72 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-aiomodernforms all 0.1.8-2 [8106 B] 101s Get:73 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13 amd64 3.13.0-2 [719 kB] 102s Get:74 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 python3-all amd64 3.12.7-1 [890 B] 102s Get:75 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-async-generator all 1.10-4 [17.5 kB] 102s Get:76 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 102s Get:77 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 102s Get:78 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.3-1 [251 kB] 102s Get:79 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-pytest-asyncio all 0.24.0a1-1 [15.8 kB] 102s Get:80 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-aresponses all 3.0.0-2 [13.8 kB] 102s Get:81 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-coverage amd64 7.4.4+dfsg1-0ubuntu3 [150 kB] 102s Get:82 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-mypy-extensions all 1.0.0-1 [6148 B] 102s Get:83 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-psutil amd64 5.9.8-2build3 [196 kB] 102s Get:84 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-mypy amd64 1.13.0-2 [15.7 MB] 103s Get:85 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pip all 24.3.1+dfsg-1 [1404 kB] 103s Get:86 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 103s Get:87 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 103s Get:88 http://ftpmaster.internal/ubuntu plucky/universe amd64 openstack-pkg-tools all 123ubuntu2 [94.5 kB] 103s Fetched 95.3 MB in 6s (15.6 MB/s) 103s (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 ... 75651 files and directories currently installed.) 103s Preparing to unpack .../python3-minimal_3.12.7-1_amd64.deb ... 103s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 103s Setting up python3-minimal (3.12.7-1) ... 103s (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 ... 75651 files and directories currently installed.) 103s Preparing to unpack .../00-python3_3.12.7-1_amd64.deb ... 103s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 103s Preparing to unpack .../01-libpython3-stdlib_3.12.7-1_amd64.deb ... 103s Unpacking libpython3-stdlib:amd64 (3.12.7-1) over (3.12.6-0ubuntu1) ... 103s Selecting previously unselected package libpython3.13-minimal:amd64. 103s Preparing to unpack .../02-libpython3.13-minimal_3.13.0-2_amd64.deb ... 103s Unpacking libpython3.13-minimal:amd64 (3.13.0-2) ... 103s Selecting previously unselected package python3.13-minimal. 103s Preparing to unpack .../03-python3.13-minimal_3.13.0-2_amd64.deb ... 103s Unpacking python3.13-minimal (3.13.0-2) ... 104s Selecting previously unselected package libjs-jquery. 104s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 104s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 104s Selecting previously unselected package libjs-jquery-hotkeys. 104s Preparing to unpack .../05-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 104s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 104s Selecting previously unselected package m4. 104s Preparing to unpack .../06-m4_1.4.19-4build1_amd64.deb ... 104s Unpacking m4 (1.4.19-4build1) ... 104s Selecting previously unselected package autoconf. 104s Preparing to unpack .../07-autoconf_2.72-3_all.deb ... 104s Unpacking autoconf (2.72-3) ... 104s Selecting previously unselected package autotools-dev. 104s Preparing to unpack .../08-autotools-dev_20220109.1_all.deb ... 104s Unpacking autotools-dev (20220109.1) ... 104s Selecting previously unselected package automake. 104s Preparing to unpack .../09-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 104s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 104s Selecting previously unselected package autopoint. 104s Preparing to unpack .../10-autopoint_0.22.5-2_all.deb ... 104s Unpacking autopoint (0.22.5-2) ... 104s Selecting previously unselected package libisl23:amd64. 104s Preparing to unpack .../11-libisl23_0.27-1_amd64.deb ... 104s Unpacking libisl23:amd64 (0.27-1) ... 104s Selecting previously unselected package libmpc3:amd64. 104s Preparing to unpack .../12-libmpc3_1.3.1-1build2_amd64.deb ... 104s Unpacking libmpc3:amd64 (1.3.1-1build2) ... 104s Selecting previously unselected package cpp-14-x86-64-linux-gnu. 104s Preparing to unpack .../13-cpp-14-x86-64-linux-gnu_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking cpp-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package cpp-14. 104s Preparing to unpack .../14-cpp-14_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package cpp-x86-64-linux-gnu. 104s Preparing to unpack .../15-cpp-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 104s Unpacking cpp-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 104s Selecting previously unselected package cpp. 104s Preparing to unpack .../16-cpp_4%3a14.1.0-2ubuntu1_amd64.deb ... 104s Unpacking cpp (4:14.1.0-2ubuntu1) ... 104s Selecting previously unselected package libcc1-0:amd64. 104s Preparing to unpack .../17-libcc1-0_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libcc1-0:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libgomp1:amd64. 104s Preparing to unpack .../18-libgomp1_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libgomp1:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libitm1:amd64. 104s Preparing to unpack .../19-libitm1_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libitm1:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libasan8:amd64. 104s Preparing to unpack .../20-libasan8_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libasan8:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package liblsan0:amd64. 104s Preparing to unpack .../21-liblsan0_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking liblsan0:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libtsan2:amd64. 104s Preparing to unpack .../22-libtsan2_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libtsan2:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libubsan1:amd64. 104s Preparing to unpack .../23-libubsan1_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libubsan1:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libhwasan0:amd64. 104s Preparing to unpack .../24-libhwasan0_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libhwasan0:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libquadmath0:amd64. 104s Preparing to unpack .../25-libquadmath0_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libquadmath0:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package libgcc-14-dev:amd64. 104s Preparing to unpack .../26-libgcc-14-dev_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking libgcc-14-dev:amd64 (14.2.0-8ubuntu1) ... 104s Selecting previously unselected package gcc-14-x86-64-linux-gnu. 104s Preparing to unpack .../27-gcc-14-x86-64-linux-gnu_14.2.0-8ubuntu1_amd64.deb ... 104s Unpacking gcc-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 105s Selecting previously unselected package gcc-14. 105s Preparing to unpack .../28-gcc-14_14.2.0-8ubuntu1_amd64.deb ... 105s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 105s Selecting previously unselected package gcc-x86-64-linux-gnu. 105s Preparing to unpack .../29-gcc-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 105s Unpacking gcc-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 105s Selecting previously unselected package gcc. 105s Preparing to unpack .../30-gcc_4%3a14.1.0-2ubuntu1_amd64.deb ... 105s Unpacking gcc (4:14.1.0-2ubuntu1) ... 105s Selecting previously unselected package libstdc++-14-dev:amd64. 105s Preparing to unpack .../31-libstdc++-14-dev_14.2.0-8ubuntu1_amd64.deb ... 105s Unpacking libstdc++-14-dev:amd64 (14.2.0-8ubuntu1) ... 105s Selecting previously unselected package g++-14-x86-64-linux-gnu. 105s Preparing to unpack .../32-g++-14-x86-64-linux-gnu_14.2.0-8ubuntu1_amd64.deb ... 105s Unpacking g++-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 105s Selecting previously unselected package g++-14. 105s Preparing to unpack .../33-g++-14_14.2.0-8ubuntu1_amd64.deb ... 105s Unpacking g++-14 (14.2.0-8ubuntu1) ... 105s Selecting previously unselected package g++-x86-64-linux-gnu. 105s Preparing to unpack .../34-g++-x86-64-linux-gnu_4%3a14.1.0-2ubuntu1_amd64.deb ... 105s Unpacking g++-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 105s Selecting previously unselected package g++. 105s Preparing to unpack .../35-g++_4%3a14.1.0-2ubuntu1_amd64.deb ... 105s Unpacking g++ (4:14.1.0-2ubuntu1) ... 105s Selecting previously unselected package build-essential. 105s Preparing to unpack .../36-build-essential_12.10ubuntu1_amd64.deb ... 105s Unpacking build-essential (12.10ubuntu1) ... 105s Selecting previously unselected package libdebhelper-perl. 105s Preparing to unpack .../37-libdebhelper-perl_13.20ubuntu1_all.deb ... 105s Unpacking libdebhelper-perl (13.20ubuntu1) ... 105s Selecting previously unselected package libtool. 105s Preparing to unpack .../38-libtool_2.4.7-8_all.deb ... 105s Unpacking libtool (2.4.7-8) ... 105s Selecting previously unselected package dh-autoreconf. 105s Preparing to unpack .../39-dh-autoreconf_20_all.deb ... 105s Unpacking dh-autoreconf (20) ... 105s Selecting previously unselected package libarchive-zip-perl. 105s Preparing to unpack .../40-libarchive-zip-perl_1.68-1_all.deb ... 105s Unpacking libarchive-zip-perl (1.68-1) ... 105s Selecting previously unselected package libfile-stripnondeterminism-perl. 105s Preparing to unpack .../41-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 105s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 105s Selecting previously unselected package dh-strip-nondeterminism. 105s Preparing to unpack .../42-dh-strip-nondeterminism_1.14.0-1_all.deb ... 105s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 105s Selecting previously unselected package debugedit. 105s Preparing to unpack .../43-debugedit_1%3a5.1-1_amd64.deb ... 105s Unpacking debugedit (1:5.1-1) ... 105s Selecting previously unselected package dwz. 105s Preparing to unpack .../44-dwz_0.15-1build6_amd64.deb ... 105s Unpacking dwz (0.15-1build6) ... 105s Selecting previously unselected package gettext. 105s Preparing to unpack .../45-gettext_0.22.5-2_amd64.deb ... 105s Unpacking gettext (0.22.5-2) ... 105s Selecting previously unselected package intltool-debian. 105s Preparing to unpack .../46-intltool-debian_0.35.0+20060710.6_all.deb ... 105s Unpacking intltool-debian (0.35.0+20060710.6) ... 105s Selecting previously unselected package po-debconf. 105s Preparing to unpack .../47-po-debconf_1.0.21+nmu1_all.deb ... 105s Unpacking po-debconf (1.0.21+nmu1) ... 105s Selecting previously unselected package debhelper. 105s Preparing to unpack .../48-debhelper_13.20ubuntu1_all.deb ... 105s Unpacking debhelper (13.20ubuntu1) ... 106s Selecting previously unselected package dh-python. 106s Preparing to unpack .../49-dh-python_6.20241024_all.deb ... 106s Unpacking dh-python (6.20241024) ... 106s Selecting previously unselected package libjs-jquery-metadata. 106s Preparing to unpack .../50-libjs-jquery-metadata_12-4_all.deb ... 106s Unpacking libjs-jquery-metadata (12-4) ... 106s Selecting previously unselected package libjs-jquery-tablesorter. 106s Preparing to unpack .../51-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 106s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 106s Selecting previously unselected package libjs-jquery-throttle-debounce. 106s Preparing to unpack .../52-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 106s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 106s Selecting previously unselected package libpython3.13-stdlib:amd64. 106s Preparing to unpack .../53-libpython3.13-stdlib_3.13.0-2_amd64.deb ... 106s Unpacking libpython3.13-stdlib:amd64 (3.13.0-2) ... 106s Selecting previously unselected package python3-packaging. 106s Preparing to unpack .../54-python3-packaging_24.2-1_all.deb ... 106s Unpacking python3-packaging (24.2-1) ... 106s Selecting previously unselected package python3-pyproject-hooks. 106s Preparing to unpack .../55-python3-pyproject-hooks_1.2.0-1_all.deb ... 106s Unpacking python3-pyproject-hooks (1.2.0-1) ... 106s Selecting previously unselected package python3-toml. 106s Preparing to unpack .../56-python3-toml_0.10.2-1_all.deb ... 106s Unpacking python3-toml (0.10.2-1) ... 106s Selecting previously unselected package python3-wheel. 106s Preparing to unpack .../57-python3-wheel_0.45.0-1_all.deb ... 106s Unpacking python3-wheel (0.45.0-1) ... 106s Selecting previously unselected package python3-build. 106s Preparing to unpack .../58-python3-build_1.2.2-1_all.deb ... 106s Unpacking python3-build (1.2.2-1) ... 106s Selecting previously unselected package python3-installer. 106s Preparing to unpack .../59-python3-installer_0.7.0+dfsg1-3_all.deb ... 106s Unpacking python3-installer (0.7.0+dfsg1-3) ... 106s Selecting previously unselected package pybuild-plugin-pyproject. 106s Preparing to unpack .../60-pybuild-plugin-pyproject_6.20241024_all.deb ... 106s Unpacking pybuild-plugin-pyproject (6.20241024) ... 106s Selecting previously unselected package python3-aiohappyeyeballs. 106s Preparing to unpack .../61-python3-aiohappyeyeballs_2.4.3-1_all.deb ... 106s Unpacking python3-aiohappyeyeballs (2.4.3-1) ... 106s Selecting previously unselected package python3-multidict. 106s Preparing to unpack .../62-python3-multidict_6.1.0-1build1_amd64.deb ... 106s Unpacking python3-multidict (6.1.0-1build1) ... 106s Selecting previously unselected package python3-yarl. 106s Preparing to unpack .../63-python3-yarl_1.13.1-1build1_amd64.deb ... 106s Unpacking python3-yarl (1.13.1-1build1) ... 106s Selecting previously unselected package python3-async-timeout. 106s Preparing to unpack .../64-python3-async-timeout_5.0.1-1_all.deb ... 106s Unpacking python3-async-timeout (5.0.1-1) ... 106s Selecting previously unselected package python3-frozenlist. 106s Preparing to unpack .../65-python3-frozenlist_1.5.0-1build1_amd64.deb ... 106s Unpacking python3-frozenlist (1.5.0-1build1) ... 106s Selecting previously unselected package python3-aiosignal. 106s Preparing to unpack .../66-python3-aiosignal_1.3.1-1_all.deb ... 106s Unpacking python3-aiosignal (1.3.1-1) ... 106s Selecting previously unselected package python3-aiohttp. 106s Preparing to unpack .../67-python3-aiohttp_3.10.10-2build1_amd64.deb ... 106s Unpacking python3-aiohttp (3.10.10-2build1) ... 106s Selecting previously unselected package python3-backoff. 106s Preparing to unpack .../68-python3-backoff_2.2.1-2_all.deb ... 106s Unpacking python3-backoff (2.2.1-2) ... 106s Selecting previously unselected package python3-aiomodernforms. 106s Preparing to unpack .../69-python3-aiomodernforms_0.1.8-2_all.deb ... 106s Unpacking python3-aiomodernforms (0.1.8-2) ... 106s Selecting previously unselected package python3.13. 106s Preparing to unpack .../70-python3.13_3.13.0-2_amd64.deb ... 106s Unpacking python3.13 (3.13.0-2) ... 106s Selecting previously unselected package python3-all. 106s Preparing to unpack .../71-python3-all_3.12.7-1_amd64.deb ... 106s Unpacking python3-all (3.12.7-1) ... 106s Selecting previously unselected package python3-async-generator. 106s Preparing to unpack .../72-python3-async-generator_1.10-4_all.deb ... 106s Unpacking python3-async-generator (1.10-4) ... 106s Selecting previously unselected package python3-iniconfig. 106s Preparing to unpack .../73-python3-iniconfig_1.1.1-2_all.deb ... 106s Unpacking python3-iniconfig (1.1.1-2) ... 106s Selecting previously unselected package python3-pluggy. 106s Preparing to unpack .../74-python3-pluggy_1.5.0-1_all.deb ... 106s Unpacking python3-pluggy (1.5.0-1) ... 106s Selecting previously unselected package python3-pytest. 106s Preparing to unpack .../75-python3-pytest_8.3.3-1_all.deb ... 106s Unpacking python3-pytest (8.3.3-1) ... 106s Selecting previously unselected package python3-pytest-asyncio. 106s Preparing to unpack .../76-python3-pytest-asyncio_0.24.0a1-1_all.deb ... 106s Unpacking python3-pytest-asyncio (0.24.0a1-1) ... 106s Selecting previously unselected package python3-aresponses. 106s Preparing to unpack .../77-python3-aresponses_3.0.0-2_all.deb ... 106s Unpacking python3-aresponses (3.0.0-2) ... 106s Selecting previously unselected package python3-coverage. 106s Preparing to unpack .../78-python3-coverage_7.4.4+dfsg1-0ubuntu3_amd64.deb ... 106s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 106s Selecting previously unselected package python3-mypy-extensions. 106s Preparing to unpack .../79-python3-mypy-extensions_1.0.0-1_all.deb ... 106s Unpacking python3-mypy-extensions (1.0.0-1) ... 106s Selecting previously unselected package python3-psutil. 106s Preparing to unpack .../80-python3-psutil_5.9.8-2build3_amd64.deb ... 106s Unpacking python3-psutil (5.9.8-2build3) ... 106s Selecting previously unselected package python3-mypy. 106s Preparing to unpack .../81-python3-mypy_1.13.0-2_amd64.deb ... 106s Unpacking python3-mypy (1.13.0-2) ... 107s Selecting previously unselected package python3-pip. 107s Preparing to unpack .../82-python3-pip_24.3.1+dfsg-1_all.deb ... 107s Unpacking python3-pip (24.3.1+dfsg-1) ... 107s Selecting previously unselected package libjs-jquery-isonscreen. 107s Preparing to unpack .../83-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 107s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 107s Selecting previously unselected package python3-pytest-cov. 107s Preparing to unpack .../84-python3-pytest-cov_5.0.0-1_all.deb ... 107s Unpacking python3-pytest-cov (5.0.0-1) ... 107s Selecting previously unselected package openstack-pkg-tools. 107s Preparing to unpack .../85-openstack-pkg-tools_123ubuntu2_all.deb ... 107s Unpacking openstack-pkg-tools (123ubuntu2) ... 107s Selecting previously unselected package autopkgtest-satdep. 107s Preparing to unpack .../86-1-autopkgtest-satdep.deb ... 107s Unpacking autopkgtest-satdep (0) ... 107s Setting up libarchive-zip-perl (1.68-1) ... 107s Setting up libdebhelper-perl (13.20ubuntu1) ... 107s Setting up m4 (1.4.19-4build1) ... 107s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 107s Setting up libgomp1:amd64 (14.2.0-8ubuntu1) ... 107s Setting up libpython3.13-minimal:amd64 (3.13.0-2) ... 107s Setting up autotools-dev (20220109.1) ... 107s Setting up libquadmath0:amd64 (14.2.0-8ubuntu1) ... 107s Setting up libmpc3:amd64 (1.3.1-1build2) ... 107s Setting up autopoint (0.22.5-2) ... 107s Setting up autoconf (2.72-3) ... 107s Setting up libubsan1:amd64 (14.2.0-8ubuntu1) ... 107s Setting up dwz (0.15-1build6) ... 107s Setting up libhwasan0:amd64 (14.2.0-8ubuntu1) ... 107s Setting up libasan8:amd64 (14.2.0-8ubuntu1) ... 107s Setting up debugedit (1:5.1-1) ... 107s Setting up python3.13-minimal (3.13.0-2) ... 108s Setting up libtsan2:amd64 (14.2.0-8ubuntu1) ... 108s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 108s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 108s Setting up libisl23:amd64 (0.27-1) ... 108s Setting up libpython3.13-stdlib:amd64 (3.13.0-2) ... 108s Setting up libcc1-0:amd64 (14.2.0-8ubuntu1) ... 108s Setting up liblsan0:amd64 (14.2.0-8ubuntu1) ... 108s Setting up libitm1:amd64 (14.2.0-8ubuntu1) ... 108s Setting up libpython3-stdlib:amd64 (3.12.7-1) ... 108s Setting up automake (1:1.16.5-1.3ubuntu1) ... 108s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 108s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 108s Setting up gettext (0.22.5-2) ... 108s Setting up python3.13 (3.13.0-2) ... 109s Setting up python3 (3.12.7-1) ... 109s Setting up python3-wheel (0.45.0-1) ... 109s Setting up python3-psutil (5.9.8-2build3) ... 110s Setting up python3-multidict (6.1.0-1build1) ... 110s Setting up python3-frozenlist (1.5.0-1build1) ... 110s Setting up python3-aiosignal (1.3.1-1) ... 110s Setting up intltool-debian (0.35.0+20060710.6) ... 110s Setting up python3-async-timeout (5.0.1-1) ... 110s Setting up python3-packaging (24.2-1) ... 110s Setting up python3-pyproject-hooks (1.2.0-1) ... 111s Setting up libjs-jquery-metadata (12-4) ... 111s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 111s Setting up cpp-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 111s Setting up python3-aiohappyeyeballs (2.4.3-1) ... 111s Setting up python3-pip (24.3.1+dfsg-1) ... 112s Setting up python3-toml (0.10.2-1) ... 112s Setting up python3-installer (0.7.0+dfsg1-3) ... 113s Setting up cpp-14 (14.2.0-8ubuntu1) ... 113s Setting up python3-pluggy (1.5.0-1) ... 113s Setting up dh-strip-nondeterminism (1.14.0-1) ... 113s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 113s Setting up python3-backoff (2.2.1-2) ... 113s Setting up libgcc-14-dev:amd64 (14.2.0-8ubuntu1) ... 113s Setting up python3-build (1.2.2-1) ... 113s Setting up libstdc++-14-dev:amd64 (14.2.0-8ubuntu1) ... 113s Setting up python3-yarl (1.13.1-1build1) ... 113s Setting up cpp-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 113s Setting up dh-python (6.20241024) ... 113s Setting up python3-iniconfig (1.1.1-2) ... 113s Setting up python3-async-generator (1.10-4) ... 114s Setting up pybuild-plugin-pyproject (6.20241024) ... 114s Setting up python3-pytest (8.3.3-1) ... 114s Setting up python3-mypy-extensions (1.0.0-1) ... 114s Setting up po-debconf (1.0.21+nmu1) ... 114s Setting up python3-aiohttp (3.10.10-2build1) ... 115s Setting up python3-all (3.12.7-1) ... 115s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 115s Setting up python3-pytest-cov (5.0.0-1) ... 115s Setting up python3-aiomodernforms (0.1.8-2) ... 115s Setting up openstack-pkg-tools (123ubuntu2) ... 115s Setting up python3-mypy (1.13.0-2) ... 117s Setting up python3-pytest-asyncio (0.24.0a1-1) ... 117s Setting up cpp (4:14.1.0-2ubuntu1) ... 117s Setting up gcc-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 117s Setting up gcc-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 117s Setting up python3-aresponses (3.0.0-2) ... 117s Setting up gcc-14 (14.2.0-8ubuntu1) ... 117s Setting up g++-14-x86-64-linux-gnu (14.2.0-8ubuntu1) ... 117s Setting up g++-x86-64-linux-gnu (4:14.1.0-2ubuntu1) ... 117s Setting up g++-14 (14.2.0-8ubuntu1) ... 117s Setting up libtool (2.4.7-8) ... 117s Setting up gcc (4:14.1.0-2ubuntu1) ... 117s Setting up dh-autoreconf (20) ... 117s Setting up g++ (4:14.1.0-2ubuntu1) ... 117s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 117s Setting up build-essential (12.10ubuntu1) ... 117s Setting up debhelper (13.20ubuntu1) ... 117s Setting up autopkgtest-satdep (0) ... 117s Processing triggers for systemd (256.5-2ubuntu4) ... 117s Processing triggers for man-db (2.13.0-1) ... 119s Processing triggers for install-info (7.1.1-1) ... 119s Processing triggers for libc-bin (2.40-1ubuntu3) ... 122s (Reading database ... 82073 files and directories currently installed.) 122s Removing autopkgtest-satdep (0) ... 122s autopkgtest [20:35:03]: test pybuild-autopkgtest: pybuild-autopkgtest 122s autopkgtest [20:35:03]: test pybuild-autopkgtest: [----------------------- 123s make: pyversions: No such file or directory 123s py3versions: no X-Python3-Version in control file, using supported versions 123s pybuild-autopkgtest 123s I: pybuild base:311: cd /tmp/autopkgtest.EGYhjl/autopkgtest_tmp/build; python3.13 -m pytest -v 123s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 123s 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" 123s 123s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 123s ============================= test session starts ============================== 123s platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 123s cachedir: .pytest_cache 123s rootdir: /tmp/autopkgtest.EGYhjl/autopkgtest_tmp/build 123s configfile: pytest.ini 123s testpaths: tests 123s plugins: typeguard-4.4.1, aresponses-3.0.0, asyncio-0.24.0a1, cov-5.0.0 123s asyncio: mode=Mode.STRICT, default_loop_scope=None 123s collecting ... collected 19 items 123s 123s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 123s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 123s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 123s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 123s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 123s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 123s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 123s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 123s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 123s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 123s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 123s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 124s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 124s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 124s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 124s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 124s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 124s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 124s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 124s 124s =================================== FAILURES =================================== 124s ______________________________ test_basic_status _______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_basic_status(aresponses): 124s """Test JSON response is handled correctly.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add( 124s "fan.local", 124s "/mf", 124s "POST", 124s response=basic_response, 124s repeat=2, 124s ) 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:79: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _________________________________ test_command _________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_command(aresponses): 124s """Test to make sure setting lights works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_POWER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:108: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s __________________________________ test_light __________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light(aresponses): 124s """Test to make sure setting lights works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_POWER in data 124s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 124s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 124s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 124s ] 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:143: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s __________________________ test_light_sleep_datetime ___________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light_sleep_datetime(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(minutes=2) 124s > await device.light( 124s sleep=sleep_time, 124s ) 124s 124s tests/test_aiomodernforms.py:180: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_light_sleep_int _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light_sleep_int(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(seconds=120) 124s > await device.light( 124s sleep=120, 124s ) 124s 124s tests/test_aiomodernforms.py:209: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ____________________________ test_light_sleep_clear ____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light_sleep_clear(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s # check to clear timer 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.light( 124s sleep=0, 124s ) 124s 124s tests/test_aiomodernforms.py:238: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ___________________________________ test_fan ___________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan(aresponses): 124s """Test to make sure setting fan works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_POWER in data 124s assert aiomodernforms.COMMAND_FAN_SPEED in data 124s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 124s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 124s modified_response[STATE_FAN_DIRECTION] = data[ 124s aiomodernforms.COMMAND_FAN_DIRECTION 124s ] 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:274: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ___________________________ test_fan_sleep_datetime ____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan_sleep_datetime(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(minutes=2) 124s > await device.fan( 124s sleep=sleep_time, 124s ) 124s 124s tests/test_aiomodernforms.py:311: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ______________________________ test_fan_sleep_int ______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan_sleep_int(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(seconds=120) 124s > await device.fan( 124s sleep=120, 124s ) 124s 124s tests/test_aiomodernforms.py:340: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_fan_sleep_clear _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan_sleep_clear(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s # check to clear timer 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.fan( 124s sleep=0, 124s ) 124s 124s tests/test_aiomodernforms.py:369: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s __________________________________ test_away ___________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_away(aresponses): 124s """Test to make sure setting away mode works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_AWAY_MODE in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:395: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ____________________________ test_adaptive_learning ____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_adaptive_learning(aresponses): 124s """Test to make sure setting adaptive learning mode works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 124s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:422: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_invalid_setting _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_invalid_setting(aresponses): 124s """Test to make sure setting invalid settings are rejected.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:434: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ____________________________ test_connection_error _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_connection_error(aresponses): 124s """Test to make validate proper connection error handling.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:502: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ______________________________ test_server_error _______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_server_error(aresponses): 124s """Test to make validate proper server error handling.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add( 124s "fan.local", 124s "/mf", 124s "POST", 124s response=aresponses.Response(text="error", status=500), 124s ) 124s 124s with pytest.raises(aiomodernforms.ModernFormsError): 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:518: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _________________________________ test_reboot __________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_reboot(aresponses): 124s """Test how reboot is handled.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:528: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_empty_response ______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_empty_response(aresponses): 124s """Test for an Empty Response.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info)E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.EGYhjl/autopkgtest_tmp/build; python3.13 -m pytest -v 124s I: pybuild base:311: cd /tmp/autopkgtest.EGYhjl/autopkgtest_tmp/build; python3.12 -m pytest -v 124s 124s 124s async def send_empty_state(request): 124s await request.json() 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text="{}", 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 124s with pytest.raises(ModernFormsConnectionError): 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:568: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s =========================== short test summary info ============================ 124s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 124s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 124s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 124s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 124s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 124s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 124s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 124s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 124s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 124s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 124s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 124s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 124s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 124s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 124s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 124s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 124s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 124s ========================= 17 failed, 2 passed in 0.30s ========================= 124s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 124s 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" 124s 124s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 124s ============================= test session starts ============================== 124s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 124s cachedir: .pytest_cache 124s rootdir: /tmp/autopkgtest.EGYhjl/autopkgtest_tmp/build 124s configfile: pytest.ini 124s testpaths: tests 124s plugins: typeguard-4.4.1, aresponses-3.0.0, asyncio-0.24.0a1, cov-5.0.0 124s asyncio: mode=Mode.STRICT, default_loop_scope=None 124s collecting ... collected 19 items 124s 124s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 124s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 124s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 124s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 124s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 124s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 124s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 124s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 124s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 124s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 124s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 124s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 124s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 124s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 124s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 124s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 124s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 124s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 124s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 124s 124s =================================== FAILURES =================================== 124s ______________________________ test_basic_status _______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_basic_status(aresponses): 124s """Test JSON response is handled correctly.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add( 124s "fan.local", 124s "/mf", 124s "POST", 124s response=basic_response, 124s repeat=2, 124s ) 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:79: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _________________________________ test_command _________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_command(aresponses): 124s """Test to make sure setting lights works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_POWER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:108: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s __________________________________ test_light __________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light(aresponses): 124s """Test to make sure setting lights works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_POWER in data 124s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 124s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 124s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 124s ] 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:143: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s __________________________ test_light_sleep_datetime ___________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light_sleep_datetime(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(minutes=2) 124s > await device.light( 124s sleep=sleep_time, 124s ) 124s 124s tests/test_aiomodernforms.py:180: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_light_sleep_int _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light_sleep_int(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(seconds=120) 124s > await device.light( 124s sleep=120, 124s ) 124s 124s tests/test_aiomodernforms.py:209: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ____________________________ test_light_sleep_clear ____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_light_sleep_clear(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s # check to clear timer 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.light( 124s sleep=0, 124s ) 124s 124s tests/test_aiomodernforms.py:238: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ___________________________________ test_fan ___________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan(aresponses): 124s """Test to make sure setting fan works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_POWER in data 124s assert aiomodernforms.COMMAND_FAN_SPEED in data 124s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 124s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 124s modified_response[STATE_FAN_DIRECTION] = data[ 124s aiomodernforms.COMMAND_FAN_DIRECTION 124s ] 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:274: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ___________________________ test_fan_sleep_datetime ____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan_sleep_datetime(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(minutes=2) 124s > await device.fan( 124s sleep=sleep_time, 124s ) 124s 124s tests/test_aiomodernforms.py:311: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ______________________________ test_fan_sleep_int ______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan_sleep_int(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s sleep_time = datetime.now() + timedelta(seconds=120) 124s > await device.fan( 124s sleep=120, 124s ) 124s 124s tests/test_aiomodernforms.py:340: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_fan_sleep_clear _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_fan_sleep_clear(aresponses): 124s """Test to make sure setting light sleep works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 124s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s # check to clear timer 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.fan( 124s sleep=0, 124s ) 124s 124s tests/test_aiomodernforms.py:369: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 124s await self.request(commands=commands) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 124s await self.update() 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s __________________________________ test_away ___________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_away(aresponses): 124s """Test to make sure setting away mode works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_AWAY_MODE in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:395: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ____________________________ test_adaptive_learning ____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_adaptive_learning(aresponses): 124s """Test to make sure setting adaptive learning mode works.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async def evaluate_request(request): 124s data = await request.json() 124s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 124s modified_response = basic_response.copy() 124s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 124s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 124s ] 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text=json.dumps(modified_response), 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:422: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_invalid_setting _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_invalid_setting(aresponses): 124s """Test to make sure setting invalid settings are rejected.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:434: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ____________________________ test_connection_error _____________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_connection_error(aresponses): 124s """Test to make validate proper connection error handling.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:502: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s ______________________________ test_server_error _______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_server_error(aresponses): 124s """Test to make validate proper server error handling.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add( 124s "fan.local", 124s "/mf", 124s "POST", 124s response=aresponses.Response(text="error", status=500), 124s ) 124s 124s with pytest.raises(aiomodernforms.ModernFormsError): 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:518: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _________________________________ test_reboot __________________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_reboot(aresponses): 124s """Test how reboot is handled.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 124s 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:528: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s _____________________________ test_empty_response ______________________________ 124s 124s aresponses = 124s 124s @pytest.mark.asyncio 124s async def test_empty_response(aresponses): 124s """Test for an Empty Response.""" 124s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 124s 124s async def send_empty_state(request): 124s await request.json() 124s return aresponses.Response( 124s status=200, 124s content_type="application/json", 124s text="{}", 124s ) 124s 124s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 124s with pytest.raises(ModernFormsConnectionError): 124s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 124s > await device.update() 124s 124s tests/test_aiomodernforms.py:568: 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 124s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 124s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 124s ret = await target(*args, **kwargs) 124s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 124s 124s self = 124s commands = {'queryStaticShadowData': True} 124s 124s @backoff.on_exception( 124s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 124s ) 124s async def _request(self, commands: Optional[dict] = None) -> Any: 124s """Handle a request to a Modern Forms Fan device.""" 124s scheme = "https" if self._tls else "http" 124s url = URL.build( 124s scheme=scheme, 124s host=self._host, 124s port=self._port, 124s path=self._base_path, 124s ) 124s 124s auth = None 124s if self._username and self._password: 124s auth = aiohttp.BasicAuth(self._username, self._password) 124s 124s headers = { 124s "User-Agent": self._user_agent, 124s "Accept": "application/json", 124s } 124s 124s if self._session is None: 124s self._session = aiohttp.ClientSession() 124s self._close_session = True 124s 124s # If updating the state, always request for a state response 124s if commands is None: 124s commands = {COMMAND_QUERY_STATUS: True} 124s 124s try: 124s > with async_timeout.timeout(self._request_timeout): 124s E TypeError: 'Timeout' object does not support the context manager protocol 124s 124s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 124s =========================== short test summary info ============================ 124s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 124s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 124s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 124s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 124s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 124s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 124s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 124s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 124s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 124s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 124s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 124s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 124s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 124s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 124s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 124s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 124s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 124s ========================= 17 failed, 2 passed in 0.34s ========================= 124s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.EGYhjl/autopkgtest_tmp/build; python3.12 -m pytest -v 124s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 124s make: *** [/tmp/9MjxufOmoE/run:4: pybuild-autopkgtest] Error 25 124s pybuild-autopkgtest: error: /tmp/9MjxufOmoE/run pybuild-autopkgtest returned exit code 2 125s autopkgtest [20:35:06]: test pybuild-autopkgtest: -----------------------] 125s pybuild-autopkgtest FAIL non-zero exit status 25 125s autopkgtest [20:35:06]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 125s autopkgtest [20:35:06]: @@@@@@@@@@@@@@@@@@@@ summary 125s pybuild-autopkgtest FAIL non-zero exit status 25 138s nova [W] Skipping flock for amd64 138s Creating nova instance adt-plucky-amd64-python-aiomodernforms-20241123-203300-juju-7f2275-prod-proposed-migration-environment-20-11a91719-384d-4f6e-9b9f-eb336d88c0d8 from image adt/ubuntu-plucky-amd64-server-20241119.img (UUID 2e5306de-7efa-448c-bc27-5518979e66f0)...