0s autopkgtest [15:03:14]: starting date and time: 2024-11-09 15:03:14+0000 0s autopkgtest [15:03:14]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [15:03:14]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.6ur9bhsb/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python-attrs --apt-upgrade python-cattrs --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python-attrs/24.2.0-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-s390x-21.secgroup --name adt-plucky-s390x-python-cattrs-20241109-150314-juju-7f2275-prod-proposed-migration-environment-20-09b588aa-76e9-4454-ac98-92ed23d6e02c --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --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/ 163s autopkgtest [15:05:57]: testbed dpkg architecture: s390x 163s autopkgtest [15:05:57]: testbed apt version: 2.9.8 163s autopkgtest [15:05:57]: @@@@@@@@@@@@@@@@@@@@ test bed setup 164s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 164s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 164s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.3 kB] 164s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [104 kB] 164s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [1004 kB] 165s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [125 kB] 165s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [696 kB] 166s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [16.6 kB] 166s Fetched 2043 kB in 3s (745 kB/s) 166s Reading package lists... 168s Reading package lists... 169s Building dependency tree... 169s Reading state information... 169s Calculating upgrade... 169s The following packages will be upgraded: 169s python3-attr 169s 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 169s Need to get 50.2 kB of archives. 169s After this operation, 10.2 kB of additional disk space will be used. 169s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3-attr all 24.2.0-1 [50.2 kB] 169s Fetched 50.2 kB in 0s (131 kB/s) 169s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 55520 files and directories currently installed.) 169s Preparing to unpack .../python3-attr_24.2.0-1_all.deb ... 169s Unpacking python3-attr (24.2.0-1) over (23.2.0-2) ... 169s Setting up python3-attr (24.2.0-1) ... 170s Reading package lists... 170s Building dependency tree... 170s Reading state information... 170s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 170s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 170s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 170s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 170s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 171s Reading package lists... 171s Reading package lists... 171s Building dependency tree... 171s Reading state information... 171s Calculating upgrade... 171s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 171s Reading package lists... 172s Building dependency tree... 172s Reading state information... 172s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 174s autopkgtest [15:06:08]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 12:49:35 UTC 2024 174s autopkgtest [15:06:08]: @@@@@@@@@@@@@@@@@@@@ apt-source python-cattrs 176s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-cattrs 23.2.3-1 (dsc) [2250 B] 176s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-cattrs 23.2.3-1 (tar) [566 kB] 176s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-cattrs 23.2.3-1 (diff) [2856 B] 176s gpgv: Signature made Sat Mar 9 07:28:42 2024 UTC 176s gpgv: using RSA key B9FAD3192AF3E4A5309D9D39879F3C993801A94F 176s gpgv: Can't check signature: No public key 176s dpkg-source: warning: cannot verify inline signature for ./python-cattrs_23.2.3-1.dsc: no acceptable signature found 176s autopkgtest [15:06:10]: testing package python-cattrs version 23.2.3-1 177s autopkgtest [15:06:11]: build not needed 177s autopkgtest [15:06:11]: test pybuild-autopkgtest: preparing testbed 178s Reading package lists... 179s Building dependency tree... 179s Reading state information... 179s Starting pkgProblemResolver with broken count: 0 179s Starting 2 pkgProblemResolver with broken count: 0 179s Done 179s The following additional packages will be installed: 179s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 179s cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf 179s dh-python dh-strip-nondeterminism dwz g++ g++-14 g++-14-s390x-linux-gnu 179s g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu gcc-s390x-linux-gnu 179s gettext intltool-debian libarchive-zip-perl libasan8 libcc1-0 179s libdebhelper-perl libdouble-conversion3 libfile-stripnondeterminism-perl 179s libgcc-14-dev libgomp1 libisl23 libitm1 libmpc3 libstdc++-14-dev libtool 179s libubsan1 m4 po-debconf pybuild-plugin-autopkgtest pybuild-plugin-pyproject 179s python3-all python3-bson python3-build python3-cattr python3-cpuinfo 179s python3-dateutil python3-hatch-vcs python3-hatchling python3-hypothesis 179s python3-iniconfig python3-installer python3-msgpack python3-packaging 179s python3-pathspec python3-pluggy python3-pyproject-hooks python3-pytest 179s python3-pytest-benchmark python3-setuptools-scm python3-six 179s python3-sortedcontainers python3-toml python3-tomlkit 179s python3-trove-classifiers python3-ujson python3-wheel 179s Suggested packages: 179s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 179s cpp-14-doc dh-make flit gcc-14-doc gcc-multilib manpages-dev flex bison gdb 179s gcc-doc gdb-s390x-linux-gnu gettext-doc libasprintf-dev libgettextpo-dev 179s libstdc++-14-doc libtool-doc gfortran | fortran95-compiler gcj-jdk m4-doc 179s libmail-box-perl python3-pip python3-venv python-build-doc 179s python-hypothesis-doc python-installer-doc python-sortedcontainers-doc 179s Recommended packages: 179s libarchive-cpio-perl libltdl-dev libmail-sendmail-perl python3-bson-ext 179s python3-click python3-elasticsearch python3-freezegun python3-pygal 179s The following NEW packages will be installed: 179s autoconf automake autopkgtest-satdep autopoint autotools-dev build-essential 179s cpp cpp-14 cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit 179s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 179s g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu 179s gcc-s390x-linux-gnu gettext intltool-debian libarchive-zip-perl libasan8 179s libcc1-0 libdebhelper-perl libdouble-conversion3 179s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libisl23 libitm1 179s libmpc3 libstdc++-14-dev libtool libubsan1 m4 po-debconf 179s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all python3-bson 179s python3-build python3-cattr python3-cpuinfo python3-dateutil 179s python3-hatch-vcs python3-hatchling python3-hypothesis python3-iniconfig 179s python3-installer python3-msgpack python3-packaging python3-pathspec 179s python3-pluggy python3-pyproject-hooks python3-pytest 179s python3-pytest-benchmark python3-setuptools-scm python3-six 179s python3-sortedcontainers python3-toml python3-tomlkit 179s python3-trove-classifiers python3-ujson python3-wheel 179s 0 upgraded, 70 newly installed, 0 to remove and 0 not upgraded. 179s Need to get 54.7 MB/54.7 MB of archives. 179s After this operation, 175 MB of additional disk space will be used. 179s Get:1 /tmp/autopkgtest.bEs2lH/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [836 B] 179s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x m4 s390x 1.4.19-4build1 [256 kB] 180s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x autoconf all 2.72-3 [382 kB] 180s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x autotools-dev all 20220109.1 [44.9 kB] 180s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x automake all 1:1.16.5-1.3ubuntu1 [558 kB] 181s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x autopoint all 0.22.5-2 [616 kB] 181s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libisl23 s390x 0.27-1 [704 kB] 182s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libmpc3 s390x 1.3.1-1build2 [57.8 kB] 182s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14-s390x-linux-gnu s390x 14.2.0-7ubuntu1 [9570 kB] 192s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14 s390x 14.2.0-7ubuntu1 [1022 B] 192s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [5452 B] 192s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x cpp s390x 4:14.1.0-2ubuntu1 [22.4 kB] 192s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x libcc1-0 s390x 14.2.0-7ubuntu1 [50.6 kB] 192s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 14.2.0-7ubuntu1 [151 kB] 192s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x libitm1 s390x 14.2.0-7ubuntu1 [30.9 kB] 192s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x libasan8 s390x 14.2.0-7ubuntu1 [2963 kB] 195s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x libubsan1 s390x 14.2.0-7ubuntu1 [1184 kB] 197s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x libgcc-14-dev s390x 14.2.0-7ubuntu1 [1037 kB] 198s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14-s390x-linux-gnu s390x 14.2.0-7ubuntu1 [18.7 MB] 218s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14 s390x 14.2.0-7ubuntu1 [515 kB] 219s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [1204 B] 219s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x gcc s390x 4:14.1.0-2ubuntu1 [4996 B] 219s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x libstdc++-14-dev s390x 14.2.0-7ubuntu1 [2607 kB] 222s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14-s390x-linux-gnu s390x 14.2.0-7ubuntu1 [11.0 MB] 234s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14 s390x 14.2.0-7ubuntu1 [19.8 kB] 234s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x g++-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [956 B] 234s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x g++ s390x 4:14.1.0-2ubuntu1 [1076 B] 234s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x build-essential s390x 12.10ubuntu1 [4930 B] 234s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 234s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x libtool all 2.4.7-7build1 [166 kB] 234s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x dh-autoreconf all 20 [16.1 kB] 234s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 234s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 234s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x dh-strip-nondeterminism all 1.14.0-1 [5058 B] 234s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x debugedit s390x 1:5.1-1 [49.9 kB] 234s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x dwz s390x 0.15-1build6 [122 kB] 234s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x gettext s390x 0.22.5-2 [996 kB] 235s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 235s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 235s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x debhelper all 13.20ubuntu1 [893 kB] 236s Get:41 http://ftpmaster.internal/ubuntu plucky/universe s390x dh-python all 6.20241024 [112 kB] 236s Get:42 http://ftpmaster.internal/ubuntu plucky/universe s390x libdouble-conversion3 s390x 3.3.0-1build1 [43.9 kB] 237s Get:43 http://ftpmaster.internal/ubuntu plucky/universe s390x pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 237s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x python3-packaging all 24.1-1 [41.4 kB] 237s Get:45 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 237s Get:46 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-toml all 0.10.2-1 [16.5 kB] 237s Get:47 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wheel all 0.44.0-1 [54.2 kB] 237s Get:48 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-build all 1.2.2-1 [31.0 kB] 237s Get:49 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 237s Get:50 http://ftpmaster.internal/ubuntu plucky/universe s390x pybuild-plugin-pyproject all 6.20241024 [1728 B] 237s Get:51 http://ftpmaster.internal/ubuntu plucky/main s390x python3-all s390x 3.12.6-0ubuntu1 [890 B] 237s Get:52 http://ftpmaster.internal/ubuntu plucky/main s390x python3-bson all 4.7.3-2ubuntu1 [41.1 kB] 237s Get:53 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-cattr all 23.2.3-1 [38.1 kB] 237s Get:54 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-cpuinfo all 9.0.0+git20221119-2 [21.6 kB] 237s Get:55 http://ftpmaster.internal/ubuntu plucky/main s390x python3-six all 1.16.0-7 [13.1 kB] 237s Get:56 http://ftpmaster.internal/ubuntu plucky/main s390x python3-dateutil all 2.9.0-2 [80.3 kB] 237s Get:57 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pathspec all 0.12.1-1 [24.5 kB] 237s Get:58 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pluggy all 1.5.0-1 [21.0 kB] 237s Get:59 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-trove-classifiers all 2024.9.12-1 [10.8 kB] 237s Get:60 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-hatchling all 1.25.0-1 [54.8 kB] 237s Get:61 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-setuptools-scm all 8.1.0-1 [32.2 kB] 237s Get:62 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-hatch-vcs all 0.4.0-1 [7904 B] 237s Get:63 http://ftpmaster.internal/ubuntu plucky/main s390x python3-sortedcontainers all 2.4.0-2 [27.6 kB] 237s Get:64 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-hypothesis all 6.105.1-1 [321 kB] 238s Get:65 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 238s Get:66 http://ftpmaster.internal/ubuntu plucky/main s390x python3-msgpack s390x 1.0.3-3build2 [85.0 kB] 238s Get:67 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest all 8.3.2-1 [251 kB] 238s Get:68 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest-benchmark all 4.0.0-4 [38.3 kB] 238s Get:69 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-tomlkit all 0.13.2-1 [37.6 kB] 238s Get:70 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-ujson s390x 5.10.0-1 [26.2 kB] 238s Fetched 54.7 MB in 59s (926 kB/s) 238s Selecting previously unselected package m4. 238s (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 ... 55520 files and directories currently installed.) 238s Preparing to unpack .../00-m4_1.4.19-4build1_s390x.deb ... 238s Unpacking m4 (1.4.19-4build1) ... 238s Selecting previously unselected package autoconf. 238s Preparing to unpack .../01-autoconf_2.72-3_all.deb ... 238s Unpacking autoconf (2.72-3) ... 238s Selecting previously unselected package autotools-dev. 238s Preparing to unpack .../02-autotools-dev_20220109.1_all.deb ... 238s Unpacking autotools-dev (20220109.1) ... 238s Selecting previously unselected package automake. 238s Preparing to unpack .../03-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 238s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 238s Selecting previously unselected package autopoint. 238s Preparing to unpack .../04-autopoint_0.22.5-2_all.deb ... 238s Unpacking autopoint (0.22.5-2) ... 238s Selecting previously unselected package libisl23:s390x. 238s Preparing to unpack .../05-libisl23_0.27-1_s390x.deb ... 238s Unpacking libisl23:s390x (0.27-1) ... 238s Selecting previously unselected package libmpc3:s390x. 238s Preparing to unpack .../06-libmpc3_1.3.1-1build2_s390x.deb ... 238s Unpacking libmpc3:s390x (1.3.1-1build2) ... 238s Selecting previously unselected package cpp-14-s390x-linux-gnu. 238s Preparing to unpack .../07-cpp-14-s390x-linux-gnu_14.2.0-7ubuntu1_s390x.deb ... 238s Unpacking cpp-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package cpp-14. 239s Preparing to unpack .../08-cpp-14_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking cpp-14 (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package cpp-s390x-linux-gnu. 239s Preparing to unpack .../09-cpp-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 239s Unpacking cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 239s Selecting previously unselected package cpp. 239s Preparing to unpack .../10-cpp_4%3a14.1.0-2ubuntu1_s390x.deb ... 239s Unpacking cpp (4:14.1.0-2ubuntu1) ... 239s Selecting previously unselected package libcc1-0:s390x. 239s Preparing to unpack .../11-libcc1-0_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libcc1-0:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package libgomp1:s390x. 239s Preparing to unpack .../12-libgomp1_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libgomp1:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package libitm1:s390x. 239s Preparing to unpack .../13-libitm1_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libitm1:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package libasan8:s390x. 239s Preparing to unpack .../14-libasan8_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libasan8:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package libubsan1:s390x. 239s Preparing to unpack .../15-libubsan1_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libubsan1:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package libgcc-14-dev:s390x. 239s Preparing to unpack .../16-libgcc-14-dev_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libgcc-14-dev:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package gcc-14-s390x-linux-gnu. 239s Preparing to unpack .../17-gcc-14-s390x-linux-gnu_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking gcc-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package gcc-14. 239s Preparing to unpack .../18-gcc-14_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking gcc-14 (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package gcc-s390x-linux-gnu. 239s Preparing to unpack .../19-gcc-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 239s Unpacking gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 239s Selecting previously unselected package gcc. 239s Preparing to unpack .../20-gcc_4%3a14.1.0-2ubuntu1_s390x.deb ... 239s Unpacking gcc (4:14.1.0-2ubuntu1) ... 239s Selecting previously unselected package libstdc++-14-dev:s390x. 239s Preparing to unpack .../21-libstdc++-14-dev_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking libstdc++-14-dev:s390x (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package g++-14-s390x-linux-gnu. 239s Preparing to unpack .../22-g++-14-s390x-linux-gnu_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking g++-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package g++-14. 239s Preparing to unpack .../23-g++-14_14.2.0-7ubuntu1_s390x.deb ... 239s Unpacking g++-14 (14.2.0-7ubuntu1) ... 239s Selecting previously unselected package g++-s390x-linux-gnu. 239s Preparing to unpack .../24-g++-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 239s Unpacking g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 239s Selecting previously unselected package g++. 239s Preparing to unpack .../25-g++_4%3a14.1.0-2ubuntu1_s390x.deb ... 239s Unpacking g++ (4:14.1.0-2ubuntu1) ... 239s Selecting previously unselected package build-essential. 239s Preparing to unpack .../26-build-essential_12.10ubuntu1_s390x.deb ... 239s Unpacking build-essential (12.10ubuntu1) ... 239s Selecting previously unselected package libdebhelper-perl. 239s Preparing to unpack .../27-libdebhelper-perl_13.20ubuntu1_all.deb ... 239s Unpacking libdebhelper-perl (13.20ubuntu1) ... 239s Selecting previously unselected package libtool. 239s Preparing to unpack .../28-libtool_2.4.7-7build1_all.deb ... 239s Unpacking libtool (2.4.7-7build1) ... 239s Selecting previously unselected package dh-autoreconf. 239s Preparing to unpack .../29-dh-autoreconf_20_all.deb ... 239s Unpacking dh-autoreconf (20) ... 239s Selecting previously unselected package libarchive-zip-perl. 239s Preparing to unpack .../30-libarchive-zip-perl_1.68-1_all.deb ... 239s Unpacking libarchive-zip-perl (1.68-1) ... 239s Selecting previously unselected package libfile-stripnondeterminism-perl. 239s Preparing to unpack .../31-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 239s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 239s Selecting previously unselected package dh-strip-nondeterminism. 239s Preparing to unpack .../32-dh-strip-nondeterminism_1.14.0-1_all.deb ... 239s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 239s Selecting previously unselected package debugedit. 239s Preparing to unpack .../33-debugedit_1%3a5.1-1_s390x.deb ... 239s Unpacking debugedit (1:5.1-1) ... 239s Selecting previously unselected package dwz. 239s Preparing to unpack .../34-dwz_0.15-1build6_s390x.deb ... 239s Unpacking dwz (0.15-1build6) ... 239s Selecting previously unselected package gettext. 239s Preparing to unpack .../35-gettext_0.22.5-2_s390x.deb ... 239s Unpacking gettext (0.22.5-2) ... 239s Selecting previously unselected package intltool-debian. 239s Preparing to unpack .../36-intltool-debian_0.35.0+20060710.6_all.deb ... 239s Unpacking intltool-debian (0.35.0+20060710.6) ... 239s Selecting previously unselected package po-debconf. 239s Preparing to unpack .../37-po-debconf_1.0.21+nmu1_all.deb ... 239s Unpacking po-debconf (1.0.21+nmu1) ... 240s Selecting previously unselected package debhelper. 240s Preparing to unpack .../38-debhelper_13.20ubuntu1_all.deb ... 240s Unpacking debhelper (13.20ubuntu1) ... 240s Selecting previously unselected package dh-python. 240s Preparing to unpack .../39-dh-python_6.20241024_all.deb ... 240s Unpacking dh-python (6.20241024) ... 240s Selecting previously unselected package libdouble-conversion3:s390x. 240s Preparing to unpack .../40-libdouble-conversion3_3.3.0-1build1_s390x.deb ... 240s Unpacking libdouble-conversion3:s390x (3.3.0-1build1) ... 240s Selecting previously unselected package pybuild-plugin-autopkgtest. 240s Preparing to unpack .../41-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 240s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 240s Selecting previously unselected package python3-packaging. 240s Preparing to unpack .../42-python3-packaging_24.1-1_all.deb ... 240s Unpacking python3-packaging (24.1-1) ... 240s Selecting previously unselected package python3-pyproject-hooks. 240s Preparing to unpack .../43-python3-pyproject-hooks_1.2.0-1_all.deb ... 240s Unpacking python3-pyproject-hooks (1.2.0-1) ... 240s Selecting previously unselected package python3-toml. 240s Preparing to unpack .../44-python3-toml_0.10.2-1_all.deb ... 240s Unpacking python3-toml (0.10.2-1) ... 240s Selecting previously unselected package python3-wheel. 240s Preparing to unpack .../45-python3-wheel_0.44.0-1_all.deb ... 240s Unpacking python3-wheel (0.44.0-1) ... 240s Selecting previously unselected package python3-build. 240s Preparing to unpack .../46-python3-build_1.2.2-1_all.deb ... 240s Unpacking python3-build (1.2.2-1) ... 240s Selecting previously unselected package python3-installer. 240s Preparing to unpack .../47-python3-installer_0.7.0+dfsg1-3_all.deb ... 240s Unpacking python3-installer (0.7.0+dfsg1-3) ... 240s Selecting previously unselected package pybuild-plugin-pyproject. 240s Preparing to unpack .../48-pybuild-plugin-pyproject_6.20241024_all.deb ... 240s Unpacking pybuild-plugin-pyproject (6.20241024) ... 240s Selecting previously unselected package python3-all. 240s Preparing to unpack .../49-python3-all_3.12.6-0ubuntu1_s390x.deb ... 240s Unpacking python3-all (3.12.6-0ubuntu1) ... 240s Selecting previously unselected package python3-bson. 240s Preparing to unpack .../50-python3-bson_4.7.3-2ubuntu1_all.deb ... 240s Unpacking python3-bson (4.7.3-2ubuntu1) ... 240s Selecting previously unselected package python3-cattr. 240s Preparing to unpack .../51-python3-cattr_23.2.3-1_all.deb ... 240s Unpacking python3-cattr (23.2.3-1) ... 240s Selecting previously unselected package python3-cpuinfo. 240s Preparing to unpack .../52-python3-cpuinfo_9.0.0+git20221119-2_all.deb ... 240s Unpacking python3-cpuinfo (9.0.0+git20221119-2) ... 240s Selecting previously unselected package python3-six. 240s Preparing to unpack .../53-python3-six_1.16.0-7_all.deb ... 240s Unpacking python3-six (1.16.0-7) ... 240s Selecting previously unselected package python3-dateutil. 240s Preparing to unpack .../54-python3-dateutil_2.9.0-2_all.deb ... 240s Unpacking python3-dateutil (2.9.0-2) ... 240s Selecting previously unselected package python3-pathspec. 240s Preparing to unpack .../55-python3-pathspec_0.12.1-1_all.deb ... 240s Unpacking python3-pathspec (0.12.1-1) ... 240s Selecting previously unselected package python3-pluggy. 240s Preparing to unpack .../56-python3-pluggy_1.5.0-1_all.deb ... 240s Unpacking python3-pluggy (1.5.0-1) ... 240s Selecting previously unselected package python3-trove-classifiers. 240s Preparing to unpack .../57-python3-trove-classifiers_2024.9.12-1_all.deb ... 240s Unpacking python3-trove-classifiers (2024.9.12-1) ... 240s Selecting previously unselected package python3-hatchling. 240s Preparing to unpack .../58-python3-hatchling_1.25.0-1_all.deb ... 240s Unpacking python3-hatchling (1.25.0-1) ... 240s Selecting previously unselected package python3-setuptools-scm. 240s Preparing to unpack .../59-python3-setuptools-scm_8.1.0-1_all.deb ... 240s Unpacking python3-setuptools-scm (8.1.0-1) ... 240s Selecting previously unselected package python3-hatch-vcs. 240s Preparing to unpack .../60-python3-hatch-vcs_0.4.0-1_all.deb ... 240s Unpacking python3-hatch-vcs (0.4.0-1) ... 240s Selecting previously unselected package python3-sortedcontainers. 240s Preparing to unpack .../61-python3-sortedcontainers_2.4.0-2_all.deb ... 240s Unpacking python3-sortedcontainers (2.4.0-2) ... 240s Selecting previously unselected package python3-hypothesis. 240s Preparing to unpack .../62-python3-hypothesis_6.105.1-1_all.deb ... 240s Unpacking python3-hypothesis (6.105.1-1) ... 240s Selecting previously unselected package python3-iniconfig. 240s Preparing to unpack .../63-python3-iniconfig_1.1.1-2_all.deb ... 240s Unpacking python3-iniconfig (1.1.1-2) ... 240s Selecting previously unselected package python3-msgpack. 240s Preparing to unpack .../64-python3-msgpack_1.0.3-3build2_s390x.deb ... 240s Unpacking python3-msgpack (1.0.3-3build2) ... 240s Selecting previously unselected package python3-pytest. 240s Preparing to unpack .../65-python3-pytest_8.3.2-1_all.deb ... 240s Unpacking python3-pytest (8.3.2-1) ... 240s Selecting previously unselected package python3-pytest-benchmark. 240s Preparing to unpack .../66-python3-pytest-benchmark_4.0.0-4_all.deb ... 240s Unpacking python3-pytest-benchmark (4.0.0-4) ... 240s Selecting previously unselected package python3-tomlkit. 240s Preparing to unpack .../67-python3-tomlkit_0.13.2-1_all.deb ... 240s Unpacking python3-tomlkit (0.13.2-1) ... 240s Selecting previously unselected package python3-ujson:s390x. 240s Preparing to unpack .../68-python3-ujson_5.10.0-1_s390x.deb ... 240s Unpacking python3-ujson:s390x (5.10.0-1) ... 240s Selecting previously unselected package autopkgtest-satdep. 240s Preparing to unpack .../69-1-autopkgtest-satdep.deb ... 240s Unpacking autopkgtest-satdep (0) ... 240s Setting up dh-python (6.20241024) ... 240s Setting up python3-iniconfig (1.1.1-2) ... 240s Setting up libdouble-conversion3:s390x (3.3.0-1build1) ... 240s Setting up libarchive-zip-perl (1.68-1) ... 240s Setting up libdebhelper-perl (13.20ubuntu1) ... 240s Setting up m4 (1.4.19-4build1) ... 240s Setting up python3-all (3.12.6-0ubuntu1) ... 240s Setting up python3-sortedcontainers (2.4.0-2) ... 240s Setting up libgomp1:s390x (14.2.0-7ubuntu1) ... 240s Setting up python3-wheel (0.44.0-1) ... 240s Setting up python3-ujson:s390x (5.10.0-1) ... 240s Setting up python3-six (1.16.0-7) ... 240s Setting up python3-bson (4.7.3-2ubuntu1) ... 240s Setting up autotools-dev (20220109.1) ... 240s Setting up python3-packaging (24.1-1) ... 241s Setting up python3-cattr (23.2.3-1) ... 241s Setting up python3-pyproject-hooks (1.2.0-1) ... 241s Setting up libmpc3:s390x (1.3.1-1build2) ... 241s Setting up autopoint (0.22.5-2) ... 241s Setting up python3-cpuinfo (9.0.0+git20221119-2) ... 241s Setting up python3-toml (0.10.2-1) ... 241s Setting up python3-installer (0.7.0+dfsg1-3) ... 241s Setting up autoconf (2.72-3) ... 241s Setting up python3-pluggy (1.5.0-1) ... 241s Setting up libubsan1:s390x (14.2.0-7ubuntu1) ... 241s Setting up dwz (0.15-1build6) ... 241s Setting up python3-trove-classifiers (2024.9.12-1) ... 241s Setting up libasan8:s390x (14.2.0-7ubuntu1) ... 241s Setting up debugedit (1:5.1-1) ... 241s Setting up python3-dateutil (2.9.0-2) ... 241s Setting up python3-msgpack (1.0.3-3build2) ... 241s Setting up libisl23:s390x (0.27-1) ... 241s Setting up python3-build (1.2.2-1) ... 241s Setting up python3-tomlkit (0.13.2-1) ... 242s Setting up python3-pathspec (0.12.1-1) ... 242s Setting up libcc1-0:s390x (14.2.0-7ubuntu1) ... 242s Setting up libitm1:s390x (14.2.0-7ubuntu1) ... 242s Setting up automake (1:1.16.5-1.3ubuntu1) ... 242s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 242s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 242s Setting up gettext (0.22.5-2) ... 242s Setting up pybuild-plugin-pyproject (6.20241024) ... 242s Setting up python3-pytest (8.3.2-1) ... 242s Setting up python3-hypothesis (6.105.1-1) ... 242s Setting up python3-setuptools-scm (8.1.0-1) ... 242s Setting up intltool-debian (0.35.0+20060710.6) ... 242s Setting up cpp-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 242s Setting up cpp-14 (14.2.0-7ubuntu1) ... 242s Setting up dh-strip-nondeterminism (1.14.0-1) ... 242s Setting up python3-hatchling (1.25.0-1) ... 243s Setting up libgcc-14-dev:s390x (14.2.0-7ubuntu1) ... 243s Setting up libstdc++-14-dev:s390x (14.2.0-7ubuntu1) ... 243s Setting up python3-hatch-vcs (0.4.0-1) ... 243s Setting up python3-pytest-benchmark (4.0.0-4) ... 243s Setting up cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 243s Setting up po-debconf (1.0.21+nmu1) ... 243s Setting up gcc-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 243s Setting up gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 243s Setting up g++-14-s390x-linux-gnu (14.2.0-7ubuntu1) ... 243s Setting up cpp (4:14.1.0-2ubuntu1) ... 243s Setting up g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 243s Setting up gcc-14 (14.2.0-7ubuntu1) ... 243s Setting up g++-14 (14.2.0-7ubuntu1) ... 243s Setting up libtool (2.4.7-7build1) ... 243s Setting up gcc (4:14.1.0-2ubuntu1) ... 243s Setting up dh-autoreconf (20) ... 243s Setting up g++ (4:14.1.0-2ubuntu1) ... 243s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 243s Setting up build-essential (12.10ubuntu1) ... 243s Setting up debhelper (13.20ubuntu1) ... 243s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 243s Setting up autopkgtest-satdep (0) ... 243s Processing triggers for man-db (2.12.1-3) ... 244s Processing triggers for install-info (7.1.1-1) ... 244s Processing triggers for libc-bin (2.40-1ubuntu3) ... 246s (Reading database ... 58621 files and directories currently installed.) 246s Removing autopkgtest-satdep (0) ... 246s autopkgtest [15:07:20]: test pybuild-autopkgtest: pybuild-autopkgtest 246s autopkgtest [15:07:20]: test pybuild-autopkgtest: [----------------------- 246s pybuild-autopkgtest 247s I: pybuild base:311: cd /tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build; python3.12 -m pytest -v --ignore tests/test_unstructure_collections.py --ignore tests/test_preconf.py -k 'not test_orjson' 247s ============================= test session starts ============================== 247s platform linux -- Python 3.12.7+, pytest-8.3.2, pluggy-1.5.0 -- /usr/bin/python3.12 247s cachedir: .pytest_cache 247s benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=True warmup_iterations=5) 247s hypothesis profile 'tests' -> deadline=None, suppress_health_check=[HealthCheck.too_slow], database=DirectoryBasedExampleDatabase(PosixPath('/tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build/.hypothesis/examples')) 247s rootdir: /tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build 247s configfile: pyproject.toml 247s plugins: typeguard-4.4.1, benchmark-4.0.0, hypothesis-6.105.1 247s collecting ... collected 592 items 247s 247s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-_unstructure] PASSED [ 0%] 247s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-_undefined] PASSED [ 0%] 247s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_structure-None] PASSED [ 0%] 247s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-_unstructure] PASSED [ 0%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-_undefined] PASSED [ 0%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-_undefined-None] PASSED [ 1%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-_unstructure] PASSED [ 1%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-_undefined] PASSED [ 1%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Structure-None-None] PASSED [ 1%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-_unstructure] PASSED [ 1%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-_undefined] PASSED [ 1%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_structure-None] PASSED [ 2%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-_unstructure] PASSED [ 2%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-_undefined] PASSED [ 2%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-_undefined-None] PASSED [ 2%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-_unstructure] PASSED [ 2%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-_undefined] PASSED [ 2%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Unstructure-None-None] PASSED [ 3%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-_unstructure] PASSED [ 3%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-_undefined] PASSED [ 3%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_structure-None] PASSED [ 3%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-_unstructure] PASSED [ 3%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-_undefined] PASSED [ 3%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-_undefined-None] PASSED [ 4%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-_unstructure] PASSED [ 4%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-_undefined] PASSED [ 4%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-True-Both-None-None] PASSED [ 4%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-_unstructure] PASSED [ 4%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-_undefined] PASSED [ 4%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_structure-None] PASSED [ 5%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-_unstructure] PASSED [ 5%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-_undefined] PASSED [ 5%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-_undefined-None] PASSED [ 5%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-_unstructure] PASSED [ 5%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-_undefined] PASSED [ 5%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Structure-None-None] PASSED [ 6%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-_unstructure] PASSED [ 6%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-_undefined] PASSED [ 6%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_structure-None] PASSED [ 6%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-_unstructure] PASSED [ 6%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-_undefined] PASSED [ 6%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-_undefined-None] PASSED [ 7%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-_unstructure] PASSED [ 7%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-_undefined] PASSED [ 7%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Unstructure-None-None] PASSED [ 7%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-_unstructure] PASSED [ 7%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-_undefined] PASSED [ 7%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_structure-None] PASSED [ 8%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-_unstructure] PASSED [ 8%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-_undefined] PASSED [ 8%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-_undefined-None] PASSED [ 8%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-_unstructure] PASSED [ 8%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-_undefined] PASSED [ 8%] 248s tests/strategies/test_class_methods.py::test_not_nested[BaseConverter-False-Both-None-None] PASSED [ 9%] 248s tests/strategies/test_native_unions.py::test_only_primitives[BaseConverter-True] PASSED [ 9%] 248s tests/strategies/test_native_unions.py::test_only_primitives[BaseConverter-False] PASSED [ 9%] 248s tests/strategies/test_native_unions.py::test_literals[BaseConverter-True] PASSED [ 9%] 248s tests/strategies/test_native_unions.py::test_literals[BaseConverter-False] PASSED [ 9%] 248s tests/strategies/test_native_unions.py::test_spillover[BaseConverter-True] PASSED [ 9%] 248s tests/strategies/test_native_unions.py::test_spillover[BaseConverter-False] PASSED [ 10%] 248s tests/strategies/test_native_unions.py::test_multiple_spillover[BaseConverter-True] PASSED [ 10%] 248s tests/strategies/test_native_unions.py::test_multiple_spillover[BaseConverter-False] PASSED [ 10%] 248s tests/strategies/test_tagged_unions.py::test_defaults[BaseConverter-True] PASSED [ 10%] 248s tests/strategies/test_tagged_unions.py::test_defaults[BaseConverter-False] PASSED [ 10%] 248s tests/strategies/test_tagged_unions.py::test_tag_name[BaseConverter-True] PASSED [ 10%] 248s tests/strategies/test_tagged_unions.py::test_tag_name[BaseConverter-False] PASSED [ 11%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator[BaseConverter-True] PASSED [ 11%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator[BaseConverter-False] PASSED [ 11%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator_dict[BaseConverter-True] PASSED [ 11%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator_dict[BaseConverter-False] PASSED [ 11%] 248s tests/strategies/test_tagged_unions.py::test_default_member[BaseConverter-True] PASSED [ 11%] 248s tests/strategies/test_tagged_unions.py::test_default_member[BaseConverter-False] PASSED [ 12%] 248s tests/strategies/test_tagged_unions.py::test_default_member_validation[BaseConverter-True] PASSED [ 12%] 248s tests/strategies/test_tagged_unions.py::test_default_member_validation[BaseConverter-False] PASSED [ 12%] 248s tests/test_any.py::test_unstructuring_dict_of_any[BaseConverter-True] PASSED [ 12%] 248s tests/test_any.py::test_unstructuring_dict_of_any[BaseConverter-False] PASSED [ 12%] 248s tests/test_converter.py::test_unstructure_fallbacks[BaseConverter] PASSED [ 13%] 248s tests/test_converter.py::test_structure_fallbacks[BaseConverter] PASSED [ 13%] 248s tests/test_converter.py::test_fallback_chaining[BaseConverter] PASSED [ 13%] 248s tests/test_converter_inheritance.py::test_inheritance[BaseConverter-True] PASSED [ 13%] 248s tests/test_converter_inheritance.py::test_inheritance[BaseConverter-False] PASSED [ 13%] 248s tests/test_converter_inheritance.py::test_gen_hook_priority[BaseConverter-True] PASSED [ 13%] 248s tests/test_converter_inheritance.py::test_gen_hook_priority[BaseConverter-False] PASSED [ 14%] 248s tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Hashable] PASSED [ 14%] 248s tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Iterable] PASSED [ 14%] 248s tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-True-Reversible] PASSED [ 14%] 248s tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Hashable] PASSED [ 14%] 248s tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Iterable] PASSED [ 14%] 248s tests/test_converter_inheritance.py::test_inherit_typing[BaseConverter-False-Reversible] PASSED [ 15%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Hashable] PASSED [ 15%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Iterable] PASSED [ 15%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-True-Reversible] PASSED [ 15%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Hashable] PASSED [ 15%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Iterable] PASSED [ 15%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[BaseConverter-False-Reversible] PASSED [ 16%] 248s tests/test_copy.py::test_deepcopy[BaseConverter] PASSED [ 16%] 248s tests/test_copy.py::test_copy[BaseConverter] PASSED [ 16%] 248s tests/test_copy.py::test_copy_hooks[BaseConverter] PASSED [ 16%] 248s tests/test_copy.py::test_copy_func_hooks[BaseConverter] PASSED [ 16%] 248s tests/test_dataclasses.py::test_dataclasses_in_attrs[BaseConverter-True] PASSED [ 16%] 248s tests/test_dataclasses.py::test_dataclasses_in_attrs[BaseConverter-False] PASSED [ 17%] 248s tests/test_dataclasses.py::test_dataclasses_in_container[BaseConverter-True] PASSED [ 17%] 248s tests/test_dataclasses.py::test_dataclasses_in_container[BaseConverter-False] PASSED [ 17%] 248s tests/test_dataclasses.py::test_dataclasses[BaseConverter-True] PASSED [ 17%] 248s tests/test_dataclasses.py::test_dataclasses[BaseConverter-False] PASSED [ 17%] 248s tests/test_disambiguators.py::test_converter_no_literals[BaseConverter-True] PASSED [ 17%] 248s tests/test_disambiguators.py::test_converter_no_literals[BaseConverter-False] PASSED [ 18%] 248s tests/test_factory_hooks.py::test_snake_to_camel[BaseConverter] PASSED [ 18%] 248s tests/test_gen_dict.py::test_omitting[BaseConverter-True] PASSED [ 18%] 248s tests/test_gen_dict.py::test_omitting[BaseConverter-False] PASSED [ 18%] 248s tests/test_gen_dict.py::test_omitting_none[BaseConverter-True] PASSED [ 18%] 248s tests/test_gen_dict.py::test_omitting_none[BaseConverter-False] PASSED [ 18%] 248s tests/test_gen_dict.py::test_overriding_struct_hook[BaseConverter-True] PASSED [ 19%] 248s tests/test_gen_dict.py::test_overriding_struct_hook[BaseConverter-False] PASSED [ 19%] 248s tests/test_gen_dict.py::test_overriding_unstruct_hook[BaseConverter-True] PASSED [ 19%] 248s tests/test_gen_dict.py::test_overriding_unstruct_hook[BaseConverter-False] PASSED [ 19%] 248s tests/test_gen_dict.py::test_alias_keys[BaseConverter-True] PASSED [ 19%] 248s tests/test_gen_dict.py::test_alias_keys[BaseConverter-False] PASSED [ 19%] 248s tests/test_gen_dict.py::test_init_false[BaseConverter-True] PASSED [ 20%] 248s tests/test_gen_dict.py::test_init_false[BaseConverter-False] PASSED [ 20%] 248s tests/test_gen_dict.py::test_init_false_overridden[BaseConverter-True] PASSED [ 20%] 248s tests/test_gen_dict.py::test_init_false_overridden[BaseConverter-False] PASSED [ 20%] 248s tests/test_gen_dict.py::test_init_false_field_override[BaseConverter-True] PASSED [ 20%] 248s tests/test_gen_dict.py::test_init_false_field_override[BaseConverter-False] PASSED [ 20%] 248s tests/test_gen_dict.py::test_detailed_validation_from_converter[BaseConverter-True] PASSED [ 21%] 248s tests/test_gen_dict.py::test_detailed_validation_from_converter[BaseConverter-False] PASSED [ 21%] 248s tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-int-str-result0] PASSED [ 21%] 248s tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-str-str-result1] PASSED [ 21%] 248s tests/test_generics.py::test_able_to_structure_generics[BaseConverter-True-List-str-result2] PASSED [ 21%] 248s tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-int-str-result0] PASSED [ 21%] 248s tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-str-str-result1] PASSED [ 22%] 248s tests/test_generics.py::test_able_to_structure_generics[BaseConverter-False-List-str-result2] PASSED [ 22%] 248s tests/test_generics.py::test_structure_nested_generics[BaseConverter-True-TClass-str-result0] PASSED [ 22%] 248s tests/test_generics.py::test_structure_nested_generics[BaseConverter-True-List-str-result1] PASSED [ 22%] 248s tests/test_generics.py::test_structure_nested_generics[BaseConverter-False-TClass-str-result0] PASSED [ 22%] 248s tests/test_generics.py::test_structure_nested_generics[BaseConverter-False-List-str-result1] PASSED [ 22%] 248s tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[BaseConverter-True] PASSED [ 23%] 248s tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[BaseConverter-False] PASSED [ 23%] 248s tests/test_generics.py::test_structure_unions_of_generics[BaseConverter-True] PASSED [ 23%] 248s tests/test_generics.py::test_structure_unions_of_generics[BaseConverter-False] PASSED [ 23%] 248s tests/test_generics.py::test_structure_list_of_generic_unions[BaseConverter-True] PASSED [ 23%] 248s tests/test_generics.py::test_structure_list_of_generic_unions[BaseConverter-False] PASSED [ 23%] 248s tests/test_generics.py::test_structure_deque_of_generic_unions[BaseConverter-True] PASSED [ 24%] 248s tests/test_generics.py::test_structure_deque_of_generic_unions[BaseConverter-False] PASSED [ 24%] 248s tests/test_generics.py::test_raises_if_no_generic_params_supplied[BaseConverter-True] PASSED [ 24%] 248s tests/test_generics.py::test_raises_if_no_generic_params_supplied[BaseConverter-False] PASSED [ 24%] 248s tests/test_generics.py::test_nongeneric_protocols[BaseConverter-True] PASSED [ 24%] 248s tests/test_generics.py::test_nongeneric_protocols[BaseConverter-False] PASSED [ 25%] 248s tests/test_optionals.py::test_optional_any[BaseConverter-True] PASSED [ 25%] 248s tests/test_optionals.py::test_optional_any[BaseConverter-False] PASSED [ 25%] 248s tests/test_typeddicts.py::test_detailed_validation_from_converter[BaseConverter-True] PASSED [ 25%] 248s tests/test_typeddicts.py::test_detailed_validation_from_converter[BaseConverter-False] PASSED [ 25%] 248s tests/test_unstructure.py::test_unstructure_hook_func[BaseConverter-True] PASSED [ 25%] 248s tests/test_unstructure.py::test_unstructure_hook_func[BaseConverter-False] PASSED [ 26%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-_unstructure] PASSED [ 26%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-_undefined] PASSED [ 26%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_structure-None] PASSED [ 26%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-_unstructure] PASSED [ 26%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-_undefined] PASSED [ 26%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-_undefined-None] PASSED [ 27%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-_unstructure] PASSED [ 27%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-_undefined] PASSED [ 27%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Structure-None-None] PASSED [ 27%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-_unstructure] PASSED [ 27%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-_undefined] PASSED [ 27%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_structure-None] PASSED [ 28%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-_unstructure] PASSED [ 28%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-_undefined] PASSED [ 28%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-_undefined-None] PASSED [ 28%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-_unstructure] PASSED [ 28%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-_undefined] PASSED [ 28%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Unstructure-None-None] PASSED [ 29%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-_unstructure] PASSED [ 29%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-_undefined] PASSED [ 29%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_structure-None] PASSED [ 29%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-_unstructure] PASSED [ 29%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-_undefined] PASSED [ 29%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-_undefined-None] PASSED [ 30%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-_unstructure] PASSED [ 30%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-_undefined] PASSED [ 30%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-True-Both-None-None] PASSED [ 30%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-_unstructure] PASSED [ 30%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-_undefined] PASSED [ 30%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_structure-None] PASSED [ 31%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-_unstructure] PASSED [ 31%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-_undefined] PASSED [ 31%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-_undefined-None] PASSED [ 31%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-_unstructure] PASSED [ 31%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-_undefined] PASSED [ 31%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Structure-None-None] PASSED [ 32%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-_unstructure] PASSED [ 32%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-_undefined] PASSED [ 32%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_structure-None] PASSED [ 32%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-_unstructure] PASSED [ 32%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-_undefined] PASSED [ 32%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-_undefined-None] PASSED [ 33%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-_unstructure] PASSED [ 33%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-_undefined] PASSED [ 33%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Unstructure-None-None] PASSED [ 33%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-_unstructure] PASSED [ 33%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-_undefined] PASSED [ 33%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_structure-None] PASSED [ 34%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-_unstructure] PASSED [ 34%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-_undefined] PASSED [ 34%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-_undefined-None] PASSED [ 34%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-_unstructure] PASSED [ 34%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-_undefined] PASSED [ 34%] 248s tests/strategies/test_class_methods.py::test_not_nested[Converter-False-Both-None-None] PASSED [ 35%] 248s tests/strategies/test_native_unions.py::test_only_primitives[Converter-True] PASSED [ 35%] 248s tests/strategies/test_native_unions.py::test_only_primitives[Converter-False] PASSED [ 35%] 248s tests/strategies/test_native_unions.py::test_literals[Converter-True] PASSED [ 35%] 248s tests/strategies/test_native_unions.py::test_literals[Converter-False] PASSED [ 35%] 248s tests/strategies/test_native_unions.py::test_spillover[Converter-True] PASSED [ 35%] 248s tests/strategies/test_native_unions.py::test_spillover[Converter-False] PASSED [ 36%] 248s tests/strategies/test_native_unions.py::test_multiple_spillover[Converter-True] PASSED [ 36%] 248s tests/strategies/test_native_unions.py::test_multiple_spillover[Converter-False] PASSED [ 36%] 248s tests/strategies/test_tagged_unions.py::test_defaults[Converter-True] PASSED [ 36%] 248s tests/strategies/test_tagged_unions.py::test_defaults[Converter-False] PASSED [ 36%] 248s tests/strategies/test_tagged_unions.py::test_tag_name[Converter-True] PASSED [ 36%] 248s tests/strategies/test_tagged_unions.py::test_tag_name[Converter-False] PASSED [ 37%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator[Converter-True] PASSED [ 37%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator[Converter-False] PASSED [ 37%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator_dict[Converter-True] PASSED [ 37%] 248s tests/strategies/test_tagged_unions.py::test_tag_generator_dict[Converter-False] PASSED [ 37%] 248s tests/strategies/test_tagged_unions.py::test_default_member[Converter-True] PASSED [ 38%] 248s tests/strategies/test_tagged_unions.py::test_default_member[Converter-False] PASSED [ 38%] 248s tests/strategies/test_tagged_unions.py::test_default_member_validation[Converter-True] PASSED [ 38%] 248s tests/strategies/test_tagged_unions.py::test_default_member_validation[Converter-False] PASSED [ 38%] 248s tests/test_any.py::test_unstructuring_dict_of_any[Converter-True] PASSED [ 38%] 248s tests/test_any.py::test_unstructuring_dict_of_any[Converter-False] PASSED [ 38%] 248s tests/test_converter.py::test_unstructure_fallbacks[Converter] PASSED [ 39%] 248s tests/test_converter.py::test_structure_fallbacks[Converter] PASSED [ 39%] 248s tests/test_converter.py::test_fallback_chaining[Converter] PASSED [ 39%] 248s tests/test_converter_inheritance.py::test_inheritance[Converter-True] PASSED [ 39%] 248s tests/test_converter_inheritance.py::test_inheritance[Converter-False] PASSED [ 39%] 248s tests/test_converter_inheritance.py::test_gen_hook_priority[Converter-True] PASSED [ 39%] 248s tests/test_converter_inheritance.py::test_gen_hook_priority[Converter-False] PASSED [ 40%] 248s tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Hashable] PASSED [ 40%] 248s tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Iterable] PASSED [ 40%] 248s tests/test_converter_inheritance.py::test_inherit_typing[Converter-True-Reversible] PASSED [ 40%] 248s tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Hashable] PASSED [ 40%] 248s tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Iterable] PASSED [ 40%] 248s tests/test_converter_inheritance.py::test_inherit_typing[Converter-False-Reversible] PASSED [ 41%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Hashable] PASSED [ 41%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Iterable] PASSED [ 41%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-True-Reversible] PASSED [ 41%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Hashable] PASSED [ 41%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Iterable] PASSED [ 41%] 248s tests/test_converter_inheritance.py::test_inherit_collections_abc[Converter-False-Reversible] PASSED [ 42%] 248s tests/test_copy.py::test_deepcopy[Converter] PASSED [ 42%] 248s tests/test_copy.py::test_copy[Converter] PASSED [ 42%] 248s tests/test_copy.py::test_copy_hooks[Converter] PASSED [ 42%] 248s tests/test_copy.py::test_copy_func_hooks[Converter] PASSED [ 42%] 248s tests/test_dataclasses.py::test_dataclasses_in_attrs[Converter-True] PASSED [ 42%] 248s tests/test_dataclasses.py::test_dataclasses_in_attrs[Converter-False] PASSED [ 43%] 248s tests/test_dataclasses.py::test_dataclasses_in_container[Converter-True] PASSED [ 43%] 248s tests/test_dataclasses.py::test_dataclasses_in_container[Converter-False] PASSED [ 43%] 248s tests/test_dataclasses.py::test_dataclasses[Converter-True] PASSED [ 43%] 248s tests/test_dataclasses.py::test_dataclasses[Converter-False] PASSED [ 43%] 248s tests/test_disambiguators.py::test_converter_no_literals[Converter-True] PASSED [ 43%] 248s tests/test_disambiguators.py::test_converter_no_literals[Converter-False] PASSED [ 44%] 248s tests/test_factory_hooks.py::test_snake_to_camel[Converter] PASSED [ 44%] 248s tests/test_gen_dict.py::test_omitting[Converter-True] PASSED [ 44%] 248s tests/test_gen_dict.py::test_omitting[Converter-False] PASSED [ 44%] 248s tests/test_gen_dict.py::test_omitting_none[Converter-True] PASSED [ 44%] 248s tests/test_gen_dict.py::test_omitting_none[Converter-False] PASSED [ 44%] 248s tests/test_gen_dict.py::test_overriding_struct_hook[Converter-True] PASSED [ 45%] 248s tests/test_gen_dict.py::test_overriding_struct_hook[Converter-False] PASSED [ 45%] 248s tests/test_gen_dict.py::test_overriding_unstruct_hook[Converter-True] PASSED [ 45%] 248s tests/test_gen_dict.py::test_overriding_unstruct_hook[Converter-False] PASSED [ 45%] 248s tests/test_gen_dict.py::test_alias_keys[Converter-True] PASSED [ 45%] 248s tests/test_gen_dict.py::test_alias_keys[Converter-False] PASSED [ 45%] 248s tests/test_gen_dict.py::test_init_false[Converter-True] PASSED [ 46%] 248s tests/test_gen_dict.py::test_init_false[Converter-False] PASSED [ 46%] 248s tests/test_gen_dict.py::test_init_false_overridden[Converter-True] PASSED [ 46%] 248s tests/test_gen_dict.py::test_init_false_overridden[Converter-False] PASSED [ 46%] 248s tests/test_gen_dict.py::test_init_false_field_override[Converter-True] PASSED [ 46%] 248s tests/test_gen_dict.py::test_init_false_field_override[Converter-False] PASSED [ 46%] 248s tests/test_gen_dict.py::test_detailed_validation_from_converter[Converter-True] PASSED [ 47%] 248s tests/test_gen_dict.py::test_detailed_validation_from_converter[Converter-False] PASSED [ 47%] 248s tests/test_generics.py::test_able_to_structure_generics[Converter-True-int-str-result0] PASSED [ 47%] 248s tests/test_generics.py::test_able_to_structure_generics[Converter-True-str-str-result1] PASSED [ 47%] 248s tests/test_generics.py::test_able_to_structure_generics[Converter-True-List-str-result2] PASSED [ 47%] 248s tests/test_generics.py::test_able_to_structure_generics[Converter-False-int-str-result0] PASSED [ 47%] 248s tests/test_generics.py::test_able_to_structure_generics[Converter-False-str-str-result1] PASSED [ 48%] 248s tests/test_generics.py::test_able_to_structure_generics[Converter-False-List-str-result2] PASSED [ 48%] 248s tests/test_generics.py::test_structure_nested_generics[Converter-True-TClass-str-result0] PASSED [ 48%] 248s tests/test_generics.py::test_structure_nested_generics[Converter-True-List-str-result1] PASSED [ 48%] 248s tests/test_generics.py::test_structure_nested_generics[Converter-False-TClass-str-result0] PASSED [ 48%] 248s tests/test_generics.py::test_structure_nested_generics[Converter-False-List-str-result1] PASSED [ 48%] 248s tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[Converter-True] PASSED [ 49%] 248s tests/test_generics.py::test_able_to_structure_deeply_nested_generics_gen[Converter-False] PASSED [ 49%] 248s tests/test_generics.py::test_structure_unions_of_generics[Converter-True] PASSED [ 49%] 248s tests/test_generics.py::test_structure_unions_of_generics[Converter-False] PASSED [ 49%] 248s tests/test_generics.py::test_structure_list_of_generic_unions[Converter-True] PASSED [ 49%] 248s tests/test_generics.py::test_structure_list_of_generic_unions[Converter-False] PASSED [ 50%] 248s tests/test_generics.py::test_structure_deque_of_generic_unions[Converter-True] PASSED [ 50%] 248s tests/test_generics.py::test_structure_deque_of_generic_unions[Converter-False] PASSED [ 50%] 248s tests/test_generics.py::test_raises_if_no_generic_params_supplied[Converter-True] PASSED [ 50%] 248s tests/test_generics.py::test_raises_if_no_generic_params_supplied[Converter-False] PASSED [ 50%] 248s tests/test_generics.py::test_nongeneric_protocols[Converter-True] PASSED [ 50%] 248s tests/test_generics.py::test_nongeneric_protocols[Converter-False] PASSED [ 51%] 248s tests/test_optionals.py::test_optional_any[Converter-True] PASSED [ 51%] 248s tests/test_optionals.py::test_optional_any[Converter-False] PASSED [ 51%] 248s tests/test_typeddicts.py::test_detailed_validation_from_converter[Converter-True] PASSED [ 51%] 248s tests/test_typeddicts.py::test_detailed_validation_from_converter[Converter-False] PASSED [ 51%] 248s tests/test_unstructure.py::test_unstructure_hook_func[Converter-True] PASSED [ 51%] 248s tests/test_unstructure.py::test_unstructure_hook_func[Converter-False] PASSED [ 52%] 248s tests/strategies/test_class_methods.py::test_nested_roundtrip PASSED [ 52%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-parent-only] PASSED [ 52%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-child1-only] PASSED [ 52%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-child2-only] PASSED [ 52%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-grandchild-only] PASSED [ 52%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-parent] PASSED [ 53%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-child] PASSED [ 53%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-compose-grandchild] PASSED [ 53%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-parent] PASSED [ 53%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-child] PASSED [ 53%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-compose-grandchild] PASSED [ 53%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-union-container] PASSED [ 54%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-non-union-container] PASSED [ 54%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-parent-only] PASSED [ 54%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-child1-only] PASSED [ 54%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-child2-only] PASSED [ 54%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-grandchild-only] PASSED [ 54%] 248s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-parent] PASSED [ 55%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-child] PASSED [ 55%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-grandchild] PASSED [ 55%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-parent] PASSED [ 55%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-child] PASSED [ 55%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-grandchild] PASSED [ 55%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-union-container] PASSED [ 56%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[with-subclasses-and-tagged-union-non-union-container] PASSED [ 56%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-parent-only] PASSED [ 56%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-child1-only] XFAIL [ 56%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-child2-only] XFAIL [ 56%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-grandchild-only] XFAIL [ 56%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-parent] PASSED [ 57%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-child] PASSED [ 57%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-compose-grandchild] PASSED [ 57%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-parent] XFAIL [ 57%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-child] XFAIL [ 57%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-compose-grandchild] XFAIL [ 57%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-union-container] PASSED [ 58%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_inheritance[wo-subclasses-non-union-container] XFAIL [ 58%] 249s tests/strategies/test_include_subclasses.py::test_structure_as_union PASSED [ 58%] 249s tests/strategies/test_include_subclasses.py::test_circular_reference[with-subclasses] PASSED [ 58%] 249s tests/strategies/test_include_subclasses.py::test_circular_reference[with-subclasses-and-tagged-union] PASSED [ 58%] 249s tests/strategies/test_include_subclasses.py::test_circular_reference[wo-subclasses] XFAIL [ 58%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-parent-only] PASSED [ 59%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-child1-only] PASSED [ 59%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-child2-only] PASSED [ 59%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-grandchild-only] PASSED [ 59%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-parent] PASSED [ 59%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-child] PASSED [ 59%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-compose-grandchild] PASSED [ 60%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-parent] PASSED [ 60%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-child] PASSED [ 60%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-compose-grandchild] PASSED [ 60%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-union-container] PASSED [ 60%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-non-union-container] PASSED [ 60%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-parent-only] PASSED [ 61%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-child1-only] PASSED [ 61%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-child2-only] PASSED [ 61%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-grandchild-only] PASSED [ 61%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-parent] PASSED [ 61%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-child] PASSED [ 61%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-compose-grandchild] PASSED [ 62%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-parent] PASSED [ 62%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-child] PASSED [ 62%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-compose-grandchild] PASSED [ 62%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-union-container] PASSED [ 62%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[with-subclasses-and-tagged-union-non-union-container] PASSED [ 63%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-parent-only] PASSED [ 63%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-child1-only] XFAIL [ 63%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-child2-only] XFAIL [ 63%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-grandchild-only] XFAIL [ 63%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-parent] PASSED [ 63%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-child] PASSED [ 64%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-compose-grandchild] PASSED [ 64%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-parent] XFAIL [ 64%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-child] XFAIL [ 64%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-compose-grandchild] XFAIL [ 64%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-union-container] PASSED [ 64%] 249s tests/strategies/test_include_subclasses.py::test_unstructuring_with_inheritance[wo-subclasses-non-union-container] XFAIL [ 65%] 249s tests/strategies/test_include_subclasses.py::test_structuring_unstructuring_unknown_subclass PASSED [ 65%] 249s tests/strategies/test_include_subclasses.py::test_structuring_with_subclasses_argument PASSED [ 65%] 250s tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-parent-only] PASSED [ 65%] 250s tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-child1-only] PASSED [ 65%] 250s tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-child2-only] PASSED [ 65%] 250s tests/strategies/test_include_subclasses.py::test_overrides[with-union-strategy-grandchild-only] PASSED [ 66%] 250s tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-parent-only] PASSED [ 66%] 250s tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-child1-only] PASSED [ 66%] 250s tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-child2-only] PASSED [ 66%] 250s tests/strategies/test_include_subclasses.py::test_overrides[wo-union-strategy-grandchild-only] PASSED [ 66%] 250s tests/strategies/test_native_unions.py::test_skip_optionals PASSED [ 66%] 250s tests/strategies/test_tagged_unions.py::test_forbid_extra_keys PASSED [ 67%] 250s tests/strategies/test_tagged_unions.py::test_forbid_extra_keys_default PASSED [ 67%] 250s tests/strategies/test_tagged_unions.py::test_nested_sequence_union PASSED [ 67%] 253s tests/test_baseconverter.py::test_simple_roundtrip FAILED [ 67%] 254s tests/test_baseconverter.py::test_simple_roundtrip_defaults PASSED [ 67%] 339s tests/test_baseconverter.py::test_nested_roundtrip FAILED [ 67%] 649s tests/test_baseconverter.py::test_nested_roundtrip_tuple FAILED [ 68%] 874s tests/test_baseconverter.py::test_union_field_roundtrip FAILED [ 68%] 965s tests/test_baseconverter.py::test_310_union_field_roundtrip FAILED [ 68%] 980s tests/test_baseconverter.py::test_optional_field_roundtrip FAILED [ 68%] 983s tests/test_baseconverter.py::test_310_optional_field_roundtrip FAILED [ 68%] 986s tests/test_converter.py::test_simple_roundtrip PASSED [ 68%] 988s tests/test_converter.py::test_simple_roundtrip_tuple PASSED [ 69%] 988s tests/test_converter.py::test_simple_roundtrip_defaults FAILED [ 69%] 989s tests/test_converter.py::test_simple_roundtrip_defaults_tuple FAILED [ 69%] 1010s tests/test_converter.py::test_simple_roundtrip_with_extra_keys_forbidden FAILED [ 69%] 1014s tests/test_converter.py::test_forbid_extra_keys PASSED [ 69%] 1014s tests/test_converter.py::test_forbid_extra_keys_defaults PASSED [ 69%] 1014s tests/test_converter.py::test_forbid_extra_keys_nested_override PASSED [ 70%] 1037s tests/test_converter.py::test_nested_roundtrip FAILED [ 70%] 1149s tests/test_converter.py::test_nested_roundtrip_tuple FAILED [ 70%] 1454s tests/test_converter.py::test_union_field_roundtrip FAILED [ 70%] 1504s tests/test_converter.py::test_310_union_field_roundtrip FAILED [ 70%] 1509s tests/test_converter.py::test_optional_field_roundtrip FAILED [ 70%] 1516s tests/test_converter.py::test_310_optional_field_roundtrip FAILED [ 71%] 1517s tests/test_converter.py::test_omit_default_roundtrip FAILED [ 71%] 1517s tests/test_converter.py::test_dict_roundtrip_with_alias PASSED [ 71%] 1519s tests/test_converter.py::test_type_overrides PASSED [ 71%] 1519s tests/test_converter.py::test_calling_back PASSED [ 71%] 1519s tests/test_converter.py::test_overriding_generated_unstructure PASSED [ 71%] 1519s tests/test_converter.py::test_overriding_generated_unstructure_hook_func PASSED [ 72%] 1519s tests/test_converter.py::test_overriding_generated_structure PASSED [ 72%] 1519s tests/test_converter.py::test_overriding_generated_structure_hook_func PASSED [ 72%] 1525s tests/test_converter.py::test_seq_of_simple_classes_unstructure PASSED [ 72%] 1526s tests/test_converter.py::test_seq_of_bare_classes_structure PASSED [ 72%] 1526s tests/test_converter.py::test_annotated_attrs PASSED [ 72%] 1526s tests/test_converter.py::test_annotated_with_typing_extensions_attrs PASSED [ 73%] 1526s tests/test_copy.py::test_copy_converter PASSED [ 73%] 1526s tests/test_copy.py::test_detailed_validation PASSED [ 73%] 1526s tests/test_copy.py::test_col_overrides PASSED [ 73%] 1526s tests/test_disambiguators.py::test_edge_errors PASSED [ 73%] 1527s tests/test_disambiguators.py::test_fallback PASSED [ 73%] 1542s tests/test_disambiguators.py::test_disambiguation PASSED [ 74%] 1542s tests/test_disambiguators.py::test_disambiguate_from_discriminated_enum PASSED [ 74%] 1542s tests/test_disambiguators.py::test_default_no_literals PASSED [ 74%] 1542s tests/test_final.py::test_unstructure_final[True] PASSED [ 74%] 1542s tests/test_final.py::test_unstructure_final[False] PASSED [ 74%] 1542s tests/test_final.py::test_structure_final[True] PASSED [ 75%] 1542s tests/test_final.py::test_structure_final[False] PASSED [ 75%] 1542s tests/test_final.py::test_unstructure_bare_final[True] PASSED [ 75%] 1542s tests/test_final.py::test_unstructure_bare_final[False] PASSED [ 75%] 1542s tests/test_final.py::test_structure_bare_final[True] PASSED [ 75%] 1542s tests/test_final.py::test_structure_bare_final[False] PASSED [ 75%] 1542s tests/test_function_dispatch.py::test_function_dispatch PASSED [ 76%] 1542s tests/test_function_dispatch.py::test_function_clears_cache_after_function_added PASSED [ 76%] 1542s tests/test_gen.py::test_structure_linecache PASSED [ 76%] 1542s tests/test_gen.py::test_unstructure_linecache PASSED [ 76%] 1542s tests/test_gen.py::test_no_linecache PASSED [ 76%] 1542s tests/test_gen.py::test_linecache_dedup PASSED [ 76%] 1546s tests/test_gen_dict.py::test_unmodified_generated_unstructuring PASSED [ 77%] 1551s tests/test_gen_dict.py::test_nodefs_generated_unstructuring PASSED [ 77%] 1556s tests/test_gen_dict.py::test_nodefs_generated_unstructuring_cl PASSED [ 77%] 1560s tests/test_gen_dict.py::test_individual_overrides PASSED [ 77%] 1564s tests/test_gen_dict.py::test_unmodified_generated_structuring PASSED [ 77%] 1566s tests/test_gen_dict.py::test_renaming PASSED [ 77%] 1566s tests/test_gen_dict.py::test_renaming_forbid_extra_keys PASSED [ 78%] 1566s tests/test_gen_dict.py::test_omitting_structure[True] PASSED [ 78%] 1566s tests/test_gen_dict.py::test_omitting_structure[False] PASSED [ 78%] 1566s tests/test_gen_dict.py::test_type_names_with_quotes PASSED [ 78%] 1566s tests/test_gen_dict.py::test_forbid_extra_keys_from_converter PASSED [ 78%] 1566s tests/test_gen_dict.py::test_forbid_extra_keys_from_baseconverter PASSED [ 78%] 1566s tests/test_gen_dict_563.py::test_roundtrip PASSED [ 79%] 1566s tests/test_gen_dict_563.py::test_roundtrip_dc PASSED [ 79%] 1566s tests/test_generics.py::test_deep_copy PASSED [ 79%] 1566s tests/test_generics.py::test_structure_generics_with_cols[True-int-result0] PASSED [ 79%] 1566s tests/test_generics.py::test_structure_generics_with_cols[True-str-result1] PASSED [ 79%] 1566s tests/test_generics.py::test_structure_generics_with_cols[False-int-result0] PASSED [ 79%] 1566s tests/test_generics.py::test_structure_generics_with_cols[False-str-result1] PASSED [ 80%] 1566s tests/test_generics.py::test_39_structure_generics_with_cols[int-result0] PASSED [ 80%] 1566s tests/test_generics.py::test_39_structure_generics_with_cols[str-result1] PASSED [ 80%] 1566s tests/test_generics.py::test_structure_nested_generics_with_cols[int-result0] PASSED [ 80%] 1566s tests/test_generics.py::test_structure_nested_generics_with_cols[int-result1] PASSED [ 80%] 1566s tests/test_generics.py::test_unstructure_generic_attrs[True] PASSED [ 80%] 1566s tests/test_generics.py::test_unstructure_generic_attrs[False] PASSED [ 81%] 1566s tests/test_generics.py::test_unstructure_optional[True] PASSED [ 81%] 1566s tests/test_generics.py::test_unstructure_optional[False] PASSED [ 81%] 1566s tests/test_generics.py::test_unstructure_deeply_nested_generics[True] PASSED [ 81%] 1566s tests/test_generics.py::test_unstructure_deeply_nested_generics[False] PASSED [ 81%] 1566s tests/test_generics.py::test_unstructure_deeply_nested_generics_list[True] PASSED [ 81%] 1566s tests/test_generics.py::test_unstructure_deeply_nested_generics_list[False] PASSED [ 82%] 1566s tests/test_generics.py::test_unstructure_protocol[True] PASSED [ 82%] 1567s tests/test_generics.py::test_unstructure_protocol[False] PASSED [ 82%] 1567s tests/test_generics.py::test_roundtrip_generic_with_union PASSED [ 82%] 1567s tests/test_generics.py::test_generate_typeddict_mapping PASSED [ 82%] 1567s tests/test_generics_604.py::test_unstructure_optional[True] PASSED [ 82%] 1567s tests/test_generics_604.py::test_unstructure_optional[False] PASSED [ 83%] 1567s tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_register_cls PASSED [ 83%] 1567s tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_register_func PASSED [ 83%] 1567s tests/test_multistrategy_dispatch.py::test_multistrategy_dispatch_conflict_class_wins PASSED [ 83%] 1567s tests/test_newtypes.py::test_newtype_structure_hooks[True] PASSED [ 83%] 1567s tests/test_newtypes.py::test_newtype_structure_hooks[False] PASSED [ 83%] 1567s tests/test_newtypes.py::test_newtype_unstructure_hooks[True] PASSED [ 84%] 1567s tests/test_newtypes.py::test_newtype_unstructure_hooks[False] PASSED [ 84%] 1567s tests/test_optionals.py::test_newtype_optionals[True] PASSED [ 84%] 1567s tests/test_optionals.py::test_newtype_optionals[False] PASSED [ 84%] 1567s tests/test_optionals.py::test_newtype_modern_optionals[True] PASSED [ 84%] 1567s tests/test_optionals.py::test_newtype_modern_optionals[False] PASSED [ 84%] 1567s tests/test_recursive.py::test_simple_recursive PASSED [ 85%] 1567s tests/test_structure.py::test_structuring_primitives PASSED [ 85%] 1567s tests/test_structure.py::test_structuring_seqs PASSED [ 85%] 1568s tests/test_structure.py::test_structuring_seqs_to_deque PASSED [ 85%] 1569s tests/test_structure.py::test_structuring_sets PASSED [ 85%] 1570s tests/test_structure.py::test_stringifying_sets PASSED [ 85%] 1570s tests/test_structure.py::test_structuring_hetero_tuples PASSED [ 86%] 1571s tests/test_structure.py::test_stringifying_tuples PASSED [ 86%] 1572s tests/test_structure.py::test_structuring_dicts PASSED [ 86%] 1573s tests/test_structure.py::test_structuring_dicts_opts PASSED [ 86%] 1574s tests/test_structure.py::test_stringifying_dicts PASSED [ 86%] 1574s tests/test_structure.py::test_structuring_optional_primitives PASSED [ 86%] 1575s tests/test_structure.py::test_structuring_lists_of_opt PASSED [ 87%] 1575s tests/test_structure.py::test_stringifying_lists_of_opt PASSED [ 87%] 1575s tests/test_structure.py::test_structuring_primitive_union_hook PASSED [ 87%] 1575s tests/test_structure.py::test_structure_hook_func PASSED [ 87%] 1578s tests/test_structure.py::test_structuring_enums PASSED [ 87%] 1578s tests/test_structure.py::test_structuring_unsupported PASSED [ 88%] 1578s tests/test_structure.py::test_subclass_registration_is_honored PASSED [ 88%] 1578s tests/test_structure.py::test_structure_union_edge_case PASSED [ 88%] 1580s tests/test_structure_attrs.py::test_structure_simple_from_dict PASSED [ 88%] 1594s tests/test_structure_attrs.py::test_structure_simple_from_dict_default FAILED [ 88%] 1595s tests/test_structure_attrs.py::test_roundtrip PASSED [ 88%] 1597s tests/test_structure_attrs.py::test_structure_tuple PASSED [ 89%] 1599s tests/test_structure_attrs.py::test_structure_union PASSED [ 89%] 1602s tests/test_structure_attrs.py::test_structure_union_none PASSED [ 89%] 1605s tests/test_structure_attrs.py::test_structure_union_explicit PASSED [ 89%] 1605s tests/test_structure_attrs.py::test_structure_literal[BaseConverter] PASSED [ 89%] 1605s tests/test_structure_attrs.py::test_structure_literal[Converter] PASSED [ 89%] 1605s tests/test_structure_attrs.py::test_structure_literal_enum[BaseConverter] PASSED [ 90%] 1605s tests/test_structure_attrs.py::test_structure_literal_enum[Converter] PASSED [ 90%] 1605s tests/test_structure_attrs.py::test_structure_literal_multiple[BaseConverter] PASSED [ 90%] 1605s tests/test_structure_attrs.py::test_structure_literal_multiple[Converter] PASSED [ 90%] 1605s tests/test_structure_attrs.py::test_structure_literal_error[BaseConverter] PASSED [ 90%] 1605s tests/test_structure_attrs.py::test_structure_literal_error[Converter] PASSED [ 90%] 1605s tests/test_structure_attrs.py::test_structure_literal_multiple_error[BaseConverter] PASSED [ 91%] 1605s tests/test_structure_attrs.py::test_structure_literal_multiple_error[Converter] PASSED [ 91%] 1605s tests/test_structure_attrs.py::test_structure_fallback_to_attrib_converters[BaseConverter] PASSED [ 91%] 1605s tests/test_structure_attrs.py::test_structure_fallback_to_attrib_converters[Converter] PASSED [ 91%] 1605s tests/test_structure_attrs.py::test_structure_prefers_attrib_converters[BaseConverter] PASSED [ 91%] 1605s tests/test_structure_attrs.py::test_structure_prefers_attrib_converters[Converter] PASSED [ 91%] 1605s tests/test_structure_attrs.py::test_structure_multitier_discriminator_union[BaseConverter] PASSED [ 92%] 1605s tests/test_structure_attrs.py::test_structure_multitier_discriminator_union[Converter] PASSED [ 92%] 1606s tests/test_typeddicts.py::test_simple_roundtrip PASSED [ 92%] 1607s tests/test_typeddicts.py::test_simple_nontotal PASSED [ 92%] 1609s tests/test_typeddicts.py::test_int_override PASSED [ 92%] 1610s tests/test_typeddicts.py::test_extra_keys PASSED [ 92%] 1611s tests/test_typeddicts.py::test_generics PASSED [ 93%] 1612s tests/test_typeddicts.py::test_not_required PASSED [ 93%] 1613s tests/test_typeddicts.py::test_required PASSED [ 93%] 1614s tests/test_typeddicts.py::test_omit PASSED [ 93%] 1615s tests/test_typeddicts.py::test_rename PASSED [ 93%] 1616s tests/test_typeddicts.py::test_forbid_extra_keys PASSED [ 93%] 1616s tests/test_typeddicts.py::test_recursive_generation PASSED [ 94%] 1616s tests/test_typeddicts.py::test_forwardref[True] PASSED [ 94%] 1616s tests/test_typeddicts.py::test_forwardref[False] PASSED [ 94%] 1616s tests/test_typeddicts.py::test_forbid_extra_keys_from_converter PASSED [ 94%] 1616s tests/test_typeddicts.py::test_forbid_extra_keys_from_baseconverter PASSED [ 94%] 1616s tests/test_unions.py::test_custom_union_toplevel_roundtrip[BaseConverter] PASSED [ 94%] 1616s tests/test_unions.py::test_custom_union_toplevel_roundtrip[Converter] PASSED [ 95%] 1616s tests/test_unions.py::test_310_custom_union_toplevel_roundtrip[BaseConverter] PASSED [ 95%] 1616s tests/test_unions.py::test_310_custom_union_toplevel_roundtrip[Converter] PASSED [ 95%] 1616s tests/test_unions.py::test_custom_union_clsfield_roundtrip[BaseConverter] PASSED [ 95%] 1616s tests/test_unions.py::test_custom_union_clsfield_roundtrip[Converter] PASSED [ 95%] 1616s tests/test_unstructure.py::test_seq_unstructure PASSED [ 95%] 1617s tests/test_unstructure.py::test_set_unstructure PASSED [ 96%] 1618s tests/test_unstructure.py::test_mapping_unstructure PASSED [ 96%] 1620s tests/test_unstructure.py::test_enum_unstructure PASSED [ 96%] 1626s tests/test_unstructure.py::test_attrs_asdict_unstructure PASSED [ 96%] 1631s tests/test_unstructure.py::test_attrs_astuple_unstructure PASSED [ 96%] 1632s tests/test_unstructure.py::test_unstructure_hooks PASSED [ 96%] 1640s tests/test_unstructure.py::test_seq_of_simple_classes_unstructure PASSED [ 97%] 1640s tests/test_v.py::test_attribute_errors PASSED [ 97%] 1640s tests/test_v.py::test_class_errors PASSED [ 97%] 1640s tests/test_v.py::test_sequence_errors PASSED [ 97%] 1640s tests/test_v.py::test_mapping_errors PASSED [ 97%] 1640s tests/test_v.py::test_custom_error_fn PASSED [ 97%] 1640s tests/test_v.py::test_custom_error_fn_nested PASSED [ 98%] 1640s tests/test_v.py::test_typeddict_attribute_errors PASSED [ 98%] 1640s tests/test_validation.py::test_class_validation PASSED [ 98%] 1640s tests/test_validation.py::test_external_class_validation PASSED [ 98%] 1640s tests/test_validation.py::test_list_validation PASSED [ 98%] 1640s tests/test_validation.py::test_mapping_validation PASSED [ 98%] 1640s tests/test_validation.py::test_counter_validation PASSED [ 99%] 1640s tests/test_validation.py::test_set_validation PASSED [ 99%] 1640s tests/test_validation.py::test_frozenset_validation PASSED [ 99%] 1640s tests/test_validation.py::test_homo_tuple_validation PASSED [ 99%] 1640s tests/test_validation.py::test_hetero_tuple_validation PASSED [ 99%] 1640s tests/test_validation.py::test_notes_pickling PASSED [100%] 1640s 1640s =================================== FAILURES =================================== 1640s ____________________________ test_simple_roundtrip _____________________________ 1640s 1640s @given(simple_typed_classes(newtypes=False), unstructure_strats) 1640s > def test_simple_roundtrip(cls_and_vals, strat): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff84769300> 1640s 1640s tests/test_baseconverter.py:18: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cls_and_vals = (, (nan,), {}) 1640s strat = 1640s 1640s @given(simple_typed_classes(newtypes=False), unstructure_strats) 1640s def test_simple_roundtrip(cls_and_vals, strat): 1640s """ 1640s Simple classes with metadata can be unstructured and restructured. 1640s """ 1640s converter = BaseConverter(unstruct_strat=strat) 1640s cl, vals, kwargs = cls_and_vals 1640s assume(strat is UnstructureStrategy.AS_DICT or not kwargs) 1640s inst = cl(*vals, **kwargs) 1640s > assert inst == converter.structure(converter.unstructure(inst), cl) 1640s E AssertionError: assert HypAttrsClass(a=nan) == HypAttrsClass(a=nan) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: nan != nan 1640s E Class fields: [_CountingAttr(counter=0, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Falsifying example: test_simple_roundtrip( 1640s E cls_and_vals=(tests.typed.HypAttrsClass, (nan,), {}), 1640s E strat=UnstructureStrategy.AS_DICT, # or any other generated value 1640s E ) 1640s 1640s cl = 1640s cls_and_vals = (, (nan,), {}) 1640s converter = 1640s inst = HypAttrsClass(a=nan) 1640s kwargs = {} 1640s strat = 1640s vals = (nan,) 1640s 1640s tests/test_baseconverter.py:26: AssertionError 1640s ____________________________ test_nested_roundtrip _____________________________ 1640s 1640s @given(nested_typed_classes(newtypes=False)) 1640s > def test_nested_roundtrip(cls_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff8476a020> 1640s 1640s tests/test_baseconverter.py:46: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cls_and_vals = (, ([HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())],), {}) 1640s 1640s @given(nested_typed_classes(newtypes=False)) 1640s def test_nested_roundtrip(cls_and_vals): 1640s """ 1640s Nested classes with metadata can be unstructured and restructured. 1640s """ 1640s converter = BaseConverter() 1640s cl, vals, kwargs = cls_and_vals 1640s # Vals are a tuple, convert into a dictionary. 1640s inst = cl(*vals, **kwargs) 1640s > assert inst == converter.structure(converter.unstructure(inst), cl) 1640s E AssertionError: assert HypClass(a=[H...frozenset())]) == HypClass(a=[H...frozenset())]) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: [HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())] != [HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())] 1640s E At index 0 diff: HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset()) != HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())... 1640s E 1640s E ...Full output truncated (5 lines hidden), use '-vv' to show 1640s E Falsifying example: test_nested_roundtrip( 1640s E cls_and_vals=(tests.typed.HypClass, 1640s E ([HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())],), 1640s E {}), 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3.12/difflib.py:490 1640s E /usr/lib/python3.12/pprint.py:135 1640s 1640s cl = 1640s cls_and_vals = (, ([HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())],), {}) 1640s converter = 1640s inst = HypClass(a=[HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())]) 1640s kwargs = {} 1640s vals = ([HypClass(a=0, _b=0.0, c=nan, _d=('', '', ''), e=[HypClass(a=0.0)], _f=frozenset())],) 1640s 1640s tests/test_baseconverter.py:54: AssertionError 1640s _________________________ test_nested_roundtrip_tuple __________________________ 1640s 1640s @given(nested_typed_classes(kw_only=False, newtypes=False)) 1640s > def test_nested_roundtrip_tuple(cls_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff8476a480> 1640s 1640s tests/test_baseconverter.py:58: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cls_and_vals = (, ({}, [HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4'...t(), _v=0, w=[HypClass(a=-65443524320.13593, _b=[], c=frozenset(), _d=frozenset(), e=[], _f={}, g={'': -1645})])]), {}) 1640s 1640s @given(nested_typed_classes(kw_only=False, newtypes=False)) 1640s def test_nested_roundtrip_tuple(cls_and_vals): 1640s """ 1640s Nested classes with metadata can be unstructured and restructured. 1640s """ 1640s converter = BaseConverter(unstruct_strat=UnstructureStrategy.AS_TUPLE) 1640s cl, vals, kwargs = cls_and_vals 1640s assert not kwargs 1640s # Vals are a tuple, convert into a dictionary. 1640s inst = cl(*vals) 1640s > assert inst == converter.structure(converter.unstructure(inst), cl) 1640s E AssertionError: assert HypClass(a={}...': -1645})])]) == HypClass(a={}...': -1645})])]) 1640s E 1640s E Omitting 1 identical items, use -vv to show 1640s E Differing attributes: 1640s E ['_b'] 1640s E 1640s E Drill down into differing attribute _b: 1640s E _b: [HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4': 0, '3': 0, '2': 0, '1': 0, '0': 0}, i=[], _j=set(), k=[], _l='', m=[0.0], _n='', o=0.0, _p=0, q=('', '', ''), _r=PosixPath('a'), s=nan, _t=0.0, u=frozenset(), _v=0, w=[HypClass(a=-65443524320.13593, _b=[], c=frozenset(), _d=frozenset(), e=[], _f={}, g={'': -1645})])] != [HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4': 0, '3': 0, '2': 0, '1': 0,... 1640s E 1640s E ...Full output truncated (7 lines hidden), use '-vv' to show 1640s E Falsifying example: test_nested_roundtrip_tuple( 1640s E cls_and_vals=(tests.typed.HypClass, 1640s E ({}, 1640s E [HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4': 0, '3': 0, '2': 0, '1': 0, '0': 0}, i=[], _j=set(), k=[], _l='', m=[0.0], _n='', o=0.0, _p=0, q=('', '', ''), _r=PosixPath('a'), s=nan, _t=0.0, u=frozenset(), _v=0, w=[HypClass(a=-65443524320.13593, _b=[], c=frozenset(), _d=frozenset(), e=[], _f={}, g={'': -1645})])]), 1640s E {}), 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3.12/difflib.py:490 1640s E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:469 1640s E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250 1640s E /usr/lib/python3/dist-packages/attr/_make.py:1514 1640s 1640s cl = 1640s cls_and_vals = (, ({}, [HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4'...t(), _v=0, w=[HypClass(a=-65443524320.13593, _b=[], c=frozenset(), _d=frozenset(), e=[], _f={}, g={'': -1645})])]), {}) 1640s converter = 1640s inst = HypClass(a={}, _b=[HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4': 0, '3': 0, '2': 0,...zenset(), _v=0, w=[HypClass(a=-65443524320.13593, _b=[], c=frozenset(), _d=frozenset(), e=[], _f={}, g={'': -1645})])]) 1640s kwargs = {} 1640s vals = ({}, [HypClass(a=PosixPath('a'), _b=0, c={}, _d=[], e=[], _f=[], g={}, _h={'': 0, '4': 0, '3': 0, '2': 0, '1': 0, '0':...zenset(), _v=0, w=[HypClass(a=-65443524320.13593, _b=[], c=frozenset(), _d=frozenset(), e=[], _f={}, g={'': -1645})])]) 1640s 1640s tests/test_baseconverter.py:67: AssertionError 1640s ---------------------------------- Hypothesis ---------------------------------- 1640s WARNING: Hypothesis has spent more than five minutes working to shrink a failing example, and stopped because it is making very slow progress. When you re-run your tests, shrinking will resume and may take this long before aborting again. 1640s PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone. 1640s __________________________ test_union_field_roundtrip __________________________ 1640s 1640s @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) 1640s > @given( 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s unstructure_strats, 1640s ) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff8476aa20> 1640s 1640s tests/test_baseconverter.py:71: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals_a = (, (frozenset(), [], [], 0, nan, frozenset(), ...), {'aa': frozenset(), 'ab': frozenset(), 'ad': {}, 'ae': [], ...}) 1640s cl_and_vals_b = (, (None,), {}) 1640s strat = 1640s 1640s @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) 1640s @given( 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s unstructure_strats, 1640s ) 1640s def test_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): 1640s """ 1640s Classes with union fields can be unstructured and structured. 1640s """ 1640s converter = BaseConverter(unstruct_strat=strat) 1640s cl_a, vals_a, kwargs_a = cl_and_vals_a 1640s assume(strat is UnstructureStrategy.AS_DICT or not kwargs_a) 1640s cl_b, vals_b, _ = cl_and_vals_b 1640s a_field_names = {a.name for a in fields(cl_a)} 1640s b_field_names = {a.name for a in fields(cl_b)} 1640s assume(a_field_names) 1640s assume(b_field_names) 1640s 1640s common_names = a_field_names & b_field_names 1640s assume(len(a_field_names) > len(common_names)) 1640s 1640s @define 1640s class C: 1640s a: Union[cl_a, cl_b] 1640s 1640s inst = C(a=cl_a(*vals_a, **kwargs_a)) 1640s 1640s if strat is UnstructureStrategy.AS_DICT: 1640s > assert inst == converter.structure(converter.unstructure(inst), C) 1640s E AssertionError: assert C(a=HypAttrsC...e=[], af=0.0)) == C(a=HypAttrsC...e=[], af=0.0)) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=frozenset(), _b=[], _d=[], e=0, g=nan, _h=frozenset(), _j=frozenset(), k=frozenset(), m=('', '', ''), _n=[], _p=[], q=0, s={}, _t=0, _v=('', '', ''), w={}, y=[], _z=frozenset(), ab=frozenset(), ac={}, ae=[], af=0.0) != HypAttrsClass(a=frozenset(), _b=[], _d=[], e=0, g=nan, _h=frozenset(), _j=frozenset(), k=frozenset(), m=('', '', ''), _n=[], _p=[], q=0, s={}, _t=0, _v=('', '', ''), w={}, y=[], _z=frozenset(), ab=frozenset(), ac={}, ae=[], af=0.0) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=12, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=13, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=14, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=15, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=16, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=17, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=18, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=19, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=20, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=21, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={}), 'm': _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_n': _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='o', metadata={}), '_p': _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'q': _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_r', metadata={}), 's': _CountingAttr(counter=12, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_t': _CountingAttr(counter=13, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='u', metadata={}), '_v': _CountingAttr(counter=14, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'w': _CountingAttr(counter=15, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_x', metadata={}), 'y': _CountingAttr(counter=16, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_z': _CountingAttr(counter=17, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='aa', metadata={}), 'ab': _CountingAttr(counter=18, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'ac': _CountingAttr(counter=19, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='ad', metadata={}), 'ae': _CountingAttr(counter=20, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'af': _CountingAttr(counter=21, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='ag', metadata={})} 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Falsifying example: test_union_field_roundtrip( 1640s E # The test always failed when commented parts were varied together. 1640s E cl_and_vals_a=(tests.typed.HypAttrsClass, 1640s E (frozenset(), 1640s E [], 1640s E [], 1640s E 0, 1640s E nan, 1640s E frozenset(), 1640s E frozenset(), 1640s E frozenset(), 1640s E ('', '', ''), 1640s E [], 1640s E [], 1640s E 0, 1640s E {}, 1640s E 0, 1640s E ('', '', ''), 1640s E {}, 1640s E []), 1640s E {'aa': frozenset(), 'ab': frozenset(), 'ad': {}, 'ae': [], 'ag': 0.0}), 1640s E cl_and_vals_b=(tests.typed.HypAttrsClass, 1640s E (None,), 1640s E {}), # or any other generated value 1640s E strat=UnstructureStrategy.AS_DICT, # or any other generated value 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250 1640s 1640s C = .C'> 1640s _ = {} 1640s a_field_names = {'_b', '_d', '_h', '_j', '_n', '_p', ...} 1640s b_field_names = {'a'} 1640s cl_a = 1640s cl_and_vals_a = (, (frozenset(), [], [], 0, nan, frozenset(), ...), {'aa': frozenset(), 'ab': frozenset(), 'ad': {}, 'ae': [], ...}) 1640s cl_and_vals_b = (, (None,), {}) 1640s cl_b = 1640s common_names = {'a'} 1640s converter = 1640s inst = C(a=HypAttrsClass(a=frozenset(), _b=[], _d=[], e=0, g=nan, _h=frozenset(), _j=frozenset(), k=frozenset(), m=('', '', ''), _n=[], _p=[], q=0, s={}, _t=0, _v=('', '', ''), w={}, y=[], _z=frozenset(), ab=frozenset(), ac={}, ae=[], af=0.0)) 1640s kwargs_a = {'aa': frozenset(), 'ab': frozenset(), 'ad': {}, 'ae': [], ...} 1640s strat = 1640s vals_a = (frozenset(), [], [], 0, nan, frozenset(), ...) 1640s vals_b = (None,) 1640s 1640s tests/test_baseconverter.py:99: AssertionError 1640s ________________________ test_310_union_field_roundtrip ________________________ 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s > @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff8476b420> 1640s 1640s tests/test_baseconverter.py:113: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals_a = (, (0.0, 0.0, nan, frozenset(), ('', '', ''), {}, ...), {'_x': 0.0, 's': frozenset(), 'u': ('', '', ''), 'v': frozenset()}) 1640s cl_and_vals_b = (, (None,), {}) 1640s strat = 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) 1640s @given( 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s unstructure_strats, 1640s ) 1640s def test_310_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): 1640s """ 1640s Classes with union fields can be unstructured and structured. 1640s """ 1640s converter = BaseConverter(unstruct_strat=strat) 1640s cl_a, vals_a, kwargs_a = cl_and_vals_a 1640s cl_b, vals_b, _ = cl_and_vals_b 1640s assume(strat is UnstructureStrategy.AS_DICT or not kwargs_a) 1640s a_field_names = {a.name for a in fields(cl_a)} 1640s b_field_names = {a.name for a in fields(cl_b)} 1640s assume(a_field_names) 1640s assume(b_field_names) 1640s 1640s common_names = a_field_names & b_field_names 1640s assume(len(a_field_names) > len(common_names)) 1640s 1640s @define 1640s class C: 1640s a: cl_a | cl_b 1640s 1640s inst = C(a=cl_a(*vals_a, **kwargs_a)) 1640s 1640s if strat is UnstructureStrategy.AS_DICT: 1640s > assert inst == converter.structure(converter.unstructure(inst), C) 1640s E AssertionError: assert C(a=HypAttrsC...set(), w=0.0)) == C(a=HypAttrsC...set(), w=0.0)) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=0.0, _b=0.0, _d=nan, e=frozenset(), g=('', '', ''), _h={}, _j=PosixPath('a'), k=0, m=0, _n=frozenset(), _p=frozenset(), q=frozenset(), s=frozenset(), _t=('', '', ''), _v=frozenset(), w=0.0) != HypAttrsClass(a=0.0, _b=0.0, _d=nan, e=frozenset(), g=('', '', ''), _h={}, _j=PosixPath('a'), k=0, m=0, _n=frozenset(), _p=frozenset(), q=frozenset(), s=frozenset(), _t=('', '', ''), _v=frozenset(), w=0.0) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=12, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=13, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=14, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=15, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={}), 'm': _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_n': _CountingAttr(counter=9, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='o', metadata={}), '_p': _CountingAttr(counter=10, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'q': _CountingAttr(counter=11, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_r', metadata={}), 's': _CountingAttr(counter=12, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_t': _CountingAttr(counter=13, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='u', metadata={}), '_v': _CountingAttr(counter=14, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'w': _CountingAttr(counter=15, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_x', metadata={})} 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Falsifying example: test_310_union_field_roundtrip( 1640s E # The test always failed when commented parts were varied together. 1640s E cl_and_vals_a=(tests.typed.HypAttrsClass, 1640s E (0.0, 1640s E 0.0, 1640s E nan, 1640s E frozenset(), 1640s E ('', '', ''), 1640s E {}, 1640s E Path('a'), 1640s E 0, 1640s E 0, 1640s E frozenset(), 1640s E # Saw 1 signaling NaN 1640s E frozenset(), 1640s E frozenset()), 1640s E {'s': frozenset(), 'u': ('', '', ''), 'v': frozenset(), '_x': 0.0}), 1640s E cl_and_vals_b=(tests.typed.HypAttrsClass, 1640s E (None,), 1640s E {}), # or any other generated value 1640s E strat=UnstructureStrategy.AS_DICT, # or any other generated value 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250 1640s 1640s C = .C'> 1640s _ = {} 1640s a_field_names = {'_b', '_d', '_h', '_j', '_n', '_p', ...} 1640s b_field_names = {'a'} 1640s cl_a = 1640s cl_and_vals_a = (, (0.0, 0.0, nan, frozenset(), ('', '', ''), {}, ...), {'_x': 0.0, 's': frozenset(), 'u': ('', '', ''), 'v': frozenset()}) 1640s cl_and_vals_b = (, (None,), {}) 1640s cl_b = 1640s common_names = {'a'} 1640s converter = 1640s inst = C(a=HypAttrsClass(a=0.0, _b=0.0, _d=nan, e=frozenset(), g=('', '', ''), _h={}, _j=PosixPath('a'), k=0, m=0, _n=frozenset(), _p=frozenset(), q=frozenset(), s=frozenset(), _t=('', '', ''), _v=frozenset(), w=0.0)) 1640s kwargs_a = {'_x': 0.0, 's': frozenset(), 'u': ('', '', ''), 'v': frozenset()} 1640s strat = 1640s vals_a = (0.0, 0.0, nan, frozenset(), ('', '', ''), {}, ...) 1640s vals_b = (None,) 1640s 1640s tests/test_baseconverter.py:142: AssertionError 1640s ________________________ test_optional_field_roundtrip _________________________ 1640s 1640s @given(simple_typed_classes(defaults=False, newtypes=False)) 1640s > def test_optional_field_roundtrip(cl_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff8476a980> 1640s 1640s tests/test_baseconverter.py:156: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals = (, (0.0, nan), {}) 1640s 1640s @given(simple_typed_classes(defaults=False, newtypes=False)) 1640s def test_optional_field_roundtrip(cl_and_vals): 1640s """ 1640s Classes with optional fields can be unstructured and structured. 1640s """ 1640s converter = BaseConverter() 1640s cl, vals, kwargs = cl_and_vals 1640s 1640s @define 1640s class C: 1640s a: Optional[cl] 1640s 1640s inst = C(a=cl(*vals, **kwargs)) 1640s > assert inst == converter.structure(converter.unstructure(inst), C) 1640s E AssertionError: assert C(a=HypAttrsC...=0.0, _b=nan)) == C(a=HypAttrsC...=0.0, _b=nan)) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=0.0, _b=nan) != HypAttrsClass(a=0.0, _b=nan) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={})} 1640s E Falsifying example: test_optional_field_roundtrip( 1640s E cl_and_vals=(tests.typed.HypAttrsClass, (0.0, nan), {}), 1640s E # Saw 1 signaling NaN 1640s E ) 1640s 1640s C = .C'> 1640s cl = 1640s cl_and_vals = (, (0.0, nan), {}) 1640s converter = 1640s inst = C(a=HypAttrsClass(a=0.0, _b=nan)) 1640s kwargs = {} 1640s vals = (0.0, nan) 1640s 1640s tests/test_baseconverter.py:168: AssertionError 1640s ______________________ test_310_optional_field_roundtrip _______________________ 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s > @given(simple_typed_classes(defaults=False, newtypes=False)) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff84769440> 1640s 1640s tests/test_baseconverter.py:177: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals = (, ([], nan), {}) 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s @given(simple_typed_classes(defaults=False, newtypes=False)) 1640s def test_310_optional_field_roundtrip(cl_and_vals): 1640s """ 1640s Classes with optional fields can be unstructured and structured. 1640s """ 1640s converter = BaseConverter() 1640s cl, vals, kwargs = cl_and_vals 1640s 1640s @define 1640s class C: 1640s a: cl | None 1640s 1640s inst = C(a=cl(*vals, **kwargs)) 1640s > assert inst == converter.structure(converter.unstructure(inst), C) 1640s E AssertionError: assert C(a=HypAttrsC...a=[], _b=nan)) == C(a=HypAttrsC...a=[], _b=nan)) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=[], _b=nan) != HypAttrsClass(a=[], _b=nan) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={})} 1640s E Falsifying example: test_310_optional_field_roundtrip( 1640s E cl_and_vals=(tests.typed.HypAttrsClass, ([], nan), {}), 1640s E ) 1640s 1640s C = .C'> 1640s cl = 1640s cl_and_vals = (, ([], nan), {}) 1640s converter = 1640s inst = C(a=HypAttrsClass(a=[], _b=nan)) 1640s kwargs = {} 1640s vals = ([], nan) 1640s 1640s tests/test_baseconverter.py:190: AssertionError 1640s ________________________ test_simple_roundtrip_defaults ________________________ 1640s 1640s @given(simple_typed_attrs(defaults=True)) 1640s > def test_simple_roundtrip_defaults(attr_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c1300> 1640s 1640s tests/test_converter.py:73: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s attr_and_vals = (_CountingAttr(counter=227837, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), floats()) 1640s 1640s @given(simple_typed_attrs(defaults=True)) 1640s def test_simple_roundtrip_defaults(attr_and_vals): 1640s """ 1640s Simple classes with metadata can be unstructured and restructured. 1640s """ 1640s a, _ = attr_and_vals 1640s cl = make_class("HypClass", {"a": a}) 1640s converter = Converter() 1640s inst = cl() 1640s assert converter.unstructure(converter.structure({}, cl)) == converter.unstructure( 1640s inst 1640s ) 1640s > assert inst == converter.structure(converter.unstructure(inst), cl) 1640s E AssertionError: assert HypClass(a=nan) == HypClass(a=nan) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: nan != nan 1640s E Falsifying example: test_simple_roundtrip_defaults( 1640s E attr_and_vals=(_CountingAttr(counter=227837, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 1640s E floats()), 1640s E ) 1640s 1640s _ = floats() 1640s a = _CountingAttr(counter=227837, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}) 1640s attr_and_vals = (_CountingAttr(counter=227837, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), floats()) 1640s cl = 1640s converter = 1640s inst = HypClass(a=nan) 1640s 1640s tests/test_converter.py:84: AssertionError 1640s _____________________ test_simple_roundtrip_defaults_tuple _____________________ 1640s 1640s @given(simple_typed_attrs(defaults=True, kw_only=False, newtypes=False)) 1640s > def test_simple_roundtrip_defaults_tuple(attr_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c1760> 1640s 1640s tests/test_converter.py:88: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s attr_and_vals = (_CountingAttr(counter=227945, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), floats()) 1640s 1640s @given(simple_typed_attrs(defaults=True, kw_only=False, newtypes=False)) 1640s def test_simple_roundtrip_defaults_tuple(attr_and_vals): 1640s """ 1640s Simple classes with metadata can be unstructured and restructured. 1640s """ 1640s a, _ = attr_and_vals 1640s cl = make_class("HypClass", {"a": a}) 1640s converter = Converter(unstruct_strat=UnstructureStrategy.AS_TUPLE) 1640s inst = cl() 1640s assert converter.unstructure(converter.structure({}, cl)) == converter.unstructure( 1640s inst 1640s ) 1640s > assert inst == converter.structure(converter.unstructure(inst), cl) 1640s E AssertionError: assert HypClass(a=nan) == HypClass(a=nan) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: nan != nan 1640s E Falsifying example: test_simple_roundtrip_defaults_tuple( 1640s E attr_and_vals=(_CountingAttr(counter=227945, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 1640s E floats()), 1640s E ) 1640s 1640s _ = floats() 1640s a = _CountingAttr(counter=227945, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}) 1640s attr_and_vals = (_CountingAttr(counter=227945, _default=nan, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), floats()) 1640s cl = 1640s converter = 1640s inst = HypClass(a=nan) 1640s 1640s tests/test_converter.py:99: AssertionError 1640s _______________ test_simple_roundtrip_with_extra_keys_forbidden ________________ 1640s 1640s @given( 1640s > simple_typed_classes(newtypes=False) | simple_typed_dataclasses(newtypes=False), 1640s unstructure_strats, 1640s ) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c1da0> 1640s 1640s tests/test_converter.py:103: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cls_and_vals = (, (0, frozenset(), frozenset(), frozenset(), {}), {'_l': nan, 'i': '', 'j': {}}) 1640s strat = 1640s 1640s @given( 1640s simple_typed_classes(newtypes=False) | simple_typed_dataclasses(newtypes=False), 1640s unstructure_strats, 1640s ) 1640s def test_simple_roundtrip_with_extra_keys_forbidden(cls_and_vals, strat): 1640s """ 1640s Simple classes can be unstructured and restructured with forbid_extra_keys=True. 1640s """ 1640s converter = Converter(unstruct_strat=strat, forbid_extra_keys=True) 1640s cl, vals, kwargs = cls_and_vals 1640s assume(strat is UnstructureStrategy.AS_DICT or not kwargs) 1640s inst = cl(*vals, **kwargs) 1640s unstructured = converter.unstructure(inst) 1640s assert "Hyp" not in repr(unstructured) 1640s > assert inst == converter.structure(unstructured, cl) 1640s E AssertionError: assert HypAttrsClass... _j={}, k=nan) == HypAttrsClass... _j={}, k=nan) 1640s E 1640s E Omitting 7 identical items, use -vv to show 1640s E Differing attributes: 1640s E ['k'] 1640s E 1640s E Drill down into differing attribute k: 1640s E k: nan != nan 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={})} 1640s E Falsifying example: test_simple_roundtrip_with_extra_keys_forbidden( 1640s E cls_and_vals=(tests.typed.HypAttrsClass, 1640s E (0, frozenset(), frozenset(), frozenset(), {}), 1640s E {'i': '', 'j': {}, '_l': nan}), 1640s E strat=UnstructureStrategy.AS_DICT, # or any other generated value 1640s E ) 1640s 1640s cl = 1640s cls_and_vals = (, (0, frozenset(), frozenset(), frozenset(), {}), {'_l': nan, 'i': '', 'j': {}}) 1640s converter = 1640s inst = HypAttrsClass(a=0, _b=frozenset(), _d=frozenset(), e=frozenset(), g={}, _h='', _j={}, k=nan) 1640s kwargs = {'_l': nan, 'i': '', 'j': {}} 1640s strat = 1640s unstructured = {'_b': frozenset(), '_d': frozenset(), '_h': '', '_j': {}, ...} 1640s vals = (0, frozenset(), frozenset(), frozenset(), {}) 1640s 1640s tests/test_converter.py:116: AssertionError 1640s ____________________________ test_nested_roundtrip _____________________________ 1640s 1640s @given(nested_typed_classes(defaults=True, min_attrs=1), booleans()) 1640s > def test_nested_roundtrip(cls_and_vals, omit_if_default): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c2160> 1640s 1640s tests/test_converter.py:203: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cls_and_vals = (, ([HypClass(a=nan, _b=[HypClass(a=0)])],), {}) 1640s omit_if_default = False 1640s 1640s @given(nested_typed_classes(defaults=True, min_attrs=1), booleans()) 1640s def test_nested_roundtrip(cls_and_vals, omit_if_default): 1640s """ 1640s Nested classes with metadata can be unstructured and restructured. 1640s """ 1640s converter = Converter(omit_if_default=omit_if_default) 1640s cl, vals, kwargs = cls_and_vals 1640s # Vals are a tuple, convert into a dictionary. 1640s inst = cl(*vals, **kwargs) 1640s unstructured = converter.unstructure(inst) 1640s > assert inst == converter.structure(unstructured, cl) 1640s E AssertionError: assert HypClass(a=[H...Class(a=0)])]) == HypClass(a=[H...Class(a=0)])]) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: [HypClass(a=nan, _b=[HypClass(a=0)])] != [HypClass(a=nan, _b=[HypClass(a=0)])] 1640s E At index 0 diff: HypClass(a=nan, _b=[HypClass(a=0)]) != HypClass(a=nan, _b=[HypClass(a=0)])... 1640s E 1640s E ...Full output truncated (5 lines hidden), use '-vv' to show 1640s E Falsifying example: test_nested_roundtrip( 1640s E cls_and_vals=(tests.typed.HypClass, 1640s E ([HypClass(a=nan, _b=[HypClass(a=0)])],), 1640s E {}), 1640s E omit_if_default=False, # or any other generated value 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3.12/difflib.py:490 1640s E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:128 1640s E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250 1640s 1640s cl = 1640s cls_and_vals = (, ([HypClass(a=nan, _b=[HypClass(a=0)])],), {}) 1640s converter = 1640s inst = HypClass(a=[HypClass(a=nan, _b=[HypClass(a=0)])]) 1640s kwargs = {} 1640s omit_if_default = False 1640s unstructured = {'a': [{'_b': [{'a': 0}], 'a': nan}]} 1640s vals = ([HypClass(a=nan, _b=[HypClass(a=0)])],) 1640s 1640s tests/test_converter.py:212: AssertionError 1640s _________________________ test_nested_roundtrip_tuple __________________________ 1640s 1640s @given( 1640s > nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False), 1640s booleans(), 1640s ) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c25c0> 1640s 1640s tests/test_converter.py:216: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cls_and_vals = (, ([HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})],), {}) 1640s omit_if_default = False 1640s 1640s @given( 1640s nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False), 1640s booleans(), 1640s ) 1640s def test_nested_roundtrip_tuple(cls_and_vals, omit_if_default: bool): 1640s """ 1640s Nested classes with metadata can be unstructured and restructured. 1640s """ 1640s converter = Converter( 1640s unstruct_strat=UnstructureStrategy.AS_TUPLE, omit_if_default=omit_if_default 1640s ) 1640s cl, vals, _ = cls_and_vals 1640s # Vals are a tuple, convert into a dictionary. 1640s inst = cl(*vals) 1640s unstructured = converter.unstructure(inst) 1640s > assert inst == converter.structure(unstructured, cl) 1640s E AssertionError: assert HypClass(a=[H..._f={}, g={})]) == HypClass(a=[H..._f={}, g={})]) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: [HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})] != [HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})] 1640s E At index 0 diff: HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={}) != HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})... 1640s E 1640s E ...Full output truncated (5 lines hidden), use '-vv' to show 1640s E Falsifying example: test_nested_roundtrip_tuple( 1640s E cls_and_vals=(tests.typed.HypClass, 1640s E ([HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})],), 1640s E {}), 1640s E omit_if_default=False, # or any other generated value 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3.12/difflib.py:490 1640s E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:469 1640s E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250 1640s 1640s _ = {} 1640s cl = 1640s cls_and_vals = (, ([HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})],), {}) 1640s converter = 1640s inst = HypClass(a=[HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})]) 1640s omit_if_default = False 1640s unstructured = ([(0.0, 0.0, {}, nan, 'a', {}, ...)],) 1640s vals = ([HypClass(a=0.0, _b=0.0, c={}, _d=nan, e=PosixPath('a'), _f={}, g={})],) 1640s 1640s tests/test_converter.py:230: AssertionError 1640s __________________________ test_union_field_roundtrip __________________________ 1640s + Exception Group Traceback (most recent call last): 1640s | File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 341, in from_call 1640s | result: TResult | None = func() 1640s | ^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 242, in 1640s | lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__ 1640s | return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec 1640s | return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 182, in _multicall 1640s | return outcome.get_result() 1640s | ^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_result.py", line 100, in get_result 1640s | raise exc.with_traceback(exc.__traceback__) 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall 1640s | teardown.throw(outcome._exception) 1640s | File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call 1640s | yield from thread_exception_runtest_hook() 1640s | File "/usr/lib/python3/dist-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook 1640s | yield 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall 1640s | teardown.throw(outcome._exception) 1640s | File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call 1640s | yield from unraisable_exception_runtest_hook() 1640s | File "/usr/lib/python3/dist-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook 1640s | yield 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall 1640s | teardown.throw(outcome._exception) 1640s | File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 848, in pytest_runtest_call 1640s | yield from self._runtest_for(item, "call") 1640s | File "/usr/lib/python3/dist-packages/_pytest/logging.py", line 831, in _runtest_for 1640s | yield 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall 1640s | teardown.throw(outcome._exception) 1640s | File "/usr/lib/python3/dist-packages/_pytest/capture.py", line 879, in pytest_runtest_call 1640s | return (yield) 1640s | ^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 167, in _multicall 1640s | teardown.throw(outcome._exception) 1640s | File "/usr/lib/python3/dist-packages/_pytest/skipping.py", line 257, in pytest_runtest_call 1640s | return (yield) 1640s | ^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall 1640s | res = hook_impl.function(*args) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 174, in pytest_runtest_call 1640s | item.runtest() 1640s | File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1627, in runtest 1640s | self.ihook.pytest_pyfunc_call(pyfuncitem=self) 1640s | File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__ 1640s | return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in _hookexec 1640s | return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in _multicall 1640s | raise exception.with_traceback(exception.__traceback__) 1640s | File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in _multicall 1640s | res = hook_impl.function(*args) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/usr/lib/python3/dist-packages/_pytest/python.py", line 159, in pytest_pyfunc_call 1640s | result = testfunction(**testargs) 1640s | ^^^^^^^^^^^^^^^^^^^^^^^^ 1640s | File "/tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build/tests/test_converter.py", line 234, in test_union_field_roundtrip 1640s | @given( 1640s | 1640s | File "/usr/lib/python3/dist-packages/hypothesis/core.py", line 1667, in wrapped_test 1640s | raise the_error_hypothesis_found 1640s | ExceptionGroup: Hypothesis found 2 distinct failures. (2 sub-exceptions) 1640s +-+---------------- 1 ---------------- 1640s | Traceback (most recent call last): 1640s | File "/tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build/tests/test_converter.py", line 274, in test_union_field_roundtrip 1640s | assert inst == converter.structure(unstructured, C) 1640s | AssertionError: assert C(a=HypAttrsC..., e=nan, g=0)) == C(a=HypAttrsC..., e=nan, g=0)) 1640s | 1640s | Differing attributes: 1640s | ['a'] 1640s | 1640s | Drill down into differing attribute a: 1640s | a: HypAttrsClass(a=0, _b=frozenset(), _d='', e=nan, g=0) != HypAttrsClass(a=0, _b=frozenset(), _d='', e=nan, g=0) 1640s | ... 1640s | 1640s | ...Full output truncated (6 lines hidden), use '-vv' to show 1640s | Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s | Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s | Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s | Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s | Falsifying example: test_union_field_roundtrip( 1640s | cl_and_vals_a=(tests.typed.HypAttrsClass, 1640s | (0, frozenset(), '', nan, 0), 1640s | {}), 1640s | # Saw 1 signaling NaN 1640s | cl_and_vals_b=(tests.typed.HypAttrsClass, (None,), {}), 1640s | strat=UnstructureStrategy.AS_TUPLE, 1640s | ) 1640s +---------------- 2 ---------------- 1640s | Traceback (most recent call last): 1640s | File "/tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build/tests/test_converter.py", line 263, in test_union_field_roundtrip 1640s | assert inst == converter.structure(converter.unstructure(unstructured), C) 1640s | AssertionError: assert C(a=HypAttrsC..., e=nan, g=0)) == C(a=HypAttrsC..., e=nan, g=0)) 1640s | 1640s | Differing attributes: 1640s | ['a'] 1640s | 1640s | Drill down into differing attribute a: 1640s | a: HypAttrsClass(a=0, _b=frozenset(), _d='', e=nan, g=0) != HypAttrsClass(a=0, _b=frozenset(), _d='', e=nan, g=0) 1640s | ... 1640s | 1640s | ...Full output truncated (6 lines hidden), use '-vv' to show 1640s | Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s | Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s | Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s | Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s | Falsifying example: test_union_field_roundtrip( 1640s | cl_and_vals_a=(tests.typed.HypAttrsClass, 1640s | (0, frozenset(), '', nan, 0), 1640s | {}), 1640s | # Saw 1 signaling NaN 1640s | cl_and_vals_b=(tests.typed.HypAttrsClass, (None,), {}), 1640s | strat=UnstructureStrategy.AS_DICT, 1640s | ) 1640s +------------------------------------ 1640s ---------------------------------- Hypothesis ---------------------------------- 1640s WARNING: Hypothesis has spent more than five minutes working to shrink a failing example, and stopped because it is making very slow progress. When you re-run your tests, shrinking will resume and may take this long before aborting again. 1640s PLEASE REPORT THIS if you can provide a reproducing example, so that we can improve shrinking performance for everyone. 1640s ________________________ test_310_union_field_roundtrip ________________________ 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s > @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c32e0> 1640s 1640s tests/test_converter.py:278: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals_a = (, (frozenset(), 0, 0.0, frozenset(), {}, [], ...), {'m': frozenset()}) 1640s cl_and_vals_b = (, (None,), {}) 1640s strat = 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) 1640s @given( 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s simple_typed_classes(defaults=False, newtypes=False), 1640s unstructure_strats, 1640s ) 1640s def test_310_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): 1640s """ 1640s Classes with union fields can be unstructured and structured. 1640s """ 1640s converter = Converter(unstruct_strat=strat) 1640s cl_a, vals_a, kwargs_a = cl_and_vals_a 1640s cl_b, _, _ = cl_and_vals_b 1640s assume(strat is UnstructureStrategy.AS_DICT or not kwargs_a) 1640s a_field_names = {a.name for a in fields(cl_a)} 1640s b_field_names = {a.name for a in fields(cl_b)} 1640s assume(a_field_names) 1640s assume(b_field_names) 1640s 1640s common_names = a_field_names & b_field_names 1640s assume(len(a_field_names) > len(common_names)) 1640s 1640s @define 1640s class C: 1640s a: cl_a | cl_b 1640s 1640s inst = C(a=cl_a(*vals_a, **kwargs_a)) 1640s 1640s if strat is UnstructureStrategy.AS_DICT: 1640s unstructured = converter.unstructure(inst) 1640s > assert inst == converter.structure(converter.unstructure(unstructured), C) 1640s E AssertionError: assert C(a=HypAttrsC...=frozenset())) == C(a=HypAttrsC...=frozenset())) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=frozenset(), _b=0, _d=0.0, e=frozenset(), g={}, _h=[], _j=0.0, k=nan, m=frozenset()) != HypAttrsClass(a=frozenset(), _b=0, _d=0.0, e=frozenset(), g={}, _h=[], _j=0.0, k=nan, m=frozenset()) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={}), 'g': _CountingAttr(counter=4, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_h': _CountingAttr(counter=5, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='i', metadata={}), '_j': _CountingAttr(counter=6, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'k': _CountingAttr(counter=7, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_l', metadata={}), 'm': _CountingAttr(counter=8, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Falsifying example: test_310_union_field_roundtrip( 1640s E # The test always failed when commented parts were varied together. 1640s E cl_and_vals_a=(tests.typed.HypAttrsClass, 1640s E (frozenset(), 0, 0.0, frozenset(), {}, [], 0.0, nan), 1640s E {'m': frozenset()}), 1640s E cl_and_vals_b=(tests.typed.HypAttrsClass, 1640s E (None,), 1640s E {}), # or any other generated value 1640s E strat=UnstructureStrategy.AS_DICT, # or any other generated value 1640s E ) 1640s 1640s C = .C'> 1640s _ = {} 1640s a_field_names = {'_b', '_d', '_h', '_j', 'a', 'e', ...} 1640s b_field_names = {'a'} 1640s cl_a = 1640s cl_and_vals_a = (, (frozenset(), 0, 0.0, frozenset(), {}, [], ...), {'m': frozenset()}) 1640s cl_and_vals_b = (, (None,), {}) 1640s cl_b = 1640s common_names = {'a'} 1640s converter = 1640s inst = C(a=HypAttrsClass(a=frozenset(), _b=0, _d=0.0, e=frozenset(), g={}, _h=[], _j=0.0, k=nan, m=frozenset())) 1640s kwargs_a = {'m': frozenset()} 1640s strat = 1640s unstructured = {'a': {'_b': 0, '_d': 0.0, '_h': [], '_j': 0.0, ...}} 1640s vals_a = (frozenset(), 0, 0.0, frozenset(), {}, [], ...) 1640s 1640s tests/test_converter.py:308: AssertionError 1640s ________________________ test_optional_field_roundtrip _________________________ 1640s 1640s @given(simple_typed_classes(defaults=False)) 1640s > def test_optional_field_roundtrip(cl_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c34c0> 1640s 1640s tests/test_converter.py:323: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals = (, (frozenset(), [], nan), {}) 1640s 1640s @given(simple_typed_classes(defaults=False)) 1640s def test_optional_field_roundtrip(cl_and_vals): 1640s """ 1640s Classes with optional fields can be unstructured and structured. 1640s """ 1640s converter = Converter() 1640s cl, vals, kwargs = cl_and_vals 1640s 1640s @define 1640s class C: 1640s a: Optional[cl] 1640s 1640s inst = C(a=cl(*vals, **kwargs)) 1640s > assert inst == converter.structure(converter.unstructure(inst), C) 1640s E AssertionError: assert C(a=HypAttrsC...b=[], _d=nan)) == C(a=HypAttrsC...b=[], _d=nan)) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=frozenset(), _b=[], _d=nan) != HypAttrsClass(a=frozenset(), _b=[], _d=nan) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Falsifying example: test_optional_field_roundtrip( 1640s E cl_and_vals=(tests.typed.HypAttrsClass, (frozenset(), [], nan), {}), 1640s E ) 1640s 1640s C = .C'> 1640s cl = 1640s cl_and_vals = (, (frozenset(), [], nan), {}) 1640s converter = 1640s inst = C(a=HypAttrsClass(a=frozenset(), _b=[], _d=nan)) 1640s kwargs = {} 1640s vals = (frozenset(), [], nan) 1640s 1640s tests/test_converter.py:335: AssertionError 1640s ______________________ test_310_optional_field_roundtrip _______________________ 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s > @given(simple_typed_classes(defaults=False)) 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c2980> 1640s 1640s tests/test_converter.py:344: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals = (, (('', '', ''), 0, {}, nan), {}) 1640s 1640s @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") 1640s @given(simple_typed_classes(defaults=False)) 1640s def test_310_optional_field_roundtrip(cl_and_vals): 1640s """ 1640s Classes with optional fields can be unstructured and structured. 1640s """ 1640s converter = Converter() 1640s cl, vals, kwargs = cl_and_vals 1640s 1640s @define 1640s class C: 1640s a: cl | None 1640s 1640s inst = C(a=cl(*vals, **kwargs)) 1640s > assert inst == converter.structure(converter.unstructure(inst), C) 1640s E AssertionError: assert C(a=HypAttrsC..._d={}, e=nan)) == C(a=HypAttrsC..._d={}, e=nan)) 1640s E 1640s E Differing attributes: 1640s E ['a'] 1640s E 1640s E Drill down into differing attribute a: 1640s E a: HypAttrsClass(a=('', '', ''), _b=0, _d={}, e=nan) != HypAttrsClass(a=('', '', ''), _b=0, _d={}, e=nan) 1640s E ... 1640s E 1640s E ...Full output truncated (6 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), '_b': _CountingAttr(counter=1, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='c', metadata={}), '_d': _CountingAttr(counter=2, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={}), 'e': _CountingAttr(counter=3, _default=NOTHING, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias='_f', metadata={})} 1640s E Falsifying example: test_310_optional_field_roundtrip( 1640s E cl_and_vals=(tests.typed.HypAttrsClass, (('', '', ''), 0, {}, nan), {}), 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py:250 1640s 1640s C = .C'> 1640s cl = 1640s cl_and_vals = (, (('', '', ''), 0, {}, nan), {}) 1640s converter = 1640s inst = C(a=HypAttrsClass(a=('', '', ''), _b=0, _d={}, e=nan)) 1640s kwargs = {} 1640s vals = (('', '', ''), 0, {}, nan) 1640s 1640s tests/test_converter.py:357: AssertionError 1640s _________________________ test_omit_default_roundtrip __________________________ 1640s 1640s @given(simple_typed_classes(defaults=True)) 1640s > def test_omit_default_roundtrip(cl_and_vals): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff844c3740> 1640s 1640s tests/test_converter.py:366: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals = (, (nan,), {}) 1640s 1640s @given(simple_typed_classes(defaults=True)) 1640s def test_omit_default_roundtrip(cl_and_vals): 1640s """ 1640s Omit default on the converter works. 1640s """ 1640s converter = Converter(omit_if_default=True) 1640s cl, vals, kwargs = cl_and_vals 1640s 1640s @define 1640s class C: 1640s a: int = 1 1640s b: cl = Factory(lambda: cl(*vals, **kwargs)) 1640s 1640s inst = C() 1640s unstructured = converter.unstructure(inst) 1640s > assert unstructured == {} 1640s E AssertionError: assert {'b': {'a': nan}} == {} 1640s E 1640s E Left contains 1 more item: 1640s E {'b': {'a': nan}} 1640s E 1640s E Full diff: 1640s E - {} 1640s E + {... 1640s E 1640s E ...Full output truncated (4 lines hidden), use '-vv' to show 1640s E Class fields: [_CountingAttr(counter=0, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})] 1640s E Attributes: {'a': _CountingAttr(counter=0, _default=0.0, repr=True, eq=True, order=True, hash=None, init=True, on_setattr=None, alias=None, metadata={})} 1640s E Falsifying example: test_omit_default_roundtrip( 1640s E cl_and_vals=(tests.typed.HypAttrsClass, (nan,), {}), # Saw 1 signaling NaN 1640s E ) 1640s E Explanation: 1640s E These lines were always and only run by failing examples: 1640s E /usr/lib/python3.12/difflib.py:490 1640s E /usr/lib/python3/dist-packages/_pytest/_io/pprint.py:128 1640s 1640s C = .C'> 1640s cl = 1640s cl_and_vals = (, (nan,), {}) 1640s converter = 1640s inst = C(a=1, b=HypAttrsClass(a=nan)) 1640s kwargs = {} 1640s unstructured = {'b': {'a': nan}} 1640s vals = (nan,) 1640s 1640s tests/test_converter.py:380: AssertionError 1640s ___________________ test_structure_simple_from_dict_default ____________________ 1640s 1640s @given(simple_classes(defaults=True, min_attrs=1, frozen=False), data()) 1640s > def test_structure_simple_from_dict_default(cl_and_vals, data): 1640s 1640s f = .run_test_as_given..wrapped_test at 0x3ff847cb560> 1640s 1640s tests/test_structure_attrs.py:31: 1640s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1640s 1640s cl_and_vals = (, (None, 0, 0, 0, '', 0.0, ...), {}) 1640s data = data(...) 1640s 1640s @given(simple_classes(defaults=True, min_attrs=1, frozen=False), data()) 1640s def test_structure_simple_from_dict_default(cl_and_vals, data): 1640s """Test structuring non-nested attrs classes with default value.""" 1640s converter = BaseConverter() 1640s cl, vals, kwargs = cl_and_vals 1640s obj = cl(*vals, **kwargs) 1640s attrs_with_defaults = [a for a in fields(cl) if a.default is not NOTHING] 1640s to_remove = data.draw( 1640s lists(elements=sampled_from(attrs_with_defaults), unique=True) 1640s ) 1640s 1640s for a in to_remove: 1640s if isinstance(a.default, Factory): 1640s setattr(obj, a.name, a.default.factory()) 1640s else: 1640s setattr(obj, a.name, a.default) 1640s 1640s dumped = asdict(obj) 1640s 1640s for a in to_remove: 1640s del dumped[a.name] 1640s 1640s > assert obj == converter.structure(dumped, cl) 1640s E AssertionError: assert HypClass(a=No..._f=0.0, g=nan) == HypClass(a=No..._f=0.0, g=nan) 1640s E 1640s E Omitting 6 identical items, use -vv to show 1640s E Differing attributes: 1640s E ['g'] 1640s E 1640s E Drill down into differing attribute g: 1640s E g: nan != nan 1640s E Falsifying example: test_structure_simple_from_dict_default( 1640s E cl_and_vals=(tests.untyped.HypClass, (None, 0, 0, 0, '', 0.0, 0.0), {}), 1640s E data=data(...), 1640s E ) 1640s E Draw 1: [Attribute(name='a', default=None, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='a'), 1640s E Attribute(name='_b', default=0, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='b'), 1640s E Attribute(name='c', default=None, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='c'), 1640s E Attribute(name='g', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=None, init=True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='g')] 1640s 1640s a = Attribute(name='g', default=nan, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=Non...True, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='g') 1640s attrs_with_defaults = [Attribute(name='a', default=None, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=N...metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='f'), ...] 1640s cl = 1640s cl_and_vals = (, (None, 0, 0, 0, '', 0.0, ...), {}) 1640s converter = 1640s data = data(...) 1640s dumped = {'_d': 0, '_f': 0.0, 'e': ''} 1640s kwargs = {} 1640s obj = HypClass(a=None, _b=0, c=None, _d=0, e='', _f=0.0, g=nan) 1640s to_remove = [Attribute(name='a', default=None, validator=None, repr=True, eq=True, eq_key=None, order=True, order_key=None, hash=N...rue, metadata=mappingproxy({}), type=None, converter=None, kw_only=False, inherited=False, on_setattr=None, alias='g')] 1640s vals = (None, 0, 0, 0, '', 0.0, ...) 1640s 1640s tests/test_structure_attrs.py:52: AssertionError 1640s =============================== warnings summary =============================== 1640s tests/typed.py:417 1640s /tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build/tests/typed.py:417: HypothesisWarning: Return-type annotation is `st.SearchStrategy[typing.Tuple[attr._make._CountingAttr, st.SearchStrategy]]`, but the decorated function should return a value (not a strategy) 1640s @composite 1640s 1640s tests/typed.py:826 1640s /tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build/tests/typed.py:826: HypothesisWarning: Return-type annotation is `st.SearchStrategy[typing.Tuple[typing.Type, st.SearchStrategy[typing.Tuple[typing.Any]], st.SearchStrategy[typing.Dict[str, typing.Any]]]]`, but the decorated function should return a value (not a strategy) 1640s @composite 1640s 1640s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 1640s =========================== short test summary info ============================ 1640s FAILED tests/test_baseconverter.py::test_simple_roundtrip - AssertionError: a... 1640s FAILED tests/test_baseconverter.py::test_nested_roundtrip - AssertionError: a... 1640s FAILED tests/test_baseconverter.py::test_nested_roundtrip_tuple - AssertionEr... 1640s FAILED tests/test_baseconverter.py::test_union_field_roundtrip - AssertionErr... 1640s FAILED tests/test_baseconverter.py::test_310_union_field_roundtrip - Assertio... 1640s FAILED tests/test_baseconverter.py::test_optional_field_roundtrip - Assertion... 1640s FAILED tests/test_baseconverter.py::test_310_optional_field_roundtrip - Asser... 1640s FAILED tests/test_converter.py::test_simple_roundtrip_defaults - AssertionErr... 1640s FAILED tests/test_converter.py::test_simple_roundtrip_defaults_tuple - Assert... 1640s FAILED tests/test_converter.py::test_simple_roundtrip_with_extra_keys_forbidden 1640s FAILED tests/test_converter.py::test_nested_roundtrip - AssertionError: asser... 1640s FAILED tests/test_converter.py::test_nested_roundtrip_tuple - AssertionError:... 1640s FAILED tests/test_converter.py::test_union_field_roundtrip - ExceptionGroup: ... 1640s FAILED tests/test_converter.py::test_310_union_field_roundtrip - AssertionErr... 1640s FAILED tests/test_converter.py::test_optional_field_roundtrip - AssertionErro... 1640s FAILED tests/test_converter.py::test_310_optional_field_roundtrip - Assertion... 1640s FAILED tests/test_converter.py::test_omit_default_roundtrip - AssertionError:... 1640s FAILED tests/test_structure_attrs.py::test_structure_simple_from_dict_default 1640s ===== 18 failed, 559 passed, 15 xfailed, 2 warnings in 1393.48s (0:23:13) ====== 1641s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.bEs2lH/autopkgtest_tmp/build; python3.12 -m pytest -v --ignore tests/test_unstructure_collections.py --ignore tests/test_preconf.py -k 'not test_orjson' 1641s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.12 returned exit code 13 1641s make: *** [/tmp/VishXBWn6_/run:4: pybuild-autopkgtest] Error 25 1641s pybuild-autopkgtest: error: /tmp/VishXBWn6_/run pybuild-autopkgtest returned exit code 2 1641s autopkgtest [15:30:35]: test pybuild-autopkgtest: -----------------------] 1642s pybuild-autopkgtest FAIL non-zero exit status 25 1642s autopkgtest [15:30:36]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 1642s autopkgtest [15:30:36]: @@@@@@@@@@@@@@@@@@@@ summary 1642s pybuild-autopkgtest FAIL non-zero exit status 25 1653s nova [W] Using flock in prodstack6-s390x 1653s Creating nova instance adt-plucky-s390x-python-cattrs-20241109-150314-juju-7f2275-prod-proposed-migration-environment-20-09b588aa-76e9-4454-ac98-92ed23d6e02c from image adt/ubuntu-plucky-s390x-server-20241109.img (UUID 3dcdd533-c66f-4d57-9732-52a74843bc00)...