14s autopkgtest [20:32:28]: starting date and time: 2024-11-23 20:32:28+0000 14s autopkgtest [20:32:28]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 14s autopkgtest [20:32:28]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.x6rqwpz5/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-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-1.secgroup --name adt-plucky-s390x-python-aiomodernforms-20241123-203145-juju-7f2275-prod-proposed-migration-environment-15-1cc769b8-f391-4922-b50d-3c5e3467ce85 --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-s390x -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/ 143s autopkgtest [20:34:37]: testbed dpkg architecture: s390x 143s autopkgtest [20:34:37]: testbed apt version: 2.9.8 143s autopkgtest [20:34:37]: @@@@@@@@@@@@@@@@@@@@ test bed setup 144s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 144s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [930 kB] 144s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [13.6 kB] 144s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [9704 B] 144s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [54.8 kB] 144s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [70.6 kB] 144s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/restricted s390x Packages [756 B] 144s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [760 kB] 144s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [6452 B] 144s Fetched 1920 kB in 1s (2508 kB/s) 144s Reading package lists... 147s Reading package lists... 147s Building dependency tree... 147s Reading state information... 147s Calculating upgrade... 147s The following package was automatically installed and is no longer required: 147s libsgutils2-1.46-2 147s Use 'sudo apt autoremove' to remove it. 147s The following NEW packages will be installed: 147s libsgutils2-1.48 147s The following packages will be upgraded: 147s bash bpftrace curl debconf debconf-i18n distro-info gir1.2-girepository-2.0 147s gir1.2-glib-2.0 hostname libaudit-common libaudit1 libcurl3t64-gnutls 147s libcurl4t64 libgirepository-1.0-1 libglib2.0-0t64 libglib2.0-data 147s libpam-modules libpam-modules-bin libpam-runtime libpam0g libplymouth5 147s libselinux1 libsemanage-common libsemanage2 linux-base lxd-installer 147s openssh-client openssh-server openssh-sftp-server plymouth 147s plymouth-theme-ubuntu-text python3-blinker python3-debconf 147s python3-jsonschema-specifications python3-rpds-py python3-yaml sg3-utils 147s sg3-utils-udev vim-common vim-tiny xxd 147s 41 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 147s Need to get 11.3 MB of archives. 147s After this operation, 2418 kB of additional disk space will be used. 147s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x bash s390x 5.2.32-1ubuntu2 [845 kB] 148s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x hostname s390x 3.25 [11.2 kB] 148s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x libaudit-common all 1:4.0.2-2ubuntu1 [6578 B] 148s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x libaudit1 s390x 1:4.0.2-2ubuntu1 [52.5 kB] 148s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x debconf-i18n all 1.5.87ubuntu1 [204 kB] 148s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x python3-debconf all 1.5.87ubuntu1 [4156 B] 148s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x debconf all 1.5.87ubuntu1 [124 kB] 148s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libpam0g s390x 1.5.3-7ubuntu4 [70.0 kB] 148s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x libselinux1 s390x 3.7-3ubuntu1 [85.2 kB] 148s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x libpam-modules-bin s390x 1.5.3-7ubuntu4 [56.2 kB] 148s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x libpam-modules s390x 1.5.3-7ubuntu4 [294 kB] 148s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x openssh-sftp-server s390x 1:9.9p1-3ubuntu2 [38.2 kB] 148s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x openssh-server s390x 1:9.9p1-3ubuntu2 [552 kB] 148s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x openssh-client s390x 1:9.9p1-3ubuntu2 [955 kB] 148s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x libpam-runtime all 1.5.3-7ubuntu4 [40.8 kB] 149s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x libsemanage-common all 3.7-2build1 [7186 B] 149s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x libsemanage2 s390x 3.7-2build1 [97.1 kB] 149s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x distro-info s390x 1.12 [20.0 kB] 149s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x gir1.2-girepository-2.0 s390x 1.82.0-2 [25.0 kB] 149s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x gir1.2-glib-2.0 s390x 2.82.2-3 [180 kB] 149s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x libglib2.0-0t64 s390x 2.82.2-3 [1575 kB] 149s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x libgirepository-1.0-1 s390x 1.82.0-2 [84.9 kB] 149s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x libglib2.0-data all 2.82.2-3 [51.7 kB] 149s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x python3-yaml s390x 6.0.2-1build1 [188 kB] 149s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x vim-tiny s390x 2:9.1.0861-1ubuntu1 [664 kB] 149s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x vim-common all 2:9.1.0861-1ubuntu1 [395 kB] 149s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x xxd s390x 2:9.1.0861-1ubuntu1 [66.6 kB] 149s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x libplymouth5 s390x 24.004.60-2ubuntu3 [150 kB] 149s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x plymouth-theme-ubuntu-text s390x 24.004.60-2ubuntu3 [10.1 kB] 149s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x plymouth s390x 24.004.60-2ubuntu3 [144 kB] 149s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x bpftrace s390x 0.21.2-2ubuntu3 [1718 kB] 150s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x curl s390x 8.9.1-2ubuntu3 [241 kB] 150s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x libcurl4t64 s390x 8.9.1-2ubuntu3 [386 kB] 150s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x libcurl3t64-gnutls s390x 8.9.1-2ubuntu3 [379 kB] 150s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x libsgutils2-1.48 s390x 1.48-0ubuntu1 [120 kB] 150s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x linux-base all 4.10.1ubuntu1 [34.8 kB] 150s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x lxd-installer all 10 [5264 B] 150s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x python3-blinker all 1.9.0-1 [10.7 kB] 150s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x python3-rpds-py s390x 0.21.0-2ubuntu1 [368 kB] 150s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x python3-jsonschema-specifications all 2023.12.1-2 [9116 B] 150s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x sg3-utils s390x 1.48-0ubuntu1 [1027 kB] 150s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x sg3-utils-udev all 1.48-0ubuntu1 [6608 B] 150s Preconfiguring packages ... 150s Fetched 11.3 MB in 3s (3502 kB/s) 150s (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 ... 55541 files and directories currently installed.) 150s Preparing to unpack .../bash_5.2.32-1ubuntu2_s390x.deb ... 150s Unpacking bash (5.2.32-1ubuntu2) over (5.2.32-1ubuntu1) ... 150s Setting up bash (5.2.32-1ubuntu2) ... 150s 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 150s (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 ... 55541 files and directories currently installed.) 150s Preparing to unpack .../hostname_3.25_s390x.deb ... 150s Unpacking hostname (3.25) over (3.23+nmu2ubuntu2) ... 150s Setting up hostname (3.25) ... 150s (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 ... 55541 files and directories currently installed.) 150s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu1_all.deb ... 150s Unpacking libaudit-common (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 150s Setting up libaudit-common (1:4.0.2-2ubuntu1) ... 150s (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 ... 55541 files and directories currently installed.) 150s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu1_s390x.deb ... 150s Unpacking libaudit1:s390x (1:4.0.2-2ubuntu1) over (1:4.0.1-1ubuntu2) ... 150s Setting up libaudit1:s390x (1:4.0.2-2ubuntu1) ... 150s (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 ... 55541 files and directories currently installed.) 150s Preparing to unpack .../debconf-i18n_1.5.87ubuntu1_all.deb ... 150s Unpacking debconf-i18n (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 151s Preparing to unpack .../python3-debconf_1.5.87ubuntu1_all.deb ... 151s Unpacking python3-debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 151s Preparing to unpack .../debconf_1.5.87ubuntu1_all.deb ... 151s Unpacking debconf (1.5.87ubuntu1) over (1.5.86ubuntu1) ... 151s Setting up debconf (1.5.87ubuntu1) ... 151s (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 ... 55541 files and directories currently installed.) 151s Preparing to unpack .../libpam0g_1.5.3-7ubuntu4_s390x.deb ... 151s Unpacking libpam0g:s390x (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 151s Setting up libpam0g:s390x (1.5.3-7ubuntu4) ... 151s (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 ... 55541 files and directories currently installed.) 151s Preparing to unpack .../libselinux1_3.7-3ubuntu1_s390x.deb ... 151s Unpacking libselinux1:s390x (3.7-3ubuntu1) over (3.5-2ubuntu5) ... 151s Setting up libselinux1:s390x (3.7-3ubuntu1) ... 151s (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 ... 55541 files and directories currently installed.) 151s Preparing to unpack .../libpam-modules-bin_1.5.3-7ubuntu4_s390x.deb ... 151s Unpacking libpam-modules-bin (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 151s Setting up libpam-modules-bin (1.5.3-7ubuntu4) ... 151s pam_namespace.service is a disabled or a static unit not running, not starting it. 151s (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 ... 55541 files and directories currently installed.) 151s Preparing to unpack .../libpam-modules_1.5.3-7ubuntu4_s390x.deb ... 151s Unpacking libpam-modules:s390x (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 151s Setting up libpam-modules:s390x (1.5.3-7ubuntu4) ... 151s (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 ... 55541 files and directories currently installed.) 151s Preparing to unpack .../openssh-sftp-server_1%3a9.9p1-3ubuntu2_s390x.deb ... 151s Unpacking openssh-sftp-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 151s Preparing to unpack .../openssh-server_1%3a9.9p1-3ubuntu2_s390x.deb ... 151s Unpacking openssh-server (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 151s Preparing to unpack .../openssh-client_1%3a9.9p1-3ubuntu2_s390x.deb ... 151s Unpacking openssh-client (1:9.9p1-3ubuntu2) over (1:9.7p1-7ubuntu5) ... 151s Preparing to unpack .../libpam-runtime_1.5.3-7ubuntu4_all.deb ... 151s Unpacking libpam-runtime (1.5.3-7ubuntu4) over (1.5.3-7ubuntu2) ... 151s Setting up libpam-runtime (1.5.3-7ubuntu4) ... 151s (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 ... 55543 files and directories currently installed.) 151s Preparing to unpack .../libsemanage-common_3.7-2build1_all.deb ... 151s Unpacking libsemanage-common (3.7-2build1) over (3.5-1build6) ... 151s Setting up libsemanage-common (3.7-2build1) ... 151s (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 ... 55542 files and directories currently installed.) 151s Preparing to unpack .../libsemanage2_3.7-2build1_s390x.deb ... 151s Unpacking libsemanage2:s390x (3.7-2build1) over (3.5-1build6) ... 152s Setting up libsemanage2:s390x (3.7-2build1) ... 152s (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 ... 55542 files and directories currently installed.) 152s Preparing to unpack .../00-distro-info_1.12_s390x.deb ... 152s Unpacking distro-info (1.12) over (1.9) ... 152s Preparing to unpack .../01-gir1.2-girepository-2.0_1.82.0-2_s390x.deb ... 152s Unpacking gir1.2-girepository-2.0:s390x (1.82.0-2) over (1.80.1-4) ... 152s Preparing to unpack .../02-gir1.2-glib-2.0_2.82.2-3_s390x.deb ... 152s Unpacking gir1.2-glib-2.0:s390x (2.82.2-3) over (2.82.1-0ubuntu1) ... 152s Preparing to unpack .../03-libglib2.0-0t64_2.82.2-3_s390x.deb ... 152s Unpacking libglib2.0-0t64:s390x (2.82.2-3) over (2.82.1-0ubuntu1) ... 152s Preparing to unpack .../04-libgirepository-1.0-1_1.82.0-2_s390x.deb ... 152s Unpacking libgirepository-1.0-1:s390x (1.82.0-2) over (1.80.1-4) ... 152s Preparing to unpack .../05-libglib2.0-data_2.82.2-3_all.deb ... 152s Unpacking libglib2.0-data (2.82.2-3) over (2.82.1-0ubuntu1) ... 152s Preparing to unpack .../06-python3-yaml_6.0.2-1build1_s390x.deb ... 152s Unpacking python3-yaml (6.0.2-1build1) over (6.0.2-1) ... 152s Preparing to unpack .../07-vim-tiny_2%3a9.1.0861-1ubuntu1_s390x.deb ... 152s Unpacking vim-tiny (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 152s Preparing to unpack .../08-vim-common_2%3a9.1.0861-1ubuntu1_all.deb ... 152s Unpacking vim-common (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 152s Preparing to unpack .../09-xxd_2%3a9.1.0861-1ubuntu1_s390x.deb ... 152s Unpacking xxd (2:9.1.0861-1ubuntu1) over (2:9.1.0777-1ubuntu1) ... 152s Preparing to unpack .../10-libplymouth5_24.004.60-2ubuntu3_s390x.deb ... 152s Unpacking libplymouth5:s390x (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 152s Preparing to unpack .../11-plymouth-theme-ubuntu-text_24.004.60-2ubuntu3_s390x.deb ... 152s Unpacking plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 152s Preparing to unpack .../12-plymouth_24.004.60-2ubuntu3_s390x.deb ... 152s Unpacking plymouth (24.004.60-2ubuntu3) over (24.004.60-1ubuntu11) ... 152s Preparing to unpack .../13-bpftrace_0.21.2-2ubuntu3_s390x.deb ... 152s Unpacking bpftrace (0.21.2-2ubuntu3) over (0.21.2-2ubuntu2) ... 152s Preparing to unpack .../14-curl_8.9.1-2ubuntu3_s390x.deb ... 152s Unpacking curl (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 152s Preparing to unpack .../15-libcurl4t64_8.9.1-2ubuntu3_s390x.deb ... 152s Unpacking libcurl4t64:s390x (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 152s Preparing to unpack .../16-libcurl3t64-gnutls_8.9.1-2ubuntu3_s390x.deb ... 152s Unpacking libcurl3t64-gnutls:s390x (8.9.1-2ubuntu3) over (8.9.1-2ubuntu2) ... 152s Selecting previously unselected package libsgutils2-1.48:s390x. 152s Preparing to unpack .../17-libsgutils2-1.48_1.48-0ubuntu1_s390x.deb ... 152s Unpacking libsgutils2-1.48:s390x (1.48-0ubuntu1) ... 152s Preparing to unpack .../18-linux-base_4.10.1ubuntu1_all.deb ... 152s Unpacking linux-base (4.10.1ubuntu1) over (4.5ubuntu9) ... 152s Preparing to unpack .../19-lxd-installer_10_all.deb ... 152s Unpacking lxd-installer (10) over (9) ... 152s Preparing to unpack .../20-python3-blinker_1.9.0-1_all.deb ... 152s Unpacking python3-blinker (1.9.0-1) over (1.8.2-1) ... 152s Preparing to unpack .../21-python3-rpds-py_0.21.0-2ubuntu1_s390x.deb ... 152s Unpacking python3-rpds-py (0.21.0-2ubuntu1) over (0.20.0-0ubuntu3) ... 152s Preparing to unpack .../22-python3-jsonschema-specifications_2023.12.1-2_all.deb ... 152s Unpacking python3-jsonschema-specifications (2023.12.1-2) over (2023.12.1-1ubuntu1) ... 152s Preparing to unpack .../23-sg3-utils_1.48-0ubuntu1_s390x.deb ... 152s Unpacking sg3-utils (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 152s Preparing to unpack .../24-sg3-utils-udev_1.48-0ubuntu1_all.deb ... 152s Unpacking sg3-utils-udev (1.48-0ubuntu1) over (1.46-3ubuntu5) ... 152s Setting up distro-info (1.12) ... 152s Setting up linux-base (4.10.1ubuntu1) ... 152s Setting up libcurl4t64:s390x (8.9.1-2ubuntu3) ... 152s Setting up bpftrace (0.21.2-2ubuntu3) ... 152s Setting up openssh-client (1:9.9p1-3ubuntu2) ... 152s Setting up python3-debconf (1.5.87ubuntu1) ... 152s Setting up libcurl3t64-gnutls:s390x (8.9.1-2ubuntu3) ... 152s Setting up libsgutils2-1.48:s390x (1.48-0ubuntu1) ... 152s Setting up python3-yaml (6.0.2-1build1) ... 152s Setting up debconf-i18n (1.5.87ubuntu1) ... 152s Setting up xxd (2:9.1.0861-1ubuntu1) ... 152s Setting up libglib2.0-0t64:s390x (2.82.2-3) ... 152s No schema files found: doing nothing. 152s Setting up libglib2.0-data (2.82.2-3) ... 152s Setting up vim-common (2:9.1.0861-1ubuntu1) ... 152s Setting up gir1.2-glib-2.0:s390x (2.82.2-3) ... 152s Setting up lxd-installer (10) ... 153s Setting up python3-rpds-py (0.21.0-2ubuntu1) ... 153s Setting up libplymouth5:s390x (24.004.60-2ubuntu3) ... 153s Setting up libgirepository-1.0-1:s390x (1.82.0-2) ... 153s Setting up curl (8.9.1-2ubuntu3) ... 153s Setting up python3-jsonschema-specifications (2023.12.1-2) ... 153s Setting up sg3-utils (1.48-0ubuntu1) ... 153s Setting up python3-blinker (1.9.0-1) ... 153s Setting up openssh-sftp-server (1:9.9p1-3ubuntu2) ... 153s Setting up openssh-server (1:9.9p1-3ubuntu2) ... 153s Installing new version of config file /etc/ssh/moduli ... 153s Replacing config file /etc/ssh/sshd_config with new version 154s Setting up plymouth (24.004.60-2ubuntu3) ... 154s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 154s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 156s Using config file '/etc/zipl.conf' 156s Building bootmap in '/boot' 156s Adding IPL section 'ubuntu' (default) 156s Preparing boot device for LD-IPL: vda (0000). 156s Done. 156s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 156s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 156s Setting up vim-tiny (2:9.1.0861-1ubuntu1) ... 156s Setting up sg3-utils-udev (1.48-0ubuntu1) ... 156s update-initramfs: deferring update (trigger activated) 156s Setting up plymouth-theme-ubuntu-text (24.004.60-2ubuntu3) ... 156s update-initramfs: deferring update (trigger activated) 156s Setting up gir1.2-girepository-2.0:s390x (1.82.0-2) ... 156s Processing triggers for install-info (7.1.1-1) ... 156s Processing triggers for initramfs-tools (0.142ubuntu35) ... 156s update-initramfs: Generating /boot/initrd.img-6.11.0-8-generic 156s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 158s Using config file '/etc/zipl.conf' 158s Building bootmap in '/boot' 158s Adding IPL section 'ubuntu' (default) 158s Preparing boot device for LD-IPL: vda (0000). 158s Done. 158s Processing triggers for libc-bin (2.40-1ubuntu3) ... 158s Processing triggers for ufw (0.36.2-8) ... 158s Processing triggers for man-db (2.13.0-1) ... 159s Processing triggers for debianutils (5.21) ... 159s Reading package lists... 159s Building dependency tree... 159s Reading state information... 159s The following packages will be REMOVED: 159s libsgutils2-1.46-2* 159s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 159s After this operation, 294 kB disk space will be freed. 160s (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 ... 55573 files and directories currently installed.) 160s Removing libsgutils2-1.46-2:s390x (1.46-3ubuntu5) ... 160s Processing triggers for libc-bin (2.40-1ubuntu3) ... 160s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 160s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 160s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 160s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 161s Reading package lists... 161s Reading package lists... 161s Building dependency tree... 161s Reading state information... 161s Calculating upgrade... 161s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 161s Reading package lists... 161s Building dependency tree... 161s Reading state information... 161s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 162s autopkgtest [20:34:56]: rebooting testbed after setup commands that affected boot 166s autopkgtest-virt-ssh: WARNING: ssh connection failed. Retrying in 3 seconds... 181s autopkgtest [20:35:15]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 12:49:35 UTC 2024 183s autopkgtest [20:35:17]: @@@@@@@@@@@@@@@@@@@@ apt-source python-aiomodernforms 185s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (dsc) [2407 B] 185s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (tar) [34.5 kB] 185s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-aiomodernforms 0.1.8-2 (diff) [2120 B] 185s gpgv: Signature made Wed Aug 14 20:49:59 2024 UTC 185s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 185s gpgv: Can't check signature: No public key 185s dpkg-source: warning: cannot verify inline signature for ./python-aiomodernforms_0.1.8-2.dsc: no acceptable signature found 185s autopkgtest [20:35:19]: testing package python-aiomodernforms version 0.1.8-2 185s autopkgtest [20:35:19]: build not needed 186s autopkgtest [20:35:20]: test pybuild-autopkgtest: preparing testbed 188s Reading package lists... 188s Building dependency tree... 188s Reading state information... 189s Starting pkgProblemResolver with broken count: 1 189s Starting 2 pkgProblemResolver with broken count: 1 189s Investigating (0) python3-aiohttp:s390x < none -> 3.10.10-2build1 @un puN Ib > 189s Broken python3-aiohttp:s390x Depends on python3-yarl:s390x < none -> 1.9.4-1 @un puN > (>= 1.12.0) 189s Considering python3-yarl:s390x 3 as a solution to python3-aiohttp:s390x 2 189s Re-Instated python3-yarl:s390x 189s Broken python3-aiohttp:s390x Depends on python3-async-timeout:s390x < none | 4.0.3-1 @un uH > (>= 4.0.1) 189s Considering python3-async-timeout:s390x 0 as a solution to python3-aiohttp:s390x 2 189s Re-Instated python3-async-timeout:s390x 189s Broken python3-aiohttp:s390x Depends on python3-aiohappyeyeballs:s390x < none | 2.4.3-1 @un uH > 189s Considering python3-aiohappyeyeballs:s390x 1 as a solution to python3-aiohttp:s390x 2 189s Re-Instated python3-aiohappyeyeballs:s390x 189s Broken python3-aiohttp:s390x Depends on python3-aiosignal:s390x < none | 1.3.1-1 @un uH > 189s Considering python3-aiosignal:s390x 1 as a solution to python3-aiohttp:s390x 2 189s Re-Instated python3-frozenlist:s390x 189s Re-Instated python3-aiosignal:s390x 189s Done 189s Some packages could not be installed. This may mean that you have 189s requested an impossible situation or if you are using the unstable 189s distribution that some required packages have not yet been created 189s or been moved out of Incoming. 189s The following information may help to resolve the situation: 189s 189s The following packages have unmet dependencies: 189s python3-aiohttp : Depends: python3-yarl (>= 1.12.0) but 1.9.4-1 is to be installed 189s E: Unable to correct problems, you have held broken packages. 189s autopkgtest: WARNING: Test dependencies are unsatisfiable with using apt pinning. Retrying with using all packages from plucky-proposed 189s Reading package lists... 189s Building dependency tree... 189s Reading state information... 189s Starting pkgProblemResolver with broken count: 0 189s Starting 2 pkgProblemResolver with broken count: 0 189s Done 190s The following additional packages will be installed: 190s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 190s cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf 190s dh-python dh-strip-nondeterminism dwz g++ g++-14 g++-14-s390x-linux-gnu 190s g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu gcc-s390x-linux-gnu 190s gettext intltool-debian libarchive-zip-perl libasan8 libcc1-0 190s libdebhelper-perl libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 190s libisl23 libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 190s libjs-jquery-metadata libjs-jquery-tablesorter 190s libjs-jquery-throttle-debounce libmpc3 libpython3-stdlib 190s libpython3.13-minimal libpython3.13-stdlib libstdc++-14-dev libtool 190s libubsan1 m4 openstack-pkg-tools po-debconf pybuild-plugin-pyproject python3 190s python3-aiohappyeyeballs python3-aiohttp python3-aiomodernforms 190s python3-aiosignal python3-all python3-aresponses python3-async-generator 190s python3-async-timeout python3-backoff python3-build python3-coverage 190s python3-frozenlist python3-iniconfig python3-installer python3-minimal 190s python3-multidict python3-mypy python3-mypy-extensions python3-packaging 190s python3-pip python3-pluggy python3-psutil python3-pyproject-hooks 190s python3-pytest python3-pytest-asyncio python3-pytest-cov python3-toml 190s python3-wheel python3-yarl python3.13 python3.13-minimal 190s Suggested packages: 190s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 190s cpp-14-doc dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb 190s gcc-doc gdb-s390x-linux-gnu gettext-doc libasprintf-dev libgettextpo-dev 190s libstdc++-14-doc libtool-doc gfortran | fortran95-compiler gcj-jdk m4-doc 190s libmail-box-perl python3-venv python-build-doc python-coverage-doc 190s python-installer-doc python3.13-venv python3.13-doc binfmt-support 190s Recommended packages: 190s libarchive-cpio-perl javascript-common libltdl-dev autopkgtest madison-lite 190s pristine-tar libmail-sendmail-perl python3-aiodns python3-lxml 190s python3-orjson python3-dev libjs-sphinxdoc 190s The following NEW packages will be installed: 190s autoconf automake autopkgtest-satdep autopoint autotools-dev build-essential 190s cpp cpp-14 cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit 190s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 190s g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu 190s gcc-s390x-linux-gnu gettext intltool-debian libarchive-zip-perl libasan8 190s libcc1-0 libdebhelper-perl libfile-stripnondeterminism-perl libgcc-14-dev 190s libgomp1 libisl23 libitm1 libjs-jquery libjs-jquery-hotkeys 190s libjs-jquery-isonscreen libjs-jquery-metadata libjs-jquery-tablesorter 190s libjs-jquery-throttle-debounce libmpc3 libpython3.13-minimal 190s libpython3.13-stdlib libstdc++-14-dev libtool libubsan1 m4 190s openstack-pkg-tools po-debconf pybuild-plugin-pyproject 190s python3-aiohappyeyeballs python3-aiohttp python3-aiomodernforms 190s python3-aiosignal python3-all python3-aresponses python3-async-generator 190s python3-async-timeout python3-backoff python3-build python3-coverage 190s python3-frozenlist python3-iniconfig python3-installer python3-multidict 190s python3-mypy python3-mypy-extensions python3-packaging python3-pip 190s python3-pluggy python3-psutil python3-pyproject-hooks python3-pytest 190s python3-pytest-asyncio python3-pytest-cov python3-toml python3-wheel 190s python3-yarl python3.13 python3.13-minimal 190s The following packages will be upgraded: 190s libpython3-stdlib python3 python3-minimal 190s 3 upgraded, 81 newly installed, 0 to remove and 49 not upgraded. 190s Need to get 78.8 MB/78.8 MB of archives. 190s After this operation, 281 MB of additional disk space will be used. 190s Get:1 /tmp/autopkgtest.Z79Zi1/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [856 B] 190s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3-minimal s390x 3.12.7-1 [27.4 kB] 190s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3 s390x 3.12.7-1 [24.0 kB] 190s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libpython3-stdlib s390x 3.12.7-1 [10.0 kB] 190s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3.13-minimal s390x 3.13.0-2 [877 kB] 190s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x python3.13-minimal s390x 3.13.0-2 [2172 kB] 191s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 191s Get:8 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 191s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x m4 s390x 1.4.19-4build1 [256 kB] 191s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x autoconf all 2.72-3 [382 kB] 191s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x autotools-dev all 20220109.1 [44.9 kB] 191s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x automake all 1:1.16.5-1.3ubuntu1 [558 kB] 191s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x autopoint all 0.22.5-2 [616 kB] 191s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x libisl23 s390x 0.27-1 [704 kB] 191s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x libmpc3 s390x 1.3.1-1build2 [57.8 kB] 191s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14-s390x-linux-gnu s390x 14.2.0-8ubuntu1 [9570 kB] 192s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14 s390x 14.2.0-8ubuntu1 [1026 B] 192s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [5452 B] 192s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x cpp s390x 4:14.1.0-2ubuntu1 [22.4 kB] 192s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x libcc1-0 s390x 14.2.0-8ubuntu1 [50.6 kB] 192s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 14.2.0-8ubuntu1 [151 kB] 192s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x libitm1 s390x 14.2.0-8ubuntu1 [30.9 kB] 192s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x libasan8 s390x 14.2.0-8ubuntu1 [2963 kB] 192s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x libubsan1 s390x 14.2.0-8ubuntu1 [1184 kB] 192s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x libgcc-14-dev s390x 14.2.0-8ubuntu1 [1037 kB] 192s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14-s390x-linux-gnu s390x 14.2.0-8ubuntu1 [18.7 MB] 193s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14 s390x 14.2.0-8ubuntu1 [518 kB] 193s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [1204 B] 193s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x gcc s390x 4:14.1.0-2ubuntu1 [4996 B] 193s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x libstdc++-14-dev s390x 14.2.0-8ubuntu1 [2608 kB] 193s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14-s390x-linux-gnu s390x 14.2.0-8ubuntu1 [11.0 MB] 194s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14 s390x 14.2.0-8ubuntu1 [19.9 kB] 194s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x g++-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [956 B] 194s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x g++ s390x 4:14.1.0-2ubuntu1 [1076 B] 194s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x build-essential s390x 12.10ubuntu1 [4930 B] 194s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 194s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x libtool all 2.4.7-8 [166 kB] 194s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x dh-autoreconf all 20 [16.1 kB] 194s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 194s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 194s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x dh-strip-nondeterminism all 1.14.0-1 [5058 B] 194s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x debugedit s390x 1:5.1-1 [49.9 kB] 194s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x dwz s390x 0.15-1build6 [122 kB] 194s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x gettext s390x 0.22.5-2 [996 kB] 194s Get:45 http://ftpmaster.internal/ubuntu plucky/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 194s Get:46 http://ftpmaster.internal/ubuntu plucky/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 194s Get:47 http://ftpmaster.internal/ubuntu plucky/main s390x debhelper all 13.20ubuntu1 [893 kB] 194s Get:48 http://ftpmaster.internal/ubuntu plucky/universe s390x dh-python all 6.20241024 [112 kB] 194s Get:49 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-metadata all 12-4 [6582 B] 194s Get:50 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 194s Get:51 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 194s Get:52 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3.13-stdlib s390x 3.13.0-2 [2086 kB] 194s Get:53 http://ftpmaster.internal/ubuntu plucky/main s390x python3-packaging all 24.2-1 [51.5 kB] 194s Get:54 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 194s Get:55 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-toml all 0.10.2-1 [16.5 kB] 194s Get:56 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wheel all 0.45.0-1 [57.7 kB] 194s Get:57 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-build all 1.2.2-1 [31.0 kB] 194s Get:58 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 194s Get:59 http://ftpmaster.internal/ubuntu plucky/universe s390x pybuild-plugin-pyproject all 6.20241024 [1728 B] 194s Get:60 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-aiohappyeyeballs all 2.4.3-1 [10.5 kB] 194s Get:61 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-multidict s390x 6.1.0-1build1 [38.4 kB] 194s Get:62 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-yarl s390x 1.13.1-1build1 [122 kB] 194s Get:63 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-async-timeout all 5.0.1-1 [6830 B] 194s Get:64 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-frozenlist s390x 1.5.0-1build1 [64.2 kB] 194s Get:65 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-aiosignal all 1.3.1-1 [5172 B] 194s Get:66 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-aiohttp s390x 3.10.10-2build1 [358 kB] 194s Get:67 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-backoff all 2.2.1-2 [17.9 kB] 194s Get:68 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-aiomodernforms all 0.1.8-2 [8106 B] 194s Get:69 http://ftpmaster.internal/ubuntu plucky/main s390x python3.13 s390x 3.13.0-2 [719 kB] 194s Get:70 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3-all s390x 3.12.7-1 [890 B] 194s Get:71 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-async-generator all 1.10-4 [17.5 kB] 194s Get:72 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 194s Get:73 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pluggy all 1.5.0-1 [21.0 kB] 194s Get:74 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest all 8.3.3-1 [251 kB] 194s Get:75 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-pytest-asyncio all 0.24.0a1-1 [15.8 kB] 194s Get:76 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-aresponses all 3.0.0-2 [13.8 kB] 194s Get:77 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-coverage s390x 7.4.4+dfsg1-0ubuntu3 [150 kB] 194s Get:78 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-mypy-extensions all 1.0.0-1 [6148 B] 194s Get:79 http://ftpmaster.internal/ubuntu plucky/main s390x python3-psutil s390x 5.9.8-2build3 [195 kB] 194s Get:80 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-mypy s390x 1.13.0-2 [15.9 MB] 195s Get:81 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pip all 24.3.1+dfsg-1 [1404 kB] 195s Get:82 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 195s Get:83 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest-cov all 5.0.0-1 [21.3 kB] 195s Get:84 http://ftpmaster.internal/ubuntu plucky/universe s390x openstack-pkg-tools all 123ubuntu2 [94.5 kB] 195s Fetched 78.8 MB in 5s (16.2 MB/s) 195s (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 ... 55568 files and directories currently installed.) 195s Preparing to unpack .../python3-minimal_3.12.7-1_s390x.deb ... 195s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 195s Setting up python3-minimal (3.12.7-1) ... 195s (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 ... 55568 files and directories currently installed.) 195s Preparing to unpack .../00-python3_3.12.7-1_s390x.deb ... 195s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 195s Preparing to unpack .../01-libpython3-stdlib_3.12.7-1_s390x.deb ... 195s Unpacking libpython3-stdlib:s390x (3.12.7-1) over (3.12.6-0ubuntu1) ... 195s Selecting previously unselected package libpython3.13-minimal:s390x. 195s Preparing to unpack .../02-libpython3.13-minimal_3.13.0-2_s390x.deb ... 195s Unpacking libpython3.13-minimal:s390x (3.13.0-2) ... 195s Selecting previously unselected package python3.13-minimal. 195s Preparing to unpack .../03-python3.13-minimal_3.13.0-2_s390x.deb ... 195s Unpacking python3.13-minimal (3.13.0-2) ... 195s Selecting previously unselected package libjs-jquery. 195s Preparing to unpack .../04-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 195s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 195s Selecting previously unselected package libjs-jquery-hotkeys. 195s Preparing to unpack .../05-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 195s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 195s Selecting previously unselected package m4. 195s Preparing to unpack .../06-m4_1.4.19-4build1_s390x.deb ... 195s Unpacking m4 (1.4.19-4build1) ... 195s Selecting previously unselected package autoconf. 195s Preparing to unpack .../07-autoconf_2.72-3_all.deb ... 195s Unpacking autoconf (2.72-3) ... 195s Selecting previously unselected package autotools-dev. 195s Preparing to unpack .../08-autotools-dev_20220109.1_all.deb ... 195s Unpacking autotools-dev (20220109.1) ... 195s Selecting previously unselected package automake. 195s Preparing to unpack .../09-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 195s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 195s Selecting previously unselected package autopoint. 195s Preparing to unpack .../10-autopoint_0.22.5-2_all.deb ... 195s Unpacking autopoint (0.22.5-2) ... 195s Selecting previously unselected package libisl23:s390x. 195s Preparing to unpack .../11-libisl23_0.27-1_s390x.deb ... 195s Unpacking libisl23:s390x (0.27-1) ... 195s Selecting previously unselected package libmpc3:s390x. 195s Preparing to unpack .../12-libmpc3_1.3.1-1build2_s390x.deb ... 195s Unpacking libmpc3:s390x (1.3.1-1build2) ... 195s Selecting previously unselected package cpp-14-s390x-linux-gnu. 195s Preparing to unpack .../13-cpp-14-s390x-linux-gnu_14.2.0-8ubuntu1_s390x.deb ... 195s Unpacking cpp-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package cpp-14. 196s Preparing to unpack .../14-cpp-14_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package cpp-s390x-linux-gnu. 196s Preparing to unpack .../15-cpp-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 196s Unpacking cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 196s Selecting previously unselected package cpp. 196s Preparing to unpack .../16-cpp_4%3a14.1.0-2ubuntu1_s390x.deb ... 196s Unpacking cpp (4:14.1.0-2ubuntu1) ... 196s Selecting previously unselected package libcc1-0:s390x. 196s Preparing to unpack .../17-libcc1-0_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libcc1-0:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package libgomp1:s390x. 196s Preparing to unpack .../18-libgomp1_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libgomp1:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package libitm1:s390x. 196s Preparing to unpack .../19-libitm1_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libitm1:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package libasan8:s390x. 196s Preparing to unpack .../20-libasan8_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libasan8:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package libubsan1:s390x. 196s Preparing to unpack .../21-libubsan1_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libubsan1:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package libgcc-14-dev:s390x. 196s Preparing to unpack .../22-libgcc-14-dev_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libgcc-14-dev:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package gcc-14-s390x-linux-gnu. 196s Preparing to unpack .../23-gcc-14-s390x-linux-gnu_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking gcc-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package gcc-14. 196s Preparing to unpack .../24-gcc-14_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package gcc-s390x-linux-gnu. 196s Preparing to unpack .../25-gcc-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 196s Unpacking gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 196s Selecting previously unselected package gcc. 196s Preparing to unpack .../26-gcc_4%3a14.1.0-2ubuntu1_s390x.deb ... 196s Unpacking gcc (4:14.1.0-2ubuntu1) ... 196s Selecting previously unselected package libstdc++-14-dev:s390x. 196s Preparing to unpack .../27-libstdc++-14-dev_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking libstdc++-14-dev:s390x (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package g++-14-s390x-linux-gnu. 196s Preparing to unpack .../28-g++-14-s390x-linux-gnu_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking g++-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package g++-14. 196s Preparing to unpack .../29-g++-14_14.2.0-8ubuntu1_s390x.deb ... 196s Unpacking g++-14 (14.2.0-8ubuntu1) ... 196s Selecting previously unselected package g++-s390x-linux-gnu. 196s Preparing to unpack .../30-g++-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 196s Unpacking g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 196s Selecting previously unselected package g++. 196s Preparing to unpack .../31-g++_4%3a14.1.0-2ubuntu1_s390x.deb ... 196s Unpacking g++ (4:14.1.0-2ubuntu1) ... 196s Selecting previously unselected package build-essential. 196s Preparing to unpack .../32-build-essential_12.10ubuntu1_s390x.deb ... 196s Unpacking build-essential (12.10ubuntu1) ... 196s Selecting previously unselected package libdebhelper-perl. 196s Preparing to unpack .../33-libdebhelper-perl_13.20ubuntu1_all.deb ... 196s Unpacking libdebhelper-perl (13.20ubuntu1) ... 196s Selecting previously unselected package libtool. 196s Preparing to unpack .../34-libtool_2.4.7-8_all.deb ... 196s Unpacking libtool (2.4.7-8) ... 196s Selecting previously unselected package dh-autoreconf. 196s Preparing to unpack .../35-dh-autoreconf_20_all.deb ... 196s Unpacking dh-autoreconf (20) ... 196s Selecting previously unselected package libarchive-zip-perl. 196s Preparing to unpack .../36-libarchive-zip-perl_1.68-1_all.deb ... 196s Unpacking libarchive-zip-perl (1.68-1) ... 196s Selecting previously unselected package libfile-stripnondeterminism-perl. 196s Preparing to unpack .../37-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 196s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 196s Selecting previously unselected package dh-strip-nondeterminism. 196s Preparing to unpack .../38-dh-strip-nondeterminism_1.14.0-1_all.deb ... 196s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 196s Selecting previously unselected package debugedit. 196s Preparing to unpack .../39-debugedit_1%3a5.1-1_s390x.deb ... 196s Unpacking debugedit (1:5.1-1) ... 196s Selecting previously unselected package dwz. 196s Preparing to unpack .../40-dwz_0.15-1build6_s390x.deb ... 196s Unpacking dwz (0.15-1build6) ... 196s Selecting previously unselected package gettext. 196s Preparing to unpack .../41-gettext_0.22.5-2_s390x.deb ... 196s Unpacking gettext (0.22.5-2) ... 196s Selecting previously unselected package intltool-debian. 196s Preparing to unpack .../42-intltool-debian_0.35.0+20060710.6_all.deb ... 196s Unpacking intltool-debian (0.35.0+20060710.6) ... 196s Selecting previously unselected package po-debconf. 196s Preparing to unpack .../43-po-debconf_1.0.21+nmu1_all.deb ... 196s Unpacking po-debconf (1.0.21+nmu1) ... 196s Selecting previously unselected package debhelper. 196s Preparing to unpack .../44-debhelper_13.20ubuntu1_all.deb ... 196s Unpacking debhelper (13.20ubuntu1) ... 196s Selecting previously unselected package dh-python. 196s Preparing to unpack .../45-dh-python_6.20241024_all.deb ... 196s Unpacking dh-python (6.20241024) ... 196s Selecting previously unselected package libjs-jquery-metadata. 196s Preparing to unpack .../46-libjs-jquery-metadata_12-4_all.deb ... 196s Unpacking libjs-jquery-metadata (12-4) ... 196s Selecting previously unselected package libjs-jquery-tablesorter. 196s Preparing to unpack .../47-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 196s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 196s Selecting previously unselected package libjs-jquery-throttle-debounce. 196s Preparing to unpack .../48-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 196s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 196s Selecting previously unselected package libpython3.13-stdlib:s390x. 196s Preparing to unpack .../49-libpython3.13-stdlib_3.13.0-2_s390x.deb ... 196s Unpacking libpython3.13-stdlib:s390x (3.13.0-2) ... 197s Selecting previously unselected package python3-packaging. 197s Preparing to unpack .../50-python3-packaging_24.2-1_all.deb ... 197s Unpacking python3-packaging (24.2-1) ... 197s Selecting previously unselected package python3-pyproject-hooks. 197s Preparing to unpack .../51-python3-pyproject-hooks_1.2.0-1_all.deb ... 197s Unpacking python3-pyproject-hooks (1.2.0-1) ... 197s Selecting previously unselected package python3-toml. 197s Preparing to unpack .../52-python3-toml_0.10.2-1_all.deb ... 197s Unpacking python3-toml (0.10.2-1) ... 197s Selecting previously unselected package python3-wheel. 197s Preparing to unpack .../53-python3-wheel_0.45.0-1_all.deb ... 197s Unpacking python3-wheel (0.45.0-1) ... 197s Selecting previously unselected package python3-build. 197s Preparing to unpack .../54-python3-build_1.2.2-1_all.deb ... 197s Unpacking python3-build (1.2.2-1) ... 197s Selecting previously unselected package python3-installer. 197s Preparing to unpack .../55-python3-installer_0.7.0+dfsg1-3_all.deb ... 197s Unpacking python3-installer (0.7.0+dfsg1-3) ... 197s Selecting previously unselected package pybuild-plugin-pyproject. 197s Preparing to unpack .../56-pybuild-plugin-pyproject_6.20241024_all.deb ... 197s Unpacking pybuild-plugin-pyproject (6.20241024) ... 197s Selecting previously unselected package python3-aiohappyeyeballs. 197s Preparing to unpack .../57-python3-aiohappyeyeballs_2.4.3-1_all.deb ... 197s Unpacking python3-aiohappyeyeballs (2.4.3-1) ... 197s Selecting previously unselected package python3-multidict. 197s Preparing to unpack .../58-python3-multidict_6.1.0-1build1_s390x.deb ... 197s Unpacking python3-multidict (6.1.0-1build1) ... 197s Selecting previously unselected package python3-yarl. 197s Preparing to unpack .../59-python3-yarl_1.13.1-1build1_s390x.deb ... 197s Unpacking python3-yarl (1.13.1-1build1) ... 197s Selecting previously unselected package python3-async-timeout. 197s Preparing to unpack .../60-python3-async-timeout_5.0.1-1_all.deb ... 197s Unpacking python3-async-timeout (5.0.1-1) ... 197s Selecting previously unselected package python3-frozenlist. 197s Preparing to unpack .../61-python3-frozenlist_1.5.0-1build1_s390x.deb ... 197s Unpacking python3-frozenlist (1.5.0-1build1) ... 197s Selecting previously unselected package python3-aiosignal. 197s Preparing to unpack .../62-python3-aiosignal_1.3.1-1_all.deb ... 197s Unpacking python3-aiosignal (1.3.1-1) ... 197s Selecting previously unselected package python3-aiohttp. 197s Preparing to unpack .../63-python3-aiohttp_3.10.10-2build1_s390x.deb ... 197s Unpacking python3-aiohttp (3.10.10-2build1) ... 197s Selecting previously unselected package python3-backoff. 197s Preparing to unpack .../64-python3-backoff_2.2.1-2_all.deb ... 197s Unpacking python3-backoff (2.2.1-2) ... 197s Selecting previously unselected package python3-aiomodernforms. 197s Preparing to unpack .../65-python3-aiomodernforms_0.1.8-2_all.deb ... 197s Unpacking python3-aiomodernforms (0.1.8-2) ... 197s Selecting previously unselected package python3.13. 197s Preparing to unpack .../66-python3.13_3.13.0-2_s390x.deb ... 197s Unpacking python3.13 (3.13.0-2) ... 197s Selecting previously unselected package python3-all. 197s Preparing to unpack .../67-python3-all_3.12.7-1_s390x.deb ... 197s Unpacking python3-all (3.12.7-1) ... 197s Selecting previously unselected package python3-async-generator. 197s Preparing to unpack .../68-python3-async-generator_1.10-4_all.deb ... 197s Unpacking python3-async-generator (1.10-4) ... 197s Selecting previously unselected package python3-iniconfig. 197s Preparing to unpack .../69-python3-iniconfig_1.1.1-2_all.deb ... 197s Unpacking python3-iniconfig (1.1.1-2) ... 197s Selecting previously unselected package python3-pluggy. 197s Preparing to unpack .../70-python3-pluggy_1.5.0-1_all.deb ... 197s Unpacking python3-pluggy (1.5.0-1) ... 197s Selecting previously unselected package python3-pytest. 197s Preparing to unpack .../71-python3-pytest_8.3.3-1_all.deb ... 197s Unpacking python3-pytest (8.3.3-1) ... 197s Selecting previously unselected package python3-pytest-asyncio. 197s Preparing to unpack .../72-python3-pytest-asyncio_0.24.0a1-1_all.deb ... 197s Unpacking python3-pytest-asyncio (0.24.0a1-1) ... 197s Selecting previously unselected package python3-aresponses. 197s Preparing to unpack .../73-python3-aresponses_3.0.0-2_all.deb ... 197s Unpacking python3-aresponses (3.0.0-2) ... 197s Selecting previously unselected package python3-coverage. 197s Preparing to unpack .../74-python3-coverage_7.4.4+dfsg1-0ubuntu3_s390x.deb ... 197s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 197s Selecting previously unselected package python3-mypy-extensions. 197s Preparing to unpack .../75-python3-mypy-extensions_1.0.0-1_all.deb ... 197s Unpacking python3-mypy-extensions (1.0.0-1) ... 197s Selecting previously unselected package python3-psutil. 197s Preparing to unpack .../76-python3-psutil_5.9.8-2build3_s390x.deb ... 197s Unpacking python3-psutil (5.9.8-2build3) ... 197s Selecting previously unselected package python3-mypy. 197s Preparing to unpack .../77-python3-mypy_1.13.0-2_s390x.deb ... 197s Unpacking python3-mypy (1.13.0-2) ... 197s Selecting previously unselected package python3-pip. 197s Preparing to unpack .../78-python3-pip_24.3.1+dfsg-1_all.deb ... 197s Unpacking python3-pip (24.3.1+dfsg-1) ... 197s Selecting previously unselected package libjs-jquery-isonscreen. 197s Preparing to unpack .../79-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 197s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 197s Selecting previously unselected package python3-pytest-cov. 197s Preparing to unpack .../80-python3-pytest-cov_5.0.0-1_all.deb ... 197s Unpacking python3-pytest-cov (5.0.0-1) ... 197s Selecting previously unselected package openstack-pkg-tools. 197s Preparing to unpack .../81-openstack-pkg-tools_123ubuntu2_all.deb ... 197s Unpacking openstack-pkg-tools (123ubuntu2) ... 197s Selecting previously unselected package autopkgtest-satdep. 197s Preparing to unpack .../82-1-autopkgtest-satdep.deb ... 197s Unpacking autopkgtest-satdep (0) ... 197s Setting up libarchive-zip-perl (1.68-1) ... 197s Setting up libdebhelper-perl (13.20ubuntu1) ... 197s Setting up m4 (1.4.19-4build1) ... 197s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 197s Setting up libgomp1:s390x (14.2.0-8ubuntu1) ... 197s Setting up libpython3.13-minimal:s390x (3.13.0-2) ... 197s Setting up autotools-dev (20220109.1) ... 197s Setting up libmpc3:s390x (1.3.1-1build2) ... 197s Setting up autopoint (0.22.5-2) ... 197s Setting up autoconf (2.72-3) ... 197s Setting up libubsan1:s390x (14.2.0-8ubuntu1) ... 197s Setting up dwz (0.15-1build6) ... 197s Setting up libasan8:s390x (14.2.0-8ubuntu1) ... 197s Setting up debugedit (1:5.1-1) ... 197s Setting up python3.13-minimal (3.13.0-2) ... 198s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 198s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 198s Setting up libisl23:s390x (0.27-1) ... 198s Setting up libpython3.13-stdlib:s390x (3.13.0-2) ... 198s Setting up libcc1-0:s390x (14.2.0-8ubuntu1) ... 198s Setting up libitm1:s390x (14.2.0-8ubuntu1) ... 198s Setting up libpython3-stdlib:s390x (3.12.7-1) ... 198s Setting up automake (1:1.16.5-1.3ubuntu1) ... 198s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 198s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 198s Setting up gettext (0.22.5-2) ... 198s Setting up python3.13 (3.13.0-2) ... 199s Setting up python3 (3.12.7-1) ... 200s Setting up python3-wheel (0.45.0-1) ... 200s Setting up python3-psutil (5.9.8-2build3) ... 200s Setting up python3-multidict (6.1.0-1build1) ... 200s Setting up python3-frozenlist (1.5.0-1build1) ... 200s Setting up python3-aiosignal (1.3.1-1) ... 201s Setting up intltool-debian (0.35.0+20060710.6) ... 201s Setting up python3-async-timeout (5.0.1-1) ... 201s Setting up python3-packaging (24.2-1) ... 201s Setting up python3-pyproject-hooks (1.2.0-1) ... 201s Setting up libjs-jquery-metadata (12-4) ... 201s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 201s Setting up python3-aiohappyeyeballs (2.4.3-1) ... 201s Setting up python3-pip (24.3.1+dfsg-1) ... 203s Setting up python3-toml (0.10.2-1) ... 203s Setting up cpp-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 203s Setting up python3-installer (0.7.0+dfsg1-3) ... 203s Setting up cpp-14 (14.2.0-8ubuntu1) ... 203s Setting up python3-pluggy (1.5.0-1) ... 203s Setting up dh-strip-nondeterminism (1.14.0-1) ... 203s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 203s Setting up python3-backoff (2.2.1-2) ... 204s Setting up libgcc-14-dev:s390x (14.2.0-8ubuntu1) ... 204s Setting up python3-build (1.2.2-1) ... 204s Setting up libstdc++-14-dev:s390x (14.2.0-8ubuntu1) ... 204s Setting up python3-yarl (1.13.1-1build1) ... 204s Setting up dh-python (6.20241024) ... 204s Setting up python3-iniconfig (1.1.1-2) ... 204s Setting up python3-async-generator (1.10-4) ... 204s Setting up cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 204s Setting up pybuild-plugin-pyproject (6.20241024) ... 204s Setting up python3-pytest (8.3.3-1) ... 205s Setting up python3-mypy-extensions (1.0.0-1) ... 205s Setting up po-debconf (1.0.21+nmu1) ... 205s Setting up python3-aiohttp (3.10.10-2build1) ... 205s Setting up python3-all (3.12.7-1) ... 205s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu3) ... 206s Setting up python3-pytest-cov (5.0.0-1) ... 206s Setting up python3-aiomodernforms (0.1.8-2) ... 206s Setting up openstack-pkg-tools (123ubuntu2) ... 206s Setting up gcc-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 206s Setting up gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 206s Setting up g++-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 206s Setting up python3-mypy (1.13.0-2) ... 208s Setting up python3-pytest-asyncio (0.24.0a1-1) ... 208s Setting up cpp (4:14.1.0-2ubuntu1) ... 208s Setting up python3-aresponses (3.0.0-2) ... 208s Setting up g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 208s Setting up gcc-14 (14.2.0-8ubuntu1) ... 208s Setting up g++-14 (14.2.0-8ubuntu1) ... 208s Setting up libtool (2.4.7-8) ... 209s Setting up gcc (4:14.1.0-2ubuntu1) ... 209s Setting up dh-autoreconf (20) ... 209s Setting up g++ (4:14.1.0-2ubuntu1) ... 209s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 209s Setting up build-essential (12.10ubuntu1) ... 209s Setting up debhelper (13.20ubuntu1) ... 209s Setting up autopkgtest-satdep (0) ... 209s Processing triggers for systemd (256.5-2ubuntu4) ... 209s Processing triggers for man-db (2.13.0-1) ... 209s Processing triggers for install-info (7.1.1-1) ... 209s Processing triggers for libc-bin (2.40-1ubuntu3) ... 212s (Reading database ... 61847 files and directories currently installed.) 212s Removing autopkgtest-satdep (0) ... 212s autopkgtest [20:35:46]: test pybuild-autopkgtest: pybuild-autopkgtest 212s autopkgtest [20:35:46]: test pybuild-autopkgtest: [----------------------- 213s make: pyversions: No such file or directory 213s py3versions: no X-Python3-Version in control file, using supported versions 213s pybuild-autopkgtest 213s I: pybuild base:311: cd /tmp/autopkgtest.Z79Zi1/autopkgtest_tmp/build; python3.13 -m pytest -v 213s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 214s 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" 214s 214s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 214s ============================= test session starts ============================== 214s platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 214s cachedir: .pytest_cache 214s rootdir: /tmp/autopkgtest.Z79Zi1/autopkgtest_tmp/build 214s configfile: pytest.ini 214s testpaths: tests 214s plugins: aresponses-3.0.0, typeguard-4.4.1, cov-5.0.0, asyncio-0.24.0a1 214s asyncio: mode=Mode.STRICT, default_loop_scope=None 214s collecting ... collected 19 items 214s 214s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 214s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 214s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 214s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 214s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 214s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 214s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 214s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 214s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 214s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 214s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 214s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 214s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 214s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 214s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 214s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 214s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 214s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 214s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 214s 214s =================================== FAILURES =================================== 214s ______________________________ test_basic_status _______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_basic_status(aresponses): 214s """Test JSON response is handled correctly.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add( 214s "fan.local", 214s "/mf", 214s "POST", 214s response=basic_response, 214s repeat=2, 214s ) 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:79: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _________________________________ test_command _________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_command(aresponses): 214s """Test to make sure setting lights works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_POWER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:108: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.Z79Zi1/autopkgtest_tmp/build; python3.13 -m pytest -v 214s I: pybuild base:311: cd /tmp/autopkgtest.Z79Zi1/autopkgtest_tmp/build; python3.12 -m pytest -v 214s /dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s __________________________________ test_light __________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light(aresponses): 214s """Test to make sure setting lights works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_POWER in data 214s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 214s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 214s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 214s ] 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:143: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s __________________________ test_light_sleep_datetime ___________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light_sleep_datetime(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(minutes=2) 214s > await device.light( 214s sleep=sleep_time, 214s ) 214s 214s tests/test_aiomodernforms.py:180: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_light_sleep_int _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light_sleep_int(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(seconds=120) 214s > await device.light( 214s sleep=120, 214s ) 214s 214s tests/test_aiomodernforms.py:209: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ____________________________ test_light_sleep_clear ____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light_sleep_clear(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s # check to clear timer 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.light( 214s sleep=0, 214s ) 214s 214s tests/test_aiomodernforms.py:238: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ___________________________________ test_fan ___________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan(aresponses): 214s """Test to make sure setting fan works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_POWER in data 214s assert aiomodernforms.COMMAND_FAN_SPEED in data 214s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 214s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 214s modified_response[STATE_FAN_DIRECTION] = data[ 214s aiomodernforms.COMMAND_FAN_DIRECTION 214s ] 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:274: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ___________________________ test_fan_sleep_datetime ____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan_sleep_datetime(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(minutes=2) 214s > await device.fan( 214s sleep=sleep_time, 214s ) 214s 214s tests/test_aiomodernforms.py:311: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ______________________________ test_fan_sleep_int ______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan_sleep_int(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(seconds=120) 214s > await device.fan( 214s sleep=120, 214s ) 214s 214s tests/test_aiomodernforms.py:340: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_fan_sleep_clear _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan_sleep_clear(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s # check to clear timer 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.fan( 214s sleep=0, 214s ) 214s 214s tests/test_aiomodernforms.py:369: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s __________________________________ test_away ___________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_away(aresponses): 214s """Test to make sure setting away mode works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_AWAY_MODE in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:395: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ____________________________ test_adaptive_learning ____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_adaptive_learning(aresponses): 214s """Test to make sure setting adaptive learning mode works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 214s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:422: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_invalid_setting _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_invalid_setting(aresponses): 214s """Test to make sure setting invalid settings are rejected.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:434: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ____________________________ test_connection_error _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_connection_error(aresponses): 214s """Test to make validate proper connection error handling.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:502: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ______________________________ test_server_error _______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_server_error(aresponses): 214s """Test to make validate proper server error handling.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add( 214s "fan.local", 214s "/mf", 214s "POST", 214s response=aresponses.Response(text="error", status=500), 214s ) 214s 214s with pytest.raises(aiomodernforms.ModernFormsError): 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:518: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _________________________________ test_reboot __________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_reboot(aresponses): 214s """Test how reboot is handled.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:528: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_empty_response ______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_empty_response(aresponses): 214s """Test for an Empty Response.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s 214s async def send_empty_state(request): 214s await request.json() 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text="{}", 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 214s with pytest.raises(ModernFormsConnectionError): 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:568: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s =========================== short test summary info ============================ 214s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 214s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 214s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 214s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 214s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 214s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 214s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 214s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 214s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 214s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 214s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 214s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 214s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 214s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 214s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 214s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 214s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 214s ========================= 17 failed, 2 passed in 0.34s ========================= 214s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. 214s 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" 214s 214s warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) 214s ============================= test session starts ============================== 214s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 214s cachedir: .pytest_cache 214s rootdir: /tmp/autopkgtest.Z79Zi1/autopkgtest_tmp/build 214s configfile: pytest.ini 214s testpaths: tests 214s plugins: aresponses-3.0.0, typeguard-4.4.1, cov-5.0.0, asyncio-0.24.0a1 214s asyncio: mode=Mode.STRICT, default_loop_scope=None 214s collecting ... collected 19 items 214s 214s tests/test_aiomodernforms.py::test_basic_status FAILED [ 5%] 214s tests/test_aiomodernforms.py::test_command FAILED [ 10%] 214s tests/test_aiomodernforms.py::test_light FAILED [ 15%] 214s tests/test_aiomodernforms.py::test_light_sleep_datetime FAILED [ 21%] 214s tests/test_aiomodernforms.py::test_light_sleep_int FAILED [ 26%] 214s tests/test_aiomodernforms.py::test_light_sleep_clear FAILED [ 31%] 214s tests/test_aiomodernforms.py::test_fan FAILED [ 36%] 214s tests/test_aiomodernforms.py::test_fan_sleep_datetime FAILED [ 42%] 214s tests/test_aiomodernforms.py::test_fan_sleep_int FAILED [ 47%] 214s tests/test_aiomodernforms.py::test_fan_sleep_clear FAILED [ 52%] 214s tests/test_aiomodernforms.py::test_away FAILED [ 57%] 214s tests/test_aiomodernforms.py::test_adaptive_learning FAILED [ 63%] 214s tests/test_aiomodernforms.py::test_invalid_setting FAILED [ 68%] 214s tests/test_aiomodernforms.py::test_connection_error FAILED [ 73%] 214s tests/test_aiomodernforms.py::test_server_error FAILED [ 78%] 214s tests/test_aiomodernforms.py::test_reboot FAILED [ 84%] 214s tests/test_aiomodernforms.py::test_status_not_initialized_response PASSED [ 89%] 214s tests/test_aiomodernforms.py::test_info_not_initialized_response PASSED [ 94%] 214s tests/test_aiomodernforms.py::test_empty_response FAILED [100%] 214s 214s =================================== FAILURES =================================== 214s ______________________________ test_basic_status _______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_basic_status(aresponses): 214s """Test JSON response is handled correctly.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add( 214s "fan.local", 214s "/mf", 214s "POST", 214s response=basic_response, 214s repeat=2, 214s ) 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:79: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _________________________________ test_command _________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_command(aresponses): 214s """Test to make sure setting lights works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_POWER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:108: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s __________________________________ test_light __________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light(aresponses): 214s """Test to make sure setting lights works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_POWER in data 214s assert aiomodernforms.COMMAND_LIGHT_BRIGHTNESS in data 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_POWER] = data[aiomodernforms.COMMAND_LIGHT_POWER] 214s modified_response[STATE_LIGHT_BRIGHTNESS] = data[ 214s aiomodernforms.COMMAND_LIGHT_BRIGHTNESS 214s ] 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:143: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s __________________________ test_light_sleep_datetime ___________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light_sleep_datetime(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(minutes=2) 214s > await device.light( 214s sleep=sleep_time, 214s ) 214s 214s tests/test_aiomodernforms.py:180: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_light_sleep_int _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light_sleep_int(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(seconds=120) 214s > await device.light( 214s sleep=120, 214s ) 214s 214s tests/test_aiomodernforms.py:209: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ____________________________ test_light_sleep_clear ____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_light_sleep_clear(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_LIGHT_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_LIGHT_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s # check to clear timer 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.light( 214s sleep=0, 214s ) 214s 214s tests/test_aiomodernforms.py:238: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:251: in light 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ___________________________________ test_fan ___________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan(aresponses): 214s """Test to make sure setting fan works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_POWER in data 214s assert aiomodernforms.COMMAND_FAN_SPEED in data 214s assert aiomodernforms.COMMAND_FAN_DIRECTION in data 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_POWER] = data[aiomodernforms.COMMAND_FAN_POWER] 214s modified_response[STATE_FAN_SPEED] = data[aiomodernforms.COMMAND_FAN_SPEED] 214s modified_response[STATE_FAN_DIRECTION] = data[ 214s aiomodernforms.COMMAND_FAN_DIRECTION 214s ] 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:274: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ___________________________ test_fan_sleep_datetime ____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan_sleep_datetime(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(minutes=2) 214s > await device.fan( 214s sleep=sleep_time, 214s ) 214s 214s tests/test_aiomodernforms.py:311: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ______________________________ test_fan_sleep_int ______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan_sleep_int(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s sleep_time = datetime.now() + timedelta(seconds=120) 214s > await device.fan( 214s sleep=120, 214s ) 214s 214s tests/test_aiomodernforms.py:340: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_fan_sleep_clear _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_fan_sleep_clear(aresponses): 214s """Test to make sure setting light sleep works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_FAN_SLEEP_TIMER in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_FAN_SLEEP_TIMER] = data[ 214s aiomodernforms.COMMAND_FAN_SLEEP_TIMER 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s # check to clear timer 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.fan( 214s sleep=0, 214s ) 214s 214s tests/test_aiomodernforms.py:369: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:313: in fan 214s await self.request(commands=commands) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:178: in request 214s await self.update() 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s __________________________________ test_away ___________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_away(aresponses): 214s """Test to make sure setting away mode works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_AWAY_MODE in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_AWAY_MODE] = data[aiomodernforms.COMMAND_AWAY_MODE] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:395: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ____________________________ test_adaptive_learning ____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_adaptive_learning(aresponses): 214s """Test to make sure setting adaptive learning mode works.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async def evaluate_request(request): 214s data = await request.json() 214s assert aiomodernforms.COMMAND_ADAPTIVE_LEARNING in data 214s modified_response = basic_response.copy() 214s modified_response[STATE_ADAPTIVE_LEARNING] = data[ 214s aiomodernforms.COMMAND_ADAPTIVE_LEARNING 214s ] 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text=json.dumps(modified_response), 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=evaluate_request) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:422: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_invalid_setting _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_invalid_setting(aresponses): 214s """Test to make sure setting invalid settings are rejected.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:434: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ____________________________ test_connection_error _____________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_connection_error(aresponses): 214s """Test to make validate proper connection error handling.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s with pytest.raises(aiomodernforms.ModernFormsConnectionError): 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:502: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s ______________________________ test_server_error _______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_server_error(aresponses): 214s """Test to make validate proper server error handling.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add( 214s "fan.local", 214s "/mf", 214s "POST", 214s response=aresponses.Response(text="error", status=500), 214s ) 214s 214s with pytest.raises(aiomodernforms.ModernFormsError): 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:518: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _________________________________ test_reboot __________________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_reboot(aresponses): 214s """Test how reboot is handled.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s aresponses.add("fan.local", "/mf", "POST", response=basic_response) 214s 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:528: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s _____________________________ test_empty_response ______________________________ 214s 214s aresponses = 214s 214s @pytest.mark.asyncio 214s async def test_empty_response(aresponses): 214s """Test for an Empty Response.""" 214s aresponses.add("fan.local", "/mf", "POST", response=basic_info) 214s 214s async def send_empty_state(request): 214s await request.json() 214s return aresponses.Response( 214s status=200, 214s content_type="application/json", 214s text="{}", 214s ) 214s 214s aresponses.add("fan.local", "/mf", "POST", response=send_empty_state) 214s with pytest.raises(ModernFormsConnectionError): 214s async with aiomodernforms.ModernFormsDevice("fan.local") as device: 214s > await device.update() 214s 214s tests/test_aiomodernforms.py:568: 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:96: in update 214s info_data = await self._request({COMMAND_QUERY_STATIC_DATA: True}) 214s /usr/lib/python3/dist-packages/backoff/_async.py:151: in retry 214s ret = await target(*args, **kwargs) 214s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 214s 214s self = 214s commands = {'queryStaticShadowData': True} 214s 214s @backoff.on_exception( 214s backoff.expo, ModernFormsConnectionError, max_tries=3, logger=None 214s ) 214s async def _request(self, commands: Optional[dict] = None) -> Any: 214s """Handle a request to a Modern Forms Fan device.""" 214s scheme = "https" if self._tls else "http" 214s url = URL.build( 214s scheme=scheme, 214s host=self._host, 214s port=self._port, 214s path=self._base_path, 214s ) 214s 214s auth = None 214s if self._username and self._password: 214s auth = aiohttp.BasicAuth(self._username, self._password) 214s 214s headers = { 214s "User-Agent": self._user_agent, 214s "Accept": "application/json", 214s } 214s 214s if self._session is None: 214s self._session = aiohttp.ClientSession() 214s self._close_session = True 214s 214s # If updating the state, always request for a state response 214s if commands is None: 214s commands = {COMMAND_QUERY_STATUS: True} 214s 214s try: 214s > with async_timeout.timeout(self._request_timeout): 214s E TypeError: 'Timeout' object does not support the context manager protocol 214s 214s /usr/lib/python3/dist-packages/aiomodernforms/modernforms.py:139: TypeError 214s =========================== short test summary info ============================ 214s FAILED tests/test_aiomodernforms.py::test_basic_status - TypeError: 'Timeout'... 214s FAILED tests/test_aiomodernforms.py::test_command - TypeError: 'Timeout' obje... 214s FAILED tests/test_aiomodernforms.py::test_light - TypeError: 'Timeout' object... 214s FAILED tests/test_aiomodernforms.py::test_light_sleep_datetime - TypeError: '... 214s FAILED tests/test_aiomodernforms.py::test_light_sleep_int - TypeError: 'Timeo... 214s FAILED tests/test_aiomodernforms.py::test_light_sleep_clear - TypeError: 'Tim... 214s FAILED tests/test_aiomodernforms.py::test_fan - TypeError: 'Timeout' object d... 214s FAILED tests/test_aiomodernforms.py::test_fan_sleep_datetime - TypeError: 'Ti... 214s FAILED tests/test_aiomodernforms.py::test_fan_sleep_int - TypeError: 'Timeout... 214s FAILED tests/test_aiomodernforms.py::test_fan_sleep_clear - TypeError: 'Timeo... 214s FAILED tests/test_aiomodernforms.py::test_away - TypeError: 'Timeout' object ... 214s FAILED tests/test_aiomodernforms.py::test_adaptive_learning - TypeError: 'Tim... 214s FAILED tests/test_aiomodernforms.py::test_invalid_setting - TypeError: 'Timeo... 214s FAILED tests/test_aiomodernforms.py::test_connection_error - TypeError: 'Time... 214s FAILED tests/test_aiomodernforms.py::test_server_error - TypeError: 'Timeout'... 214s FAILED tests/test_aiomodernforms.py::test_reboot - TypeError: 'Timeout' objec... 214s FAILED tests/test_aiomodernforms.py::test_empty_response - TypeError: 'Timeou... 214s ========================= 17 failed, 2 passed in 0.37s ========================= 214s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.Z79Zi1/autopkgtest_tmp/build; python3.12 -m pytest -v 214s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 214s make: *** [/tmp/2PC4uJtMjr/run:4: pybuild-autopkgtest] Error 25 214s pybuild-autopkgtest: error: /tmp/2PC4uJtMjr/run pybuild-autopkgtest returned exit code 2 215s autopkgtest [20:35:49]: test pybuild-autopkgtest: -----------------------] 215s pybuild-autopkgtest FAIL non-zero exit status 25 215s autopkgtest [20:35:49]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 215s autopkgtest [20:35:49]: @@@@@@@@@@@@@@@@@@@@ summary 215s pybuild-autopkgtest FAIL non-zero exit status 25 228s nova [W] Using flock in prodstack6-s390x 228s Creating nova instance adt-plucky-s390x-python-aiomodernforms-20241123-203145-juju-7f2275-prod-proposed-migration-environment-15-1cc769b8-f391-4922-b50d-3c5e3467ce85 from image adt/ubuntu-plucky-s390x-server-20241119.img (UUID 0efe7a44-24e0-44d8-af6e-8997f14b87bd)...