0s autopkgtest [21:57:28]: starting date and time: 2024-11-23 21:57:28+0000 0s autopkgtest [21:57:28]: git checkout: 0acbae0a WIP show VirtSubproc stderr in real-time 0s autopkgtest [21:57:28]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.5layodwt/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python-aiohttp --apt-upgrade python-aiomodernforms --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python-aiohttp/3.10.10-2build1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-ppc64el-24.secgroup --name adt-plucky-ppc64el-python-aiomodernforms-20241123-214124-juju-7f2275-prod-proposed-migration-environment-2-e112f787-b8d2-4493-b588-447138e79b3c --image adt/ubuntu-plucky-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-ppc64el -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/ 93s autopkgtest [21:59:01]: testbed dpkg architecture: ppc64el 94s autopkgtest [21:59:02]: testbed apt version: 2.9.8 94s autopkgtest [21:59:02]: @@@@@@@@@@@@@@@@@@@@ test bed setup 94s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 95s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 95s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [50.6 kB] 95s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [13.6 kB] 95s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [908 kB] 95s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el Packages [62.6 kB] 95s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/restricted ppc64el Packages [756 B] 95s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el Packages [765 kB] 96s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse ppc64el Packages [9468 B] 96s Fetched 1893 kB in 1s (1413 kB/s) 96s Reading package lists... 98s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s Calculating upgrade... 99s The following package was automatically installed and is no longer required: 99s libsgutils2-1.46-2 99s Use 'sudo apt autoremove' to remove it. 99s The following NEW packages will be installed: 99s libsgutils2-1.48 99s The following packages will be upgraded: 99s bash bpftrace curl debconf debconf-i18n distro-info dracut-install 99s gir1.2-girepository-2.0 gir1.2-glib-2.0 hostname init init-system-helpers 99s libaudit-common libaudit1 libcurl3t64-gnutls libcurl4t64 99s libgirepository-1.0-1 libglib2.0-0t64 libglib2.0-data liblzma5 99s libpam-modules libpam-modules-bin libpam-runtime libpam0g libplymouth5 99s libselinux1 libsemanage-common libsemanage2 linux-base lsvpd lxd-installer 99s openssh-client openssh-server openssh-sftp-server pinentry-curses plymouth 99s plymouth-theme-ubuntu-text python3-blinker python3-dbus python3-debconf 99s python3-gi python3-jsonschema-specifications python3-rpds-py python3-yaml 99s sg3-utils sg3-utils-udev vim-common vim-tiny xxd xz-utils 99s 50 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 99s Need to get 14.1 MB of archives. 99s After this operation, 3675 kB of additional disk space will be used. 99s Get:1 http://ftpmaster.internal/ubuntu plucky/main ppc64el bash ppc64el 5.2.32-1ubuntu2 [979 kB] 99s Get:2 http://ftpmaster.internal/ubuntu plucky/main ppc64el hostname ppc64el 3.25 [11.3 kB] 99s Get:3 http://ftpmaster.internal/ubuntu plucky/main ppc64el init-system-helpers all 1.67ubuntu1 [39.1 kB] 99s Get:4 http://ftpmaster.internal/ubuntu plucky/main ppc64el libaudit-common all 1:4.0.2-2ubuntu1 [6578 B] 99s Get:5 http://ftpmaster.internal/ubuntu plucky/main ppc64el libaudit1 ppc64el 1:4.0.2-2ubuntu1 [59.6 kB] 99s Get:6 http://ftpmaster.internal/ubuntu plucky/main ppc64el debconf-i18n all 1.5.87ubuntu1 [204 kB] 99s Get:7 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-debconf all 1.5.87ubuntu1 [4156 B] 99s Get:8 http://ftpmaster.internal/ubuntu plucky/main ppc64el debconf all 1.5.87ubuntu1 [124 kB] 99s Get:9 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpam0g ppc64el 1.5.3-7ubuntu4 [76.2 kB] 99s Get:10 http://ftpmaster.internal/ubuntu plucky/main ppc64el libselinux1 ppc64el 3.7-3ubuntu1 [100 kB] 99s Get:11 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpam-modules-bin ppc64el 1.5.3-7ubuntu4 [57.6 kB] 99s Get:12 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpam-modules ppc64el 1.5.3-7ubuntu4 [325 kB] 99s Get:13 http://ftpmaster.internal/ubuntu plucky/main ppc64el init ppc64el 1.67ubuntu1 [6432 B] 99s Get:14 http://ftpmaster.internal/ubuntu plucky/main ppc64el openssh-sftp-server ppc64el 1:9.9p1-3ubuntu2 [43.4 kB] 99s Get:15 http://ftpmaster.internal/ubuntu plucky/main ppc64el openssh-server ppc64el 1:9.9p1-3ubuntu2 [680 kB] 99s Get:16 http://ftpmaster.internal/ubuntu plucky/main ppc64el openssh-client ppc64el 1:9.9p1-3ubuntu2 [1169 kB] 99s Get:17 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpam-runtime all 1.5.3-7ubuntu4 [40.8 kB] 99s Get:18 http://ftpmaster.internal/ubuntu plucky/main ppc64el liblzma5 ppc64el 5.6.3-1 [172 kB] 99s Get:19 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsemanage-common all 3.7-2build1 [7186 B] 99s Get:20 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsemanage2 ppc64el 3.7-2build1 [115 kB] 99s Get:21 http://ftpmaster.internal/ubuntu plucky/main ppc64el distro-info ppc64el 1.12 [20.0 kB] 99s Get:22 http://ftpmaster.internal/ubuntu plucky/main ppc64el gir1.2-girepository-2.0 ppc64el 1.82.0-2 [25.3 kB] 99s Get:23 http://ftpmaster.internal/ubuntu plucky/main ppc64el gir1.2-glib-2.0 ppc64el 2.82.2-3 [182 kB] 99s Get:24 http://ftpmaster.internal/ubuntu plucky/main ppc64el libglib2.0-0t64 ppc64el 2.82.2-3 [1787 kB] 99s Get:25 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgirepository-1.0-1 ppc64el 1.82.0-2 [95.5 kB] 99s Get:26 http://ftpmaster.internal/ubuntu plucky/main ppc64el libglib2.0-data all 2.82.2-3 [51.7 kB] 99s Get:27 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-dbus ppc64el 1.3.2-5build4 [117 kB] 99s Get:28 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-gi ppc64el 3.50.0-3build1 [308 kB] 99s Get:29 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-yaml ppc64el 6.0.2-1build1 [180 kB] 99s Get:30 http://ftpmaster.internal/ubuntu plucky/main ppc64el vim-tiny ppc64el 2:9.1.0861-1ubuntu1 [1078 kB] 99s Get:31 http://ftpmaster.internal/ubuntu plucky/main ppc64el vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 99s Get:32 http://ftpmaster.internal/ubuntu plucky/main ppc64el xxd ppc64el 2:9.1.0861-1ubuntu1 [67.9 kB] 99s Get:33 http://ftpmaster.internal/ubuntu plucky/main ppc64el libplymouth5 ppc64el 24.004.60-2ubuntu3 [169 kB] 99s Get:34 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsgutils2-1.48 ppc64el 1.48-0ubuntu1 [133 kB] 99s Get:35 http://ftpmaster.internal/ubuntu plucky/main ppc64el lsvpd ppc64el 1.7.14-1ubuntu3 [162 kB] 100s Get:36 http://ftpmaster.internal/ubuntu plucky/main ppc64el plymouth-theme-ubuntu-text ppc64el 24.004.60-2ubuntu3 [11.1 kB] 100s Get:37 http://ftpmaster.internal/ubuntu plucky/main ppc64el plymouth ppc64el 24.004.60-2ubuntu3 [152 kB] 100s Get:38 http://ftpmaster.internal/ubuntu plucky/main ppc64el xz-utils ppc64el 5.6.3-1 [280 kB] 100s Get:39 http://ftpmaster.internal/ubuntu plucky/main ppc64el bpftrace ppc64el 0.21.2-2ubuntu3 [1898 kB] 100s Get:40 http://ftpmaster.internal/ubuntu plucky/main ppc64el curl ppc64el 8.9.1-2ubuntu3 [247 kB] 100s Get:41 http://ftpmaster.internal/ubuntu plucky/main ppc64el libcurl4t64 ppc64el 8.9.1-2ubuntu3 [464 kB] 100s Get:42 http://ftpmaster.internal/ubuntu plucky/main ppc64el dracut-install ppc64el 105-2ubuntu2 [38.5 kB] 100s Get:43 http://ftpmaster.internal/ubuntu plucky/main ppc64el libcurl3t64-gnutls ppc64el 8.9.1-2ubuntu3 [461 kB] 100s Get:44 http://ftpmaster.internal/ubuntu plucky/main ppc64el linux-base all 4.10.1ubuntu1 [34.8 kB] 100s Get:45 http://ftpmaster.internal/ubuntu plucky/main ppc64el lxd-installer all 10 [5264 B] 100s Get:46 http://ftpmaster.internal/ubuntu plucky/main ppc64el pinentry-curses ppc64el 1.3.1-0ubuntu2 [43.5 kB] 100s Get:47 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-blinker all 1.9.0-1 [10.7 kB] 100s Get:48 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-rpds-py ppc64el 0.21.0-2ubuntu1 [338 kB] 100s Get:49 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-jsonschema-specifications all 2023.12.1-2 [9116 B] 100s Get:50 http://ftpmaster.internal/ubuntu plucky/main ppc64el sg3-utils ppc64el 1.48-0ubuntu1 [1070 kB] 100s Get:51 http://ftpmaster.internal/ubuntu plucky/main ppc64el sg3-utils-udev all 1.48-0ubuntu1 [6608 B] 100s Preconfiguring packages ... 100s Fetched 14.1 MB in 1s (11.8 MB/s) 100s (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 ... 73847 files and directories currently installed.) 100s Preparing to unpack .../bash_5.2.32-1ubuntu2_ppc64el.deb ... 100s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 100s Setting up bash (5.2.32-1ubuntu2) ... 100s 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 100s (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 ... 73847 files and directories currently installed.) 100s Preparing to unpack .../hostname_3.25_ppc64el.deb ... 100s Unpacking hostname (3.25) over (3.23+nmu2ubuntu2) ... 100s Setting up hostname (3.25) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../init-system-helpers_1.67ubuntu1_all.deb ... 101s Unpacking init-system-helpers (1.67ubuntu1) over (1.66ubuntu1) ... 101s Setting up init-system-helpers (1.67ubuntu1) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu1_all.deb ... 101s Unpacking libaudit-common (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 101s Setting up libaudit-common (1:4.0.2-2ubuntu1) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu1_ppc64el.deb ... 101s Unpacking libaudit1:ppc64el (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 101s Setting up libaudit1:ppc64el (1:4.0.2-2ubuntu1) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 101s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 101s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 101s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 101s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 101s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 101s Setting up debconf (1.5.87ubuntu1) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../libpam0g_1.5.3-7ubuntu4_ppc64el.deb ... 101s Unpacking libpam0g:ppc64el (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 101s Setting up libpam0g:ppc64el (1.5.3-7ubuntu4) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../libselinux1_3.7-3ubuntu1_ppc64el.deb ... 101s Unpacking libselinux1:ppc64el (3.7-3ubuntu1) over (3.5-2ubuntu5) ... 101s Setting up libselinux1:ppc64el (3.7-3ubuntu1) ... 101s (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 ... 73847 files and directories currently installed.) 101s Preparing to unpack .../libpam-modules-bin_1.5.3-7ubuntu4_ppc64el.deb ... 101s Unpacking libpam-modules-bin (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 101s Setting up libpam-modules-bin (1.5.3-7ubuntu4) ... 102s pam_namespace.service is a disabled or a static unit not running, not starting it. 102s (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 ... 73847 files and directories currently installed.) 102s Preparing to unpack .../libpam-modules_1.5.3-7ubuntu4_ppc64el.deb ... 102s Unpacking libpam-modules:ppc64el (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 102s Setting up libpam-modules:ppc64el (1.5.3-7ubuntu4) ... 102s (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 ... 73847 files and directories currently installed.) 102s Preparing to unpack .../init_1.67ubuntu1_ppc64el.deb ... 102s Unpacking init (1.67ubuntu1) over (1.66ubuntu1) ... 102s Preparing to unpack .../openssh-sftp-server_1%3a9.9p1-3ubuntu2_ppc64el.deb ... 102s Unpacking openssh-sftp-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 102s Preparing to unpack .../openssh-server_1%3a9.9p1-3ubuntu2_ppc64el.deb ... 102s Unpacking openssh-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 102s Preparing to unpack .../openssh-client_1%3a9.9p1-3ubuntu2_ppc64el.deb ... 102s Unpacking openssh-client (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 102s Preparing to unpack .../libpam-runtime_1.5.3-7ubuntu4_all.deb ... 102s Unpacking libpam-runtime (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 102s Setting up libpam-runtime (1.5.3-7ubuntu4) ... 102s (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 ... 73849 files and directories currently installed.) 102s Preparing to unpack .../liblzma5_5.6.3-1_ppc64el.deb ... 102s Unpacking liblzma5:ppc64el (5.6.3-1) over (5.6.2-2) ... 102s Setting up liblzma5:ppc64el (5.6.3-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 ... 73849 files and directories currently installed.) 103s Preparing to unpack .../libsemanage-common_3.7-2build1_all.deb ... 103s Unpacking libsemanage-common (3.7-2build1) over (3.5-1build6) ... 103s Setting up libsemanage-common (3.7-2build1) ... 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 ... 73848 files and directories currently installed.) 103s Preparing to unpack .../libsemanage2_3.7-2build1_ppc64el.deb ... 103s Unpacking libsemanage2:ppc64el (3.7-2build1) over (3.5-1build6) ... 103s Setting up libsemanage2:ppc64el (3.7-2build1) ... 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 ... 73848 files and directories currently installed.) 103s Preparing to unpack .../00-distro-info_1.12_ppc64el.deb ... 103s Unpacking distro-info (1.12) over (1.9) ... 103s Preparing to unpack .../01-gir1.2-girepository-2.0_1.82.0-2_ppc64el.deb ... 103s Unpacking gir1.2-girepository-2.0:ppc64el (1.82.0-2) over (1.80.1-4) ... 103s Preparing to unpack .../02-gir1.2-glib-2.0_2.82.2-3_ppc64el.deb ... 103s Unpacking gir1.2-glib-2.0:ppc64el (2.82.2-3) over (2.82.1-0ubuntu1) ... 103s Preparing to unpack .../03-libglib2.0-0t64_2.82.2-3_ppc64el.deb ... 103s Unpacking libglib2.0-0t64:ppc64el (2.82.2-3) over (2.82.1-0ubuntu1) ... 103s Preparing to unpack .../04-libgirepository-1.0-1_1.82.0-2_ppc64el.deb ... 103s Unpacking libgirepository-1.0-1:ppc64el (1.82.0-2) over (1.80.1-4) ... 103s Preparing to unpack .../05-libglib2.0-data_2.82.2-3_all.deb ... 103s Unpacking libglib2.0-data (2.82.2-3) over (2.82.1-0ubuntu1) ... 103s Preparing to unpack .../06-python3-dbus_1.3.2-5build4_ppc64el.deb ... 103s Unpacking python3-dbus (1.3.2-5build4) over (1.3.2-5build3) ... 103s Preparing to unpack .../07-python3-gi_3.50.0-3build1_ppc64el.deb ... 103s Unpacking python3-gi (3.50.0-3build1) over (3.50.0-3) ... 103s Preparing to unpack .../08-python3-yaml_6.0.2-1build1_ppc64el.deb ... 103s Unpacking python3-yaml (6.0.2-1build1) over (6.0.2-1) ... 103s Preparing to unpack .../09-vim-tiny_2%3a9.1.0861-1ubuntu1_ppc64el.deb ... 103s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 103s Preparing to unpack .../10-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 103s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 103s Preparing to unpack .../11-xxd_2%3a9.1.0861-1ubuntu1_ppc64el.deb ... 103s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 103s Preparing to unpack .../12-libplymouth5_24.004.60-2ubuntu3_ppc64el.deb ... 103s Unpacking libplymouth5:ppc64el (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 103s Selecting previously unselected package libsgutils2-1.48:ppc64el. 103s Preparing to unpack .../13-libsgutils2-1.48_1.48-0ubuntu1_ppc64el.deb ... 103s Unpacking libsgutils2-1.48:ppc64el (1.48-0ubuntu1) ... 103s Preparing to unpack .../14-lsvpd_1.7.14-1ubuntu3_ppc64el.deb ... 103s Unpacking lsvpd (1.7.14-1ubuntu3) over (1.7.14-1ubuntu2) ... 103s Preparing to unpack .../15-plymouth-theme-ubuntu-text_24.004.60-2ubuntu3_ppc64el.deb ... 103s Unpacking plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 103s Preparing to unpack .../16-plymouth_24.004.60-2ubuntu3_ppc64el.deb ... 103s Unpacking plymouth (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 103s Preparing to unpack .../17-xz-utils_5.6.3-1_ppc64el.deb ... 103s Unpacking xz-utils (5.6.3-1) over (5.6.2-2) ... 103s Preparing to unpack .../18-bpftrace_0.21.2-2ubuntu3_ppc64el.deb ... 103s Unpacking bpftrace (0.21.2-2ubuntu3) over (0.21.2-2ubuntu2) ... 104s Preparing to unpack .../19-curl_8.9.1-2ubuntu3_ppc64el.deb ... 104s Unpacking curl (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 104s Preparing to unpack .../20-libcurl4t64_8.9.1-2ubuntu3_ppc64el.deb ... 104s Unpacking libcurl4t64:ppc64el (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 104s Preparing to unpack .../21-dracut-install_105-2ubuntu2_ppc64el.deb ... 104s Unpacking dracut-install (105-2ubuntu2) over (105-1ubuntu1) ... 104s Preparing to unpack .../22-libcurl3t64-gnutls_8.9.1-2ubuntu3_ppc64el.deb ... 104s Unpacking libcurl3t64-gnutls:ppc64el (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 104s Preparing to unpack .../23-linux-base_4.10.1ubuntu1_all.deb ... 104s Unpacking linux-base (4.10.1ubuntu1) over (4.5ubuntu9) ... 104s Preparing to unpack .../24-lxd-installer_10_all.deb ... 104s Unpacking lxd-installer (10) over (9) ... 104s Preparing to unpack .../25-pinentry-curses_1.3.1-0ubuntu2_ppc64el.deb ... 104s Unpacking pinentry-curses (1.3.1-0ubuntu2) over (1.2.1-3ubuntu5) ... 104s Preparing to unpack .../26-python3-blinker_1.9.0-1_all.deb ... 104s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 104s Preparing to unpack .../27-python3-rpds-py_0.21.0-2ubuntu1_ppc64el.deb ... 104s Unpacking python3-rpds-py (0.21.0-2ubuntu1) over (0.20.0-0ubuntu3) ... 104s Preparing to unpack .../28-python3-jsonschema-specifications_2023.12.1-2_all.deb ... 104s Unpacking python3-jsonschema-specifications (2023.12.1-2) over (2023.12.1-1ubuntu1) ... 104s Preparing to unpack .../29-sg3-utils_1.48-0ubuntu1_ppc64el.deb ... 104s Unpacking sg3-utils (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 104s Preparing to unpack .../30-sg3-utils-udev_1.48-0ubuntu1_all.deb ... 104s Unpacking sg3-utils-udev (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 104s Setting up pinentry-curses (1.3.1-0ubuntu2) ... 104s Setting up distro-info (1.12) ... 104s Setting up linux-base (4.10.1ubuntu1) ... 104s Setting up init (1.67ubuntu1) ... 104s Setting up libcurl4t64:ppc64el (8.9.1-2ubuntu3) ... 104s Setting up bpftrace (0.21.2-2ubuntu3) ... 104s Setting up openssh-client (1:9.9p1-3ubuntu2) ... 104s Setting up python3-debconf (1.5.87ubuntu1) ... 104s Setting up libcurl3t64-gnutls:ppc64el (8.9.1-2ubuntu3) ... 104s Setting up libsgutils2-1.48:ppc64el (1.48-0ubuntu1) ... 104s Setting up python3-yaml (6.0.2-1build1) ... 104s Setting up debconf-i18n (1.5.87ubuntu1) ... 104s Setting up xxd (2:9.1.0861-1ubuntu1) ... 104s Setting up libglib2.0-0t64:ppc64el (2.82.2-3) ... 104s No schema files found: doing nothing. 104s Setting up libglib2.0-data (2.82.2-3) ... 104s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 104s Setting up xz-utils (5.6.3-1) ... 104s Setting up gir1.2-glib-2.0:ppc64el (2.82.2-3) ... 104s Setting up lxd-installer (10) ... 105s Setting up python3-rpds-py (0.21.0-2ubuntu1) ... 105s Setting up dracut-install (105-2ubuntu2) ... 105s Setting up libplymouth5:ppc64el (24.004.60-2ubuntu3) ... 105s Setting up libgirepository-1.0-1:ppc64el (1.82.0-2) ... 105s Setting up curl (8.9.1-2ubuntu3) ... 105s Setting up python3-jsonschema-specifications (2023.12.1-2) ... 105s Setting up sg3-utils (1.48-0ubuntu1) ... 105s Setting up python3-blinker (1.9.0-1) ... 105s Setting up openssh-sftp-server (1:9.9p1-3ubuntu2) ... 105s Setting up python3-dbus (1.3.2-5build4) ... 105s Setting up openssh-server (1:9.9p1-3ubuntu2) ... 105s Installing new version of config file /etc/ssh/moduli ... 106s Replacing config file /etc/ssh/sshd_config with new version 107s Setting up plymouth (24.004.60-2ubuntu3) ... 107s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 107s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 114s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 115s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 115s Setting up lsvpd (1.7.14-1ubuntu3) ... 115s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 115s Setting up sg3-utils-udev (1.48-0ubuntu1) ... 115s update-initramfs: deferring update (trigger activated) 115s Setting up plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) ... 115s update-initramfs: deferring update (trigger activated) 115s Setting up gir1.2-girepository-2.0:ppc64el (1.82.0-2) ... 115s Setting up python3-gi (3.50.0-3build1) ... 115s Processing triggers for install-info (7.1.1-1) ... 115s Processing triggers for initramfs-tools (0.142ubuntu35) ... 115s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 115s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 122s Processing triggers for libc-bin (2.40-1ubuntu3) ... 122s Processing triggers for ufw (0.36.2-8) ... 122s Processing triggers for man-db (2.13.0-1) ... 124s Processing triggers for debianutils (5.21) ... 124s Reading package lists... 124s Building dependency tree... 124s Reading state information... 124s The following packages will be REMOVED: 124s libsgutils2-1.46-2* 125s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 125s After this operation, 380 kB disk space will be freed. 125s (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 ... 73882 files and directories currently installed.) 125s Removing libsgutils2-1.46-2:ppc64el (1.46-3ubuntu5) ... 125s Processing triggers for libc-bin (2.40-1ubuntu3) ... 125s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 125s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 126s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 126s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 127s Reading package lists... 127s Reading package lists... 127s Building dependency tree... 127s Reading state information... 127s Calculating upgrade... 127s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 127s Reading package lists... 128s Building dependency tree... 128s Reading state information... 128s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 128s autopkgtest [21:59:36]: rebooting testbed after setup commands that affected boot 132s autopkgtest-virt-ssh: WARNING: ssh connection failed. Retrying in 3 seconds... 157s autopkgtest [22:00:05]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 13:49:23 UTC 2024 160s autopkgtest [22:00:08]: @@@@@@@@@@@@@@@@@@@@ apt-source python-aiomodernforms 162s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (dsc) [2407 B] 162s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (tar) [34.5 kB] 162s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (diff) [2120 B] 162s gpgv: Signature made Wed Aug 14 20:49:59 2024 UTC 162s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 162s gpgv: Can't check signature: No public key 162s dpkg-source: warning: cannot verify inline signature for ./python-aiomodernforms_0.1.8-2.dsc: no acceptable signature found 162s autopkgtest [22:00:10]: testing package python-aiomodernforms version 0.1.8-2 162s autopkgtest [22:00:10]: build not needed 162s autopkgtest [22:00:10]: test pybuild-autopkgtest: preparing testbed 163s Reading package lists... 164s Building dependency tree... 164s Reading state information... 164s Starting pkgProblemResolver with broken count: 1 164s Starting 2 pkgProblemResolver with broken count: 1 164s Investigating (0) python3-aiohttp:ppc64el < none -> 3.10.10-2build1 @un puN Ib > 164s Broken python3-aiohttp:ppc64el Depends on python3-yarl:ppc64el < none -> 1.9.4-1 @un puN > (>= 1.12.0) 164s Considering python3-yarl:ppc64el 3 as a solution to python3-aiohttp:ppc64el 2 164s Re-Instated python3-yarl:ppc64el 164s Broken python3-aiohttp:ppc64el Depends on python3-async-timeout:ppc64el < none | 4.0.3-1 @un uH > (>= 4.0.1) 164s Considering python3-async-timeout:ppc64el 0 as a solution to python3-aiohttp:ppc64el 2 164s Re-Instated python3-async-timeout:ppc64el 164s Broken python3-aiohttp:ppc64el Depends on python3-aiohappyeyeballs:ppc64el < none | 2.4.3-1 @un uH > 164s Considering python3-aiohappyeyeballs:ppc64el 1 as a solution to python3-aiohttp:ppc64el 2 164s Re-Instated python3-aiohappyeyeballs:ppc64el 164s Broken python3-aiohttp:ppc64el Depends on python3-aiosignal:ppc64el < none | 1.3.1-1 @un uH > 164s Considering python3-aiosignal:ppc64el 1 as a solution to python3-aiohttp:ppc64el 2 164s Re-Instated python3-frozenlist:ppc64el 164s Re-Instated python3-aiosignal:ppc64el 164s Done 164s Some packages could not be installed. This may mean that you have 164s requested an impossible situation or if you are using the unstable 164s distribution that some required packages have not yet been created 164s or been moved out of Incoming. 164s The following information may help to resolve the situation: 164s 164s The following packages have unmet dependencies: 164s python3-aiohttp : Depends: python3-yarl (>= 1.12.0) but 1.9.4-1 is to be installed 164s E: Unable to correct problems, you have held broken packages. 164s autopkgtest: WARNING: Test dependencies are unsatisfiable with using apt pinning. Retrying with using all packages from plucky-proposed 165s Reading package lists... 165s Building dependency tree... 165s Reading state information... 165s Starting pkgProblemResolver with broken count: 0 165s Starting 2 pkgProblemResolver with broken count: 0 165s Done 166s The following additional packages will be installed: 166s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 166s cpp-14-powerpc64le-linux-gnu cpp-powerpc64le-linux-gnu debhelper debugedit 166s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 166s g++-14-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu gcc gcc-14 166s gcc-14-powerpc64le-linux-gnu gcc-powerpc64le-linux-gnu gettext 166s intltool-debian libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 166s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libisl23 libitm1 166s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 166s libjs-jquery-metadata libjs-jquery-tablesorter 166s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3-stdlib 166s libpython3.13-minimal libpython3.13-stdlib libquadmath0 libstdc++-14-dev 166s libtool libtsan2 libubsan1 m4 openstack-pkg-tools po-debconf 166s pybuild-plugin-pyproject python3 python3-aiohappyeyeballs python3-aiohttp 166s python3-aiomodernforms python3-aiosignal python3-all python3-aresponses 166s python3-async-generator python3-async-timeout python3-backoff python3-build 166s python3-coverage python3-frozenlist python3-iniconfig python3-installer 166s python3-minimal python3-multidict python3-mypy python3-mypy-extensions 166s python3-packaging python3-pip python3-pluggy python3-psutil 166s python3-pyproject-hooks python3-pytest python3-pytest-asyncio 166s python3-pytest-cov python3-toml python3-wheel python3-yarl python3.13 166s python3.13-minimal 166s Suggested packages: 166s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 166s cpp-14-doc dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb 166s gcc-doc gdb-powerpc64le-linux-gnu gettext-doc libasprintf-dev 166s libgettextpo-dev libstdc++-14-doc libtool-doc gfortran | fortran95-compiler 166s gcj-jdk m4-doc libmail-box-perl python3-venv python-build-doc 166s python-coverage-doc python-installer-doc python3.13-venv python3.13-doc 166s binfmt-support 166s Recommended packages: 166s libarchive-cpio-perl javascript-common libltdl-dev autopkgtest madison-lite 166s pristine-tar libmail-sendmail-perl python3-aiodns python3-lxml 166s python3-orjson python3-dev libjs-sphinxdoc 166s The following NEW packages will be installed: 166s autoconf automake autopkgtest-satdep autopoint autotools-dev build-essential 166s cpp cpp-14 cpp-14-powerpc64le-linux-gnu cpp-powerpc64le-linux-gnu debhelper 166s debugedit dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 166s g++-14-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu gcc gcc-14 166s gcc-14-powerpc64le-linux-gnu gcc-powerpc64le-linux-gnu gettext 166s intltool-debian libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 166s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libisl23 libitm1 166s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 166s libjs-jquery-metadata libjs-jquery-tablesorter 166s libjs-jquery-throttle-debounce liblsan0 libmpc3 libpython3.13-minimal 166s libpython3.13-stdlib libquadmath0 libstdc++-14-dev libtool libtsan2 166s libubsan1 m4 openstack-pkg-tools po-debconf pybuild-plugin-pyproject 166s python3-aiohappyeyeballs python3-aiohttp python3-aiomodernforms 166s python3-aiosignal python3-all python3-aresponses python3-async-generator 166s python3-async-timeout python3-backoff python3-build python3-coverage 166s python3-frozenlist python3-iniconfig python3-installer python3-multidict 166s python3-mypy python3-mypy-extensions python3-packaging python3-pip 166s python3-pluggy python3-psutil python3-pyproject-hooks python3-pytest 166s python3-pytest-asyncio python3-pytest-cov python3-toml python3-wheel 166s python3-yarl python3.13 python3.13-minimal 166s The following packages will be upgraded: 166s libpython3-stdlib python3 python3-minimal 166s 3 upgraded, 84 newly installed, 0 to remove and 44 not upgraded. 166s Need to get 87.2 MB/87.2 MB of archives. 166s After this operation, 376 MB of additional disk space will be used. 166s Get:1 /tmp/autopkgtest.Z1Lwnk/1-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [856 B] 166s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3-minimal ppc64el 3.12.7-1 [27.4 kB] 166s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3 ppc64el 3.12.7-1 [24.0 kB] 166s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el libpython3-stdlib ppc64el 3.12.7-1 [10.0 kB] 166s Get:5 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpython3.13-minimal ppc64el 3.13.0-2 [881 kB] 166s Get:6 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3.13-minimal ppc64el 3.13.0-2 [2302 kB] 166s Get:7 http://ftpmaster.internal/ubuntu plucky/main ppc64el libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 166s Get:8 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 166s Get:9 http://ftpmaster.internal/ubuntu plucky/main ppc64el m4 ppc64el 1.4.19-4build1 [278 kB] 166s Get:10 http://ftpmaster.internal/ubuntu plucky/main ppc64el autoconf all 2.72-3 [382 kB] 166s Get:11 http://ftpmaster.internal/ubuntu plucky/main ppc64el autotools-dev all 20220109.1 [44.9 kB] 166s Get:12 http://ftpmaster.internal/ubuntu plucky/main ppc64el automake all 1:1.16.5-1.3ubuntu1 [558 kB] 166s Get:13 http://ftpmaster.internal/ubuntu plucky/main ppc64el autopoint all 0.22.5-2 [616 kB] 166s Get:14 http://ftpmaster.internal/ubuntu plucky/main ppc64el libisl23 ppc64el 0.27-1 [882 kB] 166s Get:15 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmpc3 ppc64el 1.3.1-1build2 [62.1 kB] 166s Get:16 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp-14-powerpc64le-linux-gnu ppc64el 14.2.0-8ubuntu1 [10.5 MB] 167s Get:17 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp-14 ppc64el 14.2.0-8ubuntu1 [1034 B] 167s Get:18 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp-powerpc64le-linux-gnu ppc64el 4:14.1.0-2ubuntu1 [5456 B] 167s Get:19 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp ppc64el 4:14.1.0-2ubuntu1 [22.5 kB] 167s Get:20 http://ftpmaster.internal/ubuntu plucky/main ppc64el libcc1-0 ppc64el 14.2.0-8ubuntu1 [48.1 kB] 167s Get:21 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgomp1 ppc64el 14.2.0-8ubuntu1 [161 kB] 167s Get:22 http://ftpmaster.internal/ubuntu plucky/main ppc64el libitm1 ppc64el 14.2.0-8ubuntu1 [31.9 kB] 167s Get:23 http://ftpmaster.internal/ubuntu plucky/main ppc64el libasan8 ppc64el 14.2.0-8ubuntu1 [2945 kB] 167s Get:24 http://ftpmaster.internal/ubuntu plucky/main ppc64el liblsan0 ppc64el 14.2.0-8ubuntu1 [1322 kB] 167s Get:25 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtsan2 ppc64el 14.2.0-8ubuntu1 [2695 kB] 167s Get:26 http://ftpmaster.internal/ubuntu plucky/main ppc64el libubsan1 ppc64el 14.2.0-8ubuntu1 [1191 kB] 167s Get:27 http://ftpmaster.internal/ubuntu plucky/main ppc64el libquadmath0 ppc64el 14.2.0-8ubuntu1 [158 kB] 167s Get:28 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgcc-14-dev ppc64el 14.2.0-8ubuntu1 [1619 kB] 167s Get:29 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc-14-powerpc64le-linux-gnu ppc64el 14.2.0-8ubuntu1 [20.6 MB] 167s Get:30 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc-14 ppc64el 14.2.0-8ubuntu1 [528 kB] 167s Get:31 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc-powerpc64le-linux-gnu ppc64el 4:14.1.0-2ubuntu1 [1222 B] 167s Get:32 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc ppc64el 4:14.1.0-2ubuntu1 [5006 B] 167s Get:33 http://ftpmaster.internal/ubuntu plucky/main ppc64el libstdc++-14-dev ppc64el 14.2.0-8ubuntu1 [2673 kB] 167s Get:34 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++-14-powerpc64le-linux-gnu ppc64el 14.2.0-8ubuntu1 [12.0 MB] 168s Get:35 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++-14 ppc64el 14.2.0-8ubuntu1 [19.9 kB] 168s Get:36 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++-powerpc64le-linux-gnu ppc64el 4:14.1.0-2ubuntu1 [968 B] 168s Get:37 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++ ppc64el 4:14.1.0-2ubuntu1 [1090 B] 168s Get:38 http://ftpmaster.internal/ubuntu plucky/main ppc64el build-essential ppc64el 12.10ubuntu1 [4936 B] 168s Get:39 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 168s Get:40 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtool all 2.4.7-8 [166 kB] 168s Get:41 http://ftpmaster.internal/ubuntu plucky/main ppc64el dh-autoreconf all 20 [16.1 kB] 168s Get:42 http://ftpmaster.internal/ubuntu plucky/main ppc64el libarchive-zip-perl all 1.68-1 [90.2 kB] 168s Get:43 http://ftpmaster.internal/ubuntu plucky/main ppc64el libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 168s Get:44 http://ftpmaster.internal/ubuntu plucky/main ppc64el dh-strip-nondeterminism all 1.14.0-1 [5058 B] 168s Get:45 http://ftpmaster.internal/ubuntu plucky/main ppc64el debugedit ppc64el 1:5.1-1 [52.1 kB] 168s Get:46 http://ftpmaster.internal/ubuntu plucky/main ppc64el dwz ppc64el 0.15-1build6 [142 kB] 168s Get:47 http://ftpmaster.internal/ubuntu plucky/main ppc64el gettext ppc64el 0.22.5-2 [1082 kB] 168s Get:48 http://ftpmaster.internal/ubuntu plucky/main ppc64el intltool-debian all 0.35.0+20060710.6 [23.2 kB] 168s Get:49 http://ftpmaster.internal/ubuntu plucky/main ppc64el po-debconf all 1.0.21+nmu1 [233 kB] 168s Get:50 http://ftpmaster.internal/ubuntu plucky/main ppc64el debhelper all 13.20ubuntu1 [893 kB] 168s Get:51 http://ftpmaster.internal/ubuntu plucky/universe ppc64el dh-python all 6.20241024 [112 kB] 168s Get:52 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-jquery-metadata all 12-4 [6582 B] 168s Get:53 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 168s Get:54 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 168s Get:55 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpython3.13-stdlib ppc64el 3.13.0-2 [2148 kB] 168s Get:56 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-packaging all 24.2-1 [51.5 kB] 168s Get:57 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 168s Get:58 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-toml all 0.10.2-1 [16.5 kB] 168s Get:59 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-wheel all 0.45.0-1 [57.7 kB] 168s Get:60 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-build all 1.2.2-1 [31.0 kB] 168s Get:61 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 168s Get:62 http://ftpmaster.internal/ubuntu plucky/universe ppc64el pybuild-plugin-pyproject all 6.20241024 [1728 B] 168s Get:63 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-aiohappyeyeballs all 2.4.3-1 [10.5 kB] 168s Get:64 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-multidict ppc64el 6.1.0-1build1 [40.2 kB] 168s Get:65 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el python3-yarl ppc64el 1.13.1-1build1 [129 kB] 168s Get:66 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el python3-async-timeout all 5.0.1-1 [6830 B] 168s Get:67 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-frozenlist ppc64el 1.5.0-1build1 [68.2 kB] 168s Get:68 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-aiosignal all 1.3.1-1 [5172 B] 168s Get:69 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el python3-aiohttp ppc64el 3.10.10-2build1 [377 kB] 168s Get:70 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-backoff all 2.2.1-2 [17.9 kB] 168s Get:71 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-aiomodernforms all 0.1.8-2 [8106 B] 168s Get:72 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3.13 ppc64el 3.13.0-2 [719 kB] 168s Get:73 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3-all ppc64el 3.12.7-1 [888 B] 168s Get:74 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-async-generator all 1.10-4 [17.5 kB] 168s Get:75 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-iniconfig all 1.1.1-2 [6024 B] 168s Get:76 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pluggy all 1.5.0-1 [21.0 kB] 168s Get:77 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pytest all 8.3.3-1 [251 kB] 168s Get:78 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el python3-pytest-asyncio all 0.24.0a1-1 [15.8 kB] 168s Get:79 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-aresponses all 3.0.0-2 [13.8 kB] 168s Get:80 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-coverage ppc64el 7.4.4+dfsg1-0ubuntu3 [151 kB] 168s Get:81 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-mypy-extensions all 1.0.0-1 [6148 B] 168s Get:82 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-psutil ppc64el 5.9.8-2build3 [197 kB] 168s Get:83 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-mypy ppc64el 1.13.0-2 [15.2 MB] 168s Get:84 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pip all 24.3.1+dfsg-1 [1404 kB] 168s Get:85 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 168s Get:86 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pytest-cov all 5.0.0-1 [21.3 kB] 168s Get:87 http://ftpmaster.internal/ubuntu plucky/universe ppc64el openstack-pkg-tools all 123ubuntu2 [94.5 kB] 169s Fetched 87.2 MB in 3s (30.4 MB/s) 169s (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 ... 73877 files and directories currently installed.) 169s Preparing to unpack .../python3-minimal_3.12.7-1_ppc64el.deb ... 169s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 169s Setting up python3-minimal (3.12.7-1) ... 169s (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 ... 73877 files and directories currently installed.) 169s Preparing to unpack .../00-python3_3.12.7-1_ppc64el.deb ... 169s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 169s Preparing to unpack .../01-libpython3-stdlib_3.12.7-1_ppc64el.deb ... 169s Unpacking libpython3-stdlib:ppc64el (3.12.7-1) over (3.12.6-0ubuntu1) ... 169s Selecting previously unselected package libpython3.13-minimal:ppc64el. 169s Preparing to unpack .../02-libpython3.13-minimal_3.13.0-2_ppc64el.deb ... 169s Unpacking libpython3.13-minimal:ppc64el (3.13.0-2) ... 170s Selecting previously unselected package python3.13-minimal. 170s Preparing to unpack .../03-python3.13-minimal_3.13.0-2_ppc64el.deb ... 170s Unpacking python3.13-minimal (3.13.0-2) ... 170s Selecting previously unselected package libjs-jquery. 170s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 170s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 170s Selecting previously unselected package libjs-jquery-hotkeys. 170s Preparing to unpack .../05-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 170s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 170s Selecting previously unselected package m4. 170s Preparing to unpack .../06-m4_1.4.19-4build1_ppc64el.deb ... 170s Unpacking m4 (1.4.19-4build1) ... 170s Selecting previously unselected package autoconf. 170s Preparing to unpack .../07-autoconf_2.72-3_all.deb ... 170s Unpacking autoconf (2.72-3) ... 170s Selecting previously unselected package autotools-dev. 170s Preparing to unpack .../08-autotools-dev_20220109.1_all.deb ... 170s Unpacking autotools-dev (20220109.1) ... 170s Selecting previously unselected package automake. 170s Preparing to unpack .../09-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 170s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 170s Selecting previously unselected package autopoint. 170s Preparing to unpack .../10-autopoint_0.22.5-2_all.deb ... 170s Unpacking autopoint (0.22.5-2) ... 170s Selecting previously unselected package libisl23:ppc64el. 170s Preparing to unpack .../11-libisl23_0.27-1_ppc64el.deb ... 170s Unpacking libisl23:ppc64el (0.27-1) ... 170s Selecting previously unselected package libmpc3:ppc64el. 170s Preparing to unpack .../12-libmpc3_1.3.1-1build2_ppc64el.deb ... 170s Unpacking libmpc3:ppc64el (1.3.1-1build2) ... 170s Selecting previously unselected package cpp-14-powerpc64le-linux-gnu. 170s Preparing to unpack .../13-cpp-14-powerpc64le-linux-gnu_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking cpp-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package cpp-14. 170s Preparing to unpack .../14-cpp-14_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package cpp-powerpc64le-linux-gnu. 170s Preparing to unpack .../15-cpp-powerpc64le-linux-gnu_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 170s Unpacking cpp-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 170s Selecting previously unselected package cpp. 170s Preparing to unpack .../16-cpp_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 170s Unpacking cpp (4:14.1.0-2ubuntu1) ... 170s Selecting previously unselected package libcc1-0:ppc64el. 170s Preparing to unpack .../17-libcc1-0_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libcc1-0:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libgomp1:ppc64el. 170s Preparing to unpack .../18-libgomp1_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libgomp1:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libitm1:ppc64el. 170s Preparing to unpack .../19-libitm1_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libitm1:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libasan8:ppc64el. 170s Preparing to unpack .../20-libasan8_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libasan8:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package liblsan0:ppc64el. 170s Preparing to unpack .../21-liblsan0_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking liblsan0:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libtsan2:ppc64el. 170s Preparing to unpack .../22-libtsan2_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libtsan2:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libubsan1:ppc64el. 170s Preparing to unpack .../23-libubsan1_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libubsan1:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libquadmath0:ppc64el. 170s Preparing to unpack .../24-libquadmath0_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libquadmath0:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package libgcc-14-dev:ppc64el. 170s Preparing to unpack .../25-libgcc-14-dev_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking libgcc-14-dev:ppc64el (14.2.0-8ubuntu1) ... 170s Selecting previously unselected package gcc-14-powerpc64le-linux-gnu. 170s Preparing to unpack .../26-gcc-14-powerpc64le-linux-gnu_14.2.0-8ubuntu1_ppc64el.deb ... 170s Unpacking gcc-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 171s Selecting previously unselected package gcc-14. 171s Preparing to unpack .../27-gcc-14_14.2.0-8ubuntu1_ppc64el.deb ... 171s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 171s Selecting previously unselected package gcc-powerpc64le-linux-gnu. 171s Preparing to unpack .../28-gcc-powerpc64le-linux-gnu_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 171s Unpacking gcc-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 171s Selecting previously unselected package gcc. 171s Preparing to unpack .../29-gcc_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 171s Unpacking gcc (4:14.1.0-2ubuntu1) ... 171s Selecting previously unselected package libstdc++-14-dev:ppc64el. 171s Preparing to unpack .../30-libstdc++-14-dev_14.2.0-8ubuntu1_ppc64el.deb ... 171s Unpacking libstdc++-14-dev:ppc64el (14.2.0-8ubuntu1) ... 171s Selecting previously unselected package g++-14-powerpc64le-linux-gnu. 171s Preparing to unpack .../31-g++-14-powerpc64le-linux-gnu_14.2.0-8ubuntu1_ppc64el.deb ... 171s Unpacking g++-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 171s Selecting previously unselected package g++-14. 171s Preparing to unpack .../32-g++-14_14.2.0-8ubuntu1_ppc64el.deb ... 171s Unpacking g++-14 (14.2.0-8ubuntu1) ... 171s Selecting previously unselected package g++-powerpc64le-linux-gnu. 171s Preparing to unpack .../33-g++-powerpc64le-linux-gnu_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 171s Unpacking g++-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 171s Selecting previously unselected package g++. 171s Preparing to unpack .../34-g++_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 171s Unpacking g++ (4:14.1.0-2ubuntu1) ... 171s Selecting previously unselected package build-essential. 171s Preparing to unpack .../35-build-essential_12.10ubuntu1_ppc64el.deb ... 171s Unpacking build-essential (12.10ubuntu1) ... 171s Selecting previously unselected package libdebhelper-perl. 171s Preparing to unpack .../36-libdebhelper-perl_13.20ubuntu1_all.deb ... 171s Unpacking libdebhelper-perl (13.20ubuntu1) ... 171s Selecting previously unselected package libtool. 171s Preparing to unpack .../37-libtool_2.4.7-8_all.deb ... 171s Unpacking libtool (2.4.7-8) ... 171s Selecting previously unselected package dh-autoreconf. 171s Preparing to unpack .../38-dh-autoreconf_20_all.deb ... 171s Unpacking dh-autoreconf (20) ... 171s Selecting previously unselected package libarchive-zip-perl. 171s Preparing to unpack .../39-libarchive-zip-perl_1.68-1_all.deb ... 171s Unpacking libarchive-zip-perl (1.68-1) ... 171s Selecting previously unselected package libfile-stripnondeterminism-perl. 171s Preparing to unpack .../40-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 171s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 171s Selecting previously unselected package dh-strip-nondeterminism. 171s Preparing to unpack .../41-dh-strip-nondeterminism_1.14.0-1_all.deb ... 171s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 171s Selecting previously unselected package debugedit. 171s Preparing to unpack .../42-debugedit_1%3a5.1-1_ppc64el.deb ... 171s Unpacking debugedit (1:5.1-1) ... 171s Selecting previously unselected package dwz. 171s Preparing to unpack .../43-dwz_0.15-1build6_ppc64el.deb ... 171s Unpacking dwz (0.15-1build6) ... 171s Selecting previously unselected package gettext. 171s Preparing to unpack .../44-gettext_0.22.5-2_ppc64el.deb ... 171s Unpacking gettext (0.22.5-2) ... 171s Selecting previously unselected package intltool-debian. 171s Preparing to unpack .../45-intltool-debian_0.35.0+20060710.6_all.deb ... 171s Unpacking intltool-debian (0.35.0+20060710.6) ... 171s Selecting previously unselected package po-debconf. 171s Preparing to unpack .../46-po-debconf_1.0.21+nmu1_all.deb ... 171s Unpacking po-debconf (1.0.21+nmu1) ... 172s Selecting previously unselected package debhelper. 172s Preparing to unpack .../47-debhelper_13.20ubuntu1_all.deb ... 172s Unpacking debhelper (13.20ubuntu1) ... 172s Selecting previously unselected package dh-python. 172s Preparing to unpack .../48-dh-python_6.20241024_all.deb ... 172s Unpacking dh-python (6.20241024) ... 172s Selecting previously unselected package libjs-jquery-metadata. 172s Preparing to unpack .../49-libjs-jquery-metadata_12-4_all.deb ... 172s Unpacking libjs-jquery-metadata (12-4) ... 172s Selecting previously unselected package libjs-jquery-tablesorter. 172s Preparing to unpack .../50-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 172s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 172s Selecting previously unselected package libjs-jquery-throttle-debounce. 172s Preparing to unpack .../51-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 172s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 172s Selecting previously unselected package libpython3.13-stdlib:ppc64el. 172s Preparing to unpack .../52-libpython3.13-stdlib_3.13.0-2_ppc64el.deb ... 172s Unpacking libpython3.13-stdlib:ppc64el (3.13.0-2) ... 172s Selecting previously unselected package python3-packaging. 172s Preparing to unpack .../53-python3-packaging_24.2-1_all.deb ... 172s Unpacking python3-packaging (24.2-1) ... 172s Selecting previously unselected package python3-pyproject-hooks. 172s Preparing to unpack .../54-python3-pyproject-hooks_1.2.0-1_all.deb ... 172s Unpacking python3-pyproject-hooks (1.2.0-1) ... 172s Selecting previously unselected package python3-toml. 172s Preparing to unpack .../55-python3-toml_0.10.2-1_all.deb ... 172s Unpacking python3-toml (0.10.2-1) ... 172s Selecting previously unselected package python3-wheel. 172s Preparing to unpack .../56-python3-wheel_0.45.0-1_all.deb ... 172s Unpacking python3-wheel (0.45.0-1) ... 172s Selecting previously unselected package python3-build. 172s Preparing to unpack .../57-python3-build_1.2.2-1_all.deb ... 172s Unpacking python3-build (1.2.2-1) ... 172s Selecting previously unselected package python3-installer. 172s Preparing to unpack .../58-python3-installer_0.7.0+dfsg1-3_all.deb ... 172s Unpacking python3-installer (0.7.0+dfsg1-3) ... 172s Selecting previously unselected package pybuild-plugin-pyproject. 172s Preparing to unpack .../59-pybuild-plugin-pyproject_6.20241024_all.deb ... 172s Unpacking pybuild-plugin-pyproject (6.20241024) ... 172s Selecting previously unselected package python3-aiohappyeyeballs. 172s Preparing to unpack .../60-python3-aiohappyeyeballs_2.4.3-1_all.deb ... 172s Unpacking python3-aiohappyeyeballs (2.4.3-1) ... 172s Selecting previously unselected package python3-multidict. 172s Preparing to unpack .../61-python3-multidict_6.1.0-1build1_ppc64el.deb ... 172s Unpacking python3-multidict (6.1.0-1build1) ... 172s Selecting previously unselected package python3-yarl. 172s Preparing to unpack .../62-python3-yarl_1.13.1-1build1_ppc64el.deb ... 172s Unpacking python3-yarl (1.13.1-1build1) ... 172s Selecting previously unselected package python3-async-timeout. 172s Preparing to unpack .../63-python3-async-timeout_5.0.1-1_all.deb ... 172s Unpacking python3-async-timeout (5.0.1-1) ... 172s Selecting previously unselected package python3-frozenlist. 172s Preparing to unpack .../64-python3-frozenlist_1.5.0-1build1_ppc64el.deb ... 172s Unpacking python3-frozenlist (1.5.0-1build1) ... 172s Selecting previously unselected package python3-aiosignal. 172s Preparing to unpack .../65-python3-aiosignal_1.3.1-1_all.deb ... 172s Unpacking python3-aiosignal (1.3.1-1) ... 172s Selecting previously unselected package python3-aiohttp. 172s Preparing to unpack .../66-python3-aiohttp_3.10.10-2build1_ppc64el.deb ... 172s Unpacking python3-aiohttp (3.10.10-2build1) ... 172s Selecting previously unselected package python3-backoff. 172s Preparing to unpack .../67-python3-backoff_2.2.1-2_all.deb ... 172s Unpacking python3-backoff (2.2.1-2) ... 172s Selecting previously unselected package python3-aiomodernforms. 172s Preparing to unpack .../68-python3-aiomodernforms_0.1.8-2_all.deb ... 172s Unpacking python3-aiomodernforms (0.1.8-2) ... 172s Selecting previously unselected package python3.13. 172s Preparing to unpack .../69-python3.13_3.13.0-2_ppc64el.deb ... 172s Unpacking python3.13 (3.13.0-2) ... 172s Selecting previously unselected package python3-all. 172s Preparing to unpack .../70-python3-all_3.12.7-1_ppc64el.deb ... 172s Unpacking python3-all (3.12.7-1) ... 172s Selecting previously unselected package python3-async-generator. 172s Preparing to unpack .../71-python3-async-generator_1.10-4_all.deb ... 172s Unpacking python3-async-generator (1.10-4) ... 172s Selecting previously unselected package python3-iniconfig. 172s Preparing to unpack .../72-python3-iniconfig_1.1.1-2_all.deb ... 172s Unpacking python3-iniconfig (1.1.1-2) ... 172s Selecting previously unselected package python3-pluggy. 172s Preparing to unpack .../73-python3-pluggy_1.5.0-1_all.deb ... 172s Unpacking python3-pluggy (1.5.0-1) ... 172s Selecting previously unselected package python3-pytest. 172s Preparing to unpack .../74-python3-pytest_8.3.3-1_all.deb ... 172s Unpacking python3-pytest (8.3.3-1) ... 172s Selecting previously unselected package python3-pytest-asyncio. 172s Preparing to unpack .../75-python3-pytest-asyncio_0.24.0a1-1_all.deb ... 172s Unpacking python3-pytest-asyncio (0.24.0a1-1) ... 172s Selecting previously unselected package python3-aresponses. 172s Preparing to unpack .../76-python3-aresponses_3.0.0-2_all.deb ... 172s Unpacking python3-aresponses (3.0.0-2) ... 172s Selecting previously unselected package python3-coverage. 172s Preparing to unpack .../77-python3-coverage_7.4.4+dfsg1-0ubuntu3_ppc64el.deb ... 172s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 172s Selecting previously unselected package python3-mypy-extensions. 172s Preparing to unpack .../78-python3-mypy-extensions_1.0.0-1_all.deb ... 172s Unpacking python3-mypy-extensions (1.0.0-1) ... 172s Selecting previously unselected package python3-psutil. 172s Preparing to unpack .../79-python3-psutil_5.9.8-2build3_ppc64el.deb ... 172s Unpacking python3-psutil (5.9.8-2build3) ... 172s Selecting previously unselected package python3-mypy. 172s Preparing to unpack .../80-python3-mypy_1.13.0-2_ppc64el.deb ... 172s Unpacking python3-mypy (1.13.0-2) ... 173s Selecting previously unselected package python3-pip. 173s Preparing to unpack .../81-python3-pip_24.3.1+dfsg-1_all.deb ... 173s Unpacking python3-pip (24.3.1+dfsg-1) ... 173s Selecting previously unselected package libjs-jquery-isonscreen. 173s Preparing to unpack .../82-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 173s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 173s Selecting previously unselected package python3-pytest-cov. 173s Preparing to unpack .../83-python3-pytest-cov_5.0.0-1_all.deb ... 173s Unpacking python3-pytest-cov (5.0.0-1) ... 173s Selecting previously unselected package openstack-pkg-tools. 173s Preparing to unpack .../84-openstack-pkg-tools_123ubuntu2_all.deb ... 173s Unpacking openstack-pkg-tools (123ubuntu2) ... 173s Selecting previously unselected package autopkgtest-satdep. 173s Preparing to unpack .../85-1-autopkgtest-satdep.deb ... 173s Unpacking autopkgtest-satdep (0) ... 173s Setting up libarchive-zip-perl (1.68-1) ... 173s Setting up libdebhelper-perl (13.20ubuntu1) ... 173s Setting up m4 (1.4.19-4build1) ... 173s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 173s Setting up libgomp1:ppc64el (14.2.0-8ubuntu1) ... 173s Setting up libpython3.13-minimal:ppc64el (3.13.0-2) ... 173s Setting up autotools-dev (20220109.1) ... 173s Setting up libquadmath0:ppc64el (14.2.0-8ubuntu1) ... 173s Setting up libmpc3:ppc64el (1.3.1-1build2) ... 173s Setting up autopoint (0.22.5-2) ... 173s Setting up autoconf (2.72-3) ... 173s Setting up libubsan1:ppc64el (14.2.0-8ubuntu1) ... 173s Setting up dwz (0.15-1build6) ... 173s Setting up libasan8:ppc64el (14.2.0-8ubuntu1) ... 173s Setting up debugedit (1:5.1-1) ... 173s Setting up python3.13-minimal (3.13.0-2) ... 174s Setting up libtsan2:ppc64el (14.2.0-8ubuntu1) ... 174s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 174s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 174s Setting up libisl23:ppc64el (0.27-1) ... 174s Setting up libpython3.13-stdlib:ppc64el (3.13.0-2) ... 174s Setting up libcc1-0:ppc64el (14.2.0-8ubuntu1) ... 174s Setting up liblsan0:ppc64el (14.2.0-8ubuntu1) ... 174s Setting up libitm1:ppc64el (14.2.0-8ubuntu1) ... 174s Setting up libpython3-stdlib:ppc64el (3.12.7-1) ... 174s Setting up automake (1:1.16.5-1.3ubuntu1) ... 174s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 174s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 174s Setting up gettext (0.22.5-2) ... 174s Setting up python3.13 (3.13.0-2) ... 175s Setting up python3 (3.12.7-1) ... 176s Setting up python3-wheel (0.45.0-1) ... 176s Setting up python3-psutil (5.9.8-2build3) ... 177s Setting up python3-multidict (6.1.0-1build1) ... 177s Setting up python3-frozenlist (1.5.0-1build1) ... 177s Setting up python3-aiosignal (1.3.1-1) ... 177s Setting up intltool-debian (0.35.0+20060710.6) ... 177s Setting up python3-async-timeout (5.0.1-1) ... 177s Setting up python3-packaging (24.2-1) ... 178s Setting up python3-pyproject-hooks (1.2.0-1) ... 178s Setting up libjs-jquery-metadata (12-4) ... 178s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 178s Setting up cpp-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 178s Setting up python3-aiohappyeyeballs (2.4.3-1) ... 178s Setting up python3-pip (24.3.1+dfsg-1) ... 180s Setting up python3-toml (0.10.2-1) ... 180s Setting up python3-installer (0.7.0+dfsg1-3) ... 181s Setting up cpp-14 (14.2.0-8ubuntu1) ... 181s Setting up python3-pluggy (1.5.0-1) ... 181s Setting up dh-strip-nondeterminism (1.14.0-1) ... 181s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 181s Setting up python3-backoff (2.2.1-2) ... 181s Setting up libgcc-14-dev:ppc64el (14.2.0-8ubuntu1) ... 181s Setting up python3-build (1.2.2-1) ... 181s Setting up libstdc++-14-dev:ppc64el (14.2.0-8ubuntu1) ... 181s Setting up python3-yarl (1.13.1-1build1) ... 181s Setting up cpp-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 181s Setting up gcc-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 181s Setting up dh-python (6.20241024) ... 182s Setting up python3-iniconfig (1.1.1-2) ... 182s Setting up python3-async-generator (1.10-4) ... 182s Setting up g++-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 182s Setting up pybuild-plugin-pyproject (6.20241024) ... 182s Setting up python3-pytest (8.3.3-1) ... 183s Setting up python3-mypy-extensions (1.0.0-1) ... 183s Setting up po-debconf (1.0.21+nmu1) ... 183s Setting up python3-aiohttp (3.10.10-2build1) ... 183s Setting up python3-all (3.12.7-1) ... 183s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 184s Setting up python3-pytest-cov (5.0.0-1) ... 184s Setting up python3-aiomodernforms (0.1.8-2) ... 184s Setting up openstack-pkg-tools (123ubuntu2) ... 184s Setting up gcc-14 (14.2.0-8ubuntu1) ... 184s Setting up gcc-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 184s Setting up python3-mypy (1.13.0-2) ... 187s Setting up python3-pytest-asyncio (0.24.0a1-1) ... 187s Setting up cpp (4:14.1.0-2ubuntu1) ... 187s Setting up g++-14 (14.2.0-8ubuntu1) ... 187s Setting up g++-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 187s Setting up python3-aresponses (3.0.0-2) ... 187s Setting up libtool (2.4.7-8) ... 187s Setting up gcc (4:14.1.0-2ubuntu1) ... 187s Setting up dh-autoreconf (20) ... 187s Setting up g++ (4:14.1.0-2ubuntu1) ... 187s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 187s Setting up build-essential (12.10ubuntu1) ... 187s Setting up debhelper (13.20ubuntu1) ... 187s Setting up autopkgtest-satdep (0) ... 187s Processing triggers for systemd (256.5-2ubuntu4) ... 187s Processing triggers for man-db (2.13.0-1) ... 189s Processing triggers for install-info (7.1.1-1) ... 189s Processing triggers for libc-bin (2.40-1ubuntu3) ... 192s (Reading database ... 80205 files and directories currently installed.) 192s Removing autopkgtest-satdep (0) ... 193s autopkgtest [22:00:41]: test pybuild-autopkgtest: pybuild-autopkgtest 193s autopkgtest [22:00:41]: test pybuild-autopkgtest: [----------------------- 193s make: pyversions: No such file or directory 193s py3versions: no X-Python3-Version in control file, using supported versions 193s pybuild-autopkgtest 194s I: pybuild base:311: cd /tmp/autopkgtest.Z1Lwnk/autopkgtest_tmp/build; python3.13 -m pytest -v 194s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 194s 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" 194s 194s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 194s ============================= test session starts ============================== 194s platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 194s cachedir: .pytest_cache 194s rootdir: /tmp/autopkgtest.Z1Lwnk/autopkgtest_tmp/build 194s configfile: pytest.ini 194s testpaths: tests 194s plugins: aresponses-3.0.0, cov-5.0.0, asyncio-0.24.0a1, typeguard-4.4.1 194s asyncio: mode=Mode.STRICT, default_loop_scope=None 194s collecting ... collected 19 items 194s 194s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 194s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 194s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 194s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 194s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 195s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 195s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 195s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 195s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 195s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 195s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 195s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 195s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 195s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 195s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 195s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 195s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 195s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 195s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 195s 195s =================================== FAILURES =================================== 195s ______________________________ test_basic_status _______________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_basic_status(aresponses): 195s """Test JSON response is handled correctly.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add( 195s "fan.local", 195s "/mf", 195s "POST", 195s response=basic_response, 195s repeat=2, 195s ) 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:79: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s _________________________________ test_command _________________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_command(aresponses): 195s """Test to make sure setting lights works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_LIGHT_POWER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:108: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s __________________________________ test_light __________________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_light(aresponses): 195s """Test to make sure setting lights works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_LIGHT_POWER in data 195s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 195s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 195s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 195s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 195s ] 195s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:143: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s __________________________ test_light_sleep_datetime ___________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_light_sleep_datetime(aresponses): 195s """Test to make sure setting light sleep works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s sleep_time = datetime.now() + timedelta(minutes=2) 195s > await device.light( 195s sleep=sleep_time, 195s ) 195s 195s tests/test_aiomodernforms.py:180: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 195s await self.request(commands=commands) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 195s await self.update() 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s _____________________________ test_light_sleep_int _____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_light_sleep_int(aresponses): 195s """Test to make sure setting light sleep works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s sleep_time = datetime.now() + timedelta(seconds=120) 195s > await device.light( 195s sleep=120, 195s ) 195s 195s tests/test_aiomodernforms.py:209: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 195s await self.request(commands=commands) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 195s await self.update() 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ____________________________ test_light_sleep_clear ____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_light_sleep_clear(aresponses): 195s """Test to make sure setting light sleep works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s # check to clear timer 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.light( 195s sleep=0, 195s ) 195s 195s tests/test_aiomodernforms.py:238: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 195s await self.request(commands=commands) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 195s await self.update() 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ___________________________________ test_fan ___________________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_fan(aresponses): 195s """Test to make sure setting fan works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_FAN_POWER in data 195s assert aiomodernforms.COMMAND_FAN_SPEED in data 195s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 195s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 195s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 195s modified_response[STATE_FAN_DIRECTION] = data[ 195s aiomodernforms.COMMAND_FAN_DIRECTION 195s ] 195s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:274: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ___________________________ test_fan_sleep_datetime ____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_fan_sleep_datetime(aresponses): 195s """Test to make sure setting light sleep works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s sleep_time = datetime.now() + timedelta(minutes=2) 195s > await device.fan( 195s sleep=sleep_time, 195s ) 195s 195s tests/test_aiomodernforms.py:311: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 195s await self.request(commands=commands) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 195s await self.update() 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ______________________________ test_fan_sleep_int ______________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_fan_sleep_int(aresponses): 195s """Test to make sure setting light sleep works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s sleep_time = datetime.now() + timedelta(seconds=120) 195s > await device.fan( 195s sleep=120, 195s ) 195s 195s tests/test_aiomodernforms.py:340: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 195s await self.request(commands=commands) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 195s await self.update() 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s _____________________________ test_fan_sleep_clear _____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_fan_sleep_clear(aresponses): 195s """Test to make sure setting light sleep works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 195s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s # check to clear timer 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.fan( 195s sleep=0, 195s ) 195s 195s tests/test_aiomodernforms.py:369: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 195s await self.request(commands=commands) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 195s await self.update() 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s __________________________________ test_away ___________________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_away(aresponses): 195s """Test to make sure setting away mode works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_AWAY_MODE in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:395: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ____________________________ test_adaptive_learning ____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_adaptive_learning(aresponses): 195s """Test to make sure setting adaptive learning mode works.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async def evaluate_request(request): 195s data = await request.json() 195s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 195s modified_response = basic_response.copy() 195s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 195s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 195s ] 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text=json.dumps(modified_response), 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:422: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s _____________________________ test_invalid_setting _____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_invalid_setting(aresponses): 195s """Test to make sure setting invalid settings are rejected.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:434: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ____________________________ test_connection_error _____________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_connection_error(aresponses): 195s """Test to make validate proper connection error handling.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:502: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s ______________________________ test_server_error _______________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_server_error(aresponses): 195s """Test to make validate proper server error handling.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add( 195s "fan.local", 195s "/mf", 195s "POST", 195s response=aresponses.Response(text="error", status=500), 195s ) 195s 195s with pytest.raises(aiomodernforms.ModernFormsError): 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:518: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s _________________________________ test_reboot __________________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_reboot(aresponses): 195s """Test how reboot is handled.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 195s 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:528: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s _____________________________ test_empty_response ______________________________ 195s 195s aresponses = 195s 195s @pytest.mark.asyncio 195s async def test_empty_response(aresponses): 195s """Test for an Empty Response.""" 195s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 195s 195s async def send_empty_state(request): 195s await request.json() 195s return aresponses.Response( 195s status=200, 195s content_type="application/json", 195s text="{}", 195s ) 195s 195s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 195s with pytest.raises(ModernFormsConnectionError): 195s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 195s > await device.update() 195s 195s tests/test_aiomodernforms.py:568: 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 195s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 195s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 195s ret = await target(*args, **kwargs) 195s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 195s 195s self = 195s commands = {'queryStaticShadowData': True} 195s 195s @backoff.on_exception( 195s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 195s ) 195s async def _request(self, commands: Optional[dict] = None) -> Any: 195s """Handle a request to a Modern Forms Fan device.""" 195s scheme = "https" if self._tls else "http" 195s url = URL.build( 195s scheme=scheme, 195s host=self._host, 195s port=self._port, 195s path=self._base_path, 195s ) 195s 195s auth = None 195s if self._username and self._password: 195s auth = aiohttp.BasicAuth(self._username, self._password) 195s 195s headers = { 195s "User-Agent": self._user_agent, 195s "Accept": "application/json", 195s } 195s 195s if self._session is None: 195s self._session = aiohttp.ClientSession() 195s self._close_session = True 195s 195s # If updating the state, always request for a state response 195s if commands is None: 195s commands = {COMMAND_QUERY_STATUS: True} 195s 195s try: 195s > with async_timeout.timeout(self._request_timeout): 195s E TypeError: 'Timeout' object does not support the context manager protocol 195s 195s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 195s =========================== short test summary info ============================ 195s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 195s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 195s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 195s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 195s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 195s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 195s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 195s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 195s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 195s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 195s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 195s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 195s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 195s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 195s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 195s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 195s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 195s ========================= 17 failed, 2 passed in 0.55s ========================= 195s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.Z1Lwnk/autopkgtest_tmp/build; python3.13 -m pytest -v 195s I: pybuild base:311: cd /tmp/autopkgtest.Z1Lwnk/autopkgtest_tmp/build; python3.12 -m pytest -v 195s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 195s 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" 195s 195s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 195s ============================= test session starts ============================== 195s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 195s cachedir: .pytest_cache 195s rootdir: /tmp/autopkgtest.Z1Lwnk/autopkgtest_tmp/build 195s configfile: pytest.ini 195s testpaths: tests 195s plugins: aresponses-3.0.0, cov-5.0.0, asyncio-0.24.0a1, typeguard-4.4.1 195s asyncio: mode=Mode.STRICT, default_loop_scope=None 195s collecting ... collected 19 items 195s 195s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 195s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 195s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 195s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 196s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 196s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 196s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 196s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 196s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 196s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 196s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 196s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 196s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 196s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 196s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 196s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 196s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 196s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 196s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 196s 196s =================================== FAILURES =================================== 196s ______________________________ test_basic_status _______________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_basic_status(aresponses): 196s """Test JSON response is handled correctly.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add( 196s "fan.local", 196s "/mf", 196s "POST", 196s response=basic_response, 196s repeat=2, 196s ) 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:79: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s _________________________________ test_command _________________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_command(aresponses): 196s """Test to make sure setting lights works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_LIGHT_POWER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:108: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s __________________________________ test_light __________________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_light(aresponses): 196s """Test to make sure setting lights works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_LIGHT_POWER in data 196s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 196s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 196s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 196s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 196s ] 196s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:143: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s __________________________ test_light_sleep_datetime ___________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_light_sleep_datetime(aresponses): 196s """Test to make sure setting light sleep works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s sleep_time = datetime.now() + timedelta(minutes=2) 196s > await device.light( 196s sleep=sleep_time, 196s ) 196s 196s tests/test_aiomodernforms.py:180: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 196s await self.request(commands=commands) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 196s await self.update() 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s _____________________________ test_light_sleep_int _____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_light_sleep_int(aresponses): 196s """Test to make sure setting light sleep works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s sleep_time = datetime.now() + timedelta(seconds=120) 196s > await device.light( 196s sleep=120, 196s ) 196s 196s tests/test_aiomodernforms.py:209: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 196s await self.request(commands=commands) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 196s await self.update() 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ____________________________ test_light_sleep_clear ____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_light_sleep_clear(aresponses): 196s """Test to make sure setting light sleep works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s # check to clear timer 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.light( 196s sleep=0, 196s ) 196s 196s tests/test_aiomodernforms.py:238: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 196s await self.request(commands=commands) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 196s await self.update() 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ___________________________________ test_fan ___________________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_fan(aresponses): 196s """Test to make sure setting fan works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_FAN_POWER in data 196s assert aiomodernforms.COMMAND_FAN_SPEED in data 196s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 196s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 196s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 196s modified_response[STATE_FAN_DIRECTION] = data[ 196s aiomodernforms.COMMAND_FAN_DIRECTION 196s ] 196s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:274: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ___________________________ test_fan_sleep_datetime ____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_fan_sleep_datetime(aresponses): 196s """Test to make sure setting light sleep works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s sleep_time = datetime.now() + timedelta(minutes=2) 196s > await device.fan( 196s sleep=sleep_time, 196s ) 196s 196s tests/test_aiomodernforms.py:311: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 196s await self.request(commands=commands) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 196s await self.update() 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ______________________________ test_fan_sleep_int ______________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_fan_sleep_int(aresponses): 196s """Test to make sure setting light sleep works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s sleep_time = datetime.now() + timedelta(seconds=120) 196s > await device.fan( 196s sleep=120, 196s ) 196s 196s tests/test_aiomodernforms.py:340: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 196s await self.request(commands=commands) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 196s await self.update() 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s _____________________________ test_fan_sleep_clear _____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_fan_sleep_clear(aresponses): 196s """Test to make sure setting light sleep works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 196s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s # check to clear timer 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.fan( 196s sleep=0, 196s ) 196s 196s tests/test_aiomodernforms.py:369: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 196s await self.request(commands=commands) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 196s await self.update() 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s __________________________________ test_away ___________________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_away(aresponses): 196s """Test to make sure setting away mode works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_AWAY_MODE in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:395: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ____________________________ test_adaptive_learning ____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_adaptive_learning(aresponses): 196s """Test to make sure setting adaptive learning mode works.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async def evaluate_request(request): 196s data = await request.json() 196s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 196s modified_response = basic_response.copy() 196s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 196s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 196s ] 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text=json.dumps(modified_response), 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:422: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s _____________________________ test_invalid_setting _____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_invalid_setting(aresponses): 196s """Test to make sure setting invalid settings are rejected.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:434: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ____________________________ test_connection_error _____________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_connection_error(aresponses): 196s """Test to make validate proper connection error handling.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:502: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s ______________________________ test_server_error _______________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_server_error(aresponses): 196s """Test to make validate proper server error handling.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add( 196s "fan.local", 196s "/mf", 196s "POST", 196s response=aresponses.Response(text="error", status=500), 196s ) 196s 196s with pytest.raises(aiomodernforms.ModernFormsError): 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:518: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s _________________________________ test_reboot __________________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_reboot(aresponses): 196s """Test how reboot is handled.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 196s 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:528: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s _____________________________ test_empty_response ______________________________ 196s 196s aresponses = 196s 196s @pytest.mark.asyncio 196s async def test_empty_response(aresponses): 196s """Test for an Empty Response.""" 196s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 196s 196s async def send_empty_state(request): 196s await request.json() 196s return aresponses.Response( 196s status=200, 196s content_type="application/json", 196s text="{}", 196s ) 196s 196s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 196s with pytest.raises(ModernFormsConnectionError): 196s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 196s > await device.update() 196s 196s tests/test_aiomodernforms.py:568: 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 196s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 196s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 196s ret = await target(*args, **kwargs) 196s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 196s 196s self = 196s commands = {'queryStaticShadowData': True} 196s 196s @backoff.on_exception( 196s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 196s ) 196s async def _request(self, commands: Optional[dict] = None) -> Any: 196s """Handle a request to a Modern Forms Fan device.""" 196s scheme = "https" if self._tls else "http" 196s url = URL.build( 196s scheme=scheme, 196s host=self._host, 196s port=self._port, 196s path=self._base_path, 196s ) 196s 196s auth = None 196s if self._username and self._password: 196s auth = aiohttp.BasicAuth(self._username, self._password) 196s 196s headers = { 196s "User-Agent": self._user_agent, 196s "Accept": "application/json", 196s } 196s 196s if self._session is None: 196s self._session = aiohttp.ClientSession() 196s self._close_session = True 196s 196s # If updating the state, always request for a state response 196s if commands is None: 196s commands = {COMMAND_QUERY_STATUS: True} 196s 196s try: 196s > with async_timeout.timeout(self._request_timeout): 196s E TypeError: 'Timeout' object does not support the context manager protocol 196s 196s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 196s =========================== short test summary info ============================ 196s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 196s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 196s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 196s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 196s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 196s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 196s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 196s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 196s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 196s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 196s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 196s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 196s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 196s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 196s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 196s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 196s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 196s ========================= 17 failed, 2 passed in 0.57s ========================= 196s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.Z1Lwnk/autopkgtest_tmp/build; python3.12 -m pytest -v 196s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 196s make: *** [/tmp/NKHhhai1ry/run:4: pybuild-autopkgtest] Error 25 196s pybuild-autopkgtest: error: /tmp/NKHhhai1ry/run pybuild-autopkgtest returned exit code 2 196s autopkgtest [22:00:44]: test pybuild-autopkgtest: -----------------------] 197s autopkgtest [22:00:45]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 197s pybuild-autopkgtest FAIL non-zero exit status 25 197s autopkgtest [22:00:45]: @@@@@@@@@@@@@@@@@@@@ summary 197s pybuild-autopkgtest FAIL non-zero exit status 25 209s virt: nova [W] Using flock in prodstack6-ppc64el 209s virt: Creating nova instance adt-plucky-ppc64el-python-aiomodernforms-20241123-214124-juju-7f2275-prod-proposed-migration-environment-2-e112f787-b8d2-4493-b588-447138e79b3c from image adt/ubuntu-plucky-ppc64el-server-20241119.img (UUID dcc6a44c-21fb-45bb-821a-d64a8784c175)...