0s autopkgtest [12:20:14]: starting date and time: 2025-11-17 12:20:14+0000 0s autopkgtest [12:20:14]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [12:20:14]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.574umxd2/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade dataclass-wizard --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.7-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-s390x-9.secgroup --name adt-resolute-s390x-dataclass-wizard-20251117-122013-juju-7f2275-prod-proposed-migration-environment-2-add503f1-c3e9-40c1-b830-a9158d70d3d2 --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-s390x-dataclass-wizard-20251117-122013-juju-7f2275-prod-proposed-migration-environment-2-add503f1-c3e9-40c1-b830-a9158d70d3d2 from image adt/ubuntu-resolute-s390x-server-20251117.img (UUID a3a3e3b9-e6ba-478c-a5e9-fce6f0982a95)... 129s autopkgtest [12:22:23]: testbed dpkg architecture: s390x 129s autopkgtest [12:22:23]: testbed apt version: 3.1.11 129s autopkgtest [12:22:23]: @@@@@@@@@@@@@@@@@@@@ test bed setup 130s autopkgtest [12:22:24]: testbed release detected to be: None 130s autopkgtest [12:22:24]: updating testbed package index (apt update) 131s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 131s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 131s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 131s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 131s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 131s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 131s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.1 kB] 131s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [868 kB] 132s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [138 kB] 132s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted s390x Packages [940 B] 132s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [545 kB] 132s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [10.6 kB] 132s Fetched 1764 kB in 1s (1489 kB/s) 132s Reading package lists... 133s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 133s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 133s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 133s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 134s Reading package lists... 134s Reading package lists... 134s Building dependency tree... 134s Reading state information... 134s Calculating upgrade... 134s The following packages will be upgraded: 134s libpython3-stdlib python3 python3-minimal usbutils 134s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 134s Need to get 148 kB of archives. 134s After this operation, 4096 B disk space will be freed. 134s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.13.7-2 [27.8 kB] 135s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.13.7-2 [23.9 kB] 135s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.13.7-2 [10.6 kB] 135s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x usbutils s390x 1:019-1 [85.6 kB] 135s dpkg-preconfigure: unable to re-open stdin: No such file or directory 135s Fetched 148 kB in 0s (338 kB/s) 135s (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 ... 61309 files and directories currently installed.) 135s Preparing to unpack .../python3-minimal_3.13.7-2_s390x.deb ... 135s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 135s Setting up python3-minimal (3.13.7-2) ... 135s (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 ... 61309 files and directories currently installed.) 135s Preparing to unpack .../python3_3.13.7-2_s390x.deb ... 135s running python pre-rtupdate hooks for python3.13... 135s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 135s Preparing to unpack .../libpython3-stdlib_3.13.7-2_s390x.deb ... 135s Unpacking libpython3-stdlib:s390x (3.13.7-2) over (3.13.7-1) ... 135s Preparing to unpack .../usbutils_1%3a019-1_s390x.deb ... 135s Unpacking usbutils (1:019-1) over (1:018-2) ... 135s Setting up usbutils (1:019-1) ... 135s Setting up libpython3-stdlib:s390x (3.13.7-2) ... 135s Setting up python3 (3.13.7-2) ... 135s running python rtupdate hooks for python3.13... 135s running python post-rtupdate hooks for python3.13... 135s Processing triggers for man-db (2.13.1-1) ... 136s autopkgtest [12:22:30]: upgrading testbed (apt dist-upgrade and autopurge) 136s Reading package lists... 137s Building dependency tree... 137s Reading state information... 137s Calculating upgrade... 137s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 137s Reading package lists... 137s Building dependency tree... 137s Reading state information... 137s Solving dependencies... 137s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 140s autopkgtest [12:22:34]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP Mon Sep 22 08:56:47 UTC 2025 140s autopkgtest [12:22:34]: @@@@@@@@@@@@@@@@@@@@ apt-source dataclass-wizard 142s Get:1 http://ftpmaster.internal/ubuntu resolute/universe dataclass-wizard 0.35.1-1 (dsc) [2577 B] 142s Get:2 http://ftpmaster.internal/ubuntu resolute/universe dataclass-wizard 0.35.1-1 (tar) [320 kB] 142s Get:3 http://ftpmaster.internal/ubuntu resolute/universe dataclass-wizard 0.35.1-1 (diff) [4216 B] 142s gpgv: Signature made Wed Jul 30 07:31:38 2025 UTC 142s gpgv: using RSA key FB8ACFA78C726089C38AD0269605A1098C63B92A 142s gpgv: Can't check signature: No public key 142s dpkg-source: warning: cannot verify inline signature for ./dataclass-wizard_0.35.1-1.dsc: no acceptable signature found 142s autopkgtest [12:22:36]: testing package dataclass-wizard version 0.35.1-1 143s autopkgtest [12:22:37]: build not needed 145s autopkgtest [12:22:39]: test pybuild-autopkgtest: preparing testbed 146s Reading package lists... 146s Building dependency tree... 146s Reading state information... 146s Solving dependencies... 146s The following NEW packages will be installed: 146s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 146s cpp-15-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf 146s dh-python dh-strip-nondeterminism docutils-common dwz g++ g++-15 146s g++-15-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-15 gcc-15-s390x-linux-gnu 146s gcc-s390x-linux-gnu gettext intltool-debian libarchive-zip-perl libasan8 146s libcc1-0 libdebhelper-perl libfile-stripnondeterminism-perl libgcc-15-dev 146s libgomp1 libisl23 libitm1 libjs-jquery libjs-jquery-hotkeys 146s libjs-jquery-isonscreen libjs-jquery-metadata libjs-jquery-tablesorter 146s libjs-jquery-throttle-debounce libjs-sphinxdoc libjs-underscore libjson-perl 146s libmpc3 libpython3.14-minimal libpython3.14-stdlib libstdc++-15-dev libtool 146s libubsan1 m4 po-debconf pybuild-plugin-autopkgtest pybuild-plugin-pyproject 146s python3-alabaster python3-all python3-build python3-coverage 146s python3-dataclass-wizard python3-defusedxml python3-docutils python3-dotenv 146s python3-imagesize python3-iniconfig python3-installer python3-pluggy 146s python3-pyproject-hooks python3-pytest python3-pytest-cov 146s python3-pytest-mock python3-pytimeparse python3-roman 146s python3-snowballstemmer python3-sphinx python3-sphinx-autodoc-typehints 146s python3-sphinx-copybutton python3-sphinx-issues python3-tomli-w 146s python3-wheel python3.14 python3.14-minimal sgml-base sphinx-common 146s tzdata-legacy xml-core 146s 0 upgraded, 85 newly installed, 0 to remove and 0 not upgraded. 146s Need to get 66.4 MB of archives. 146s After this operation, 225 MB of additional disk space will be used. 146s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-minimal s390x 3.14.0-4 [904 kB] 147s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.0-4 [2509 kB] 147s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x m4 s390x 1.4.20-2 [223 kB] 147s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x autoconf all 2.72-3.1ubuntu1 [384 kB] 147s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x autotools-dev all 20240727.1 [43.4 kB] 147s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x automake all 1:1.18.1-2 [581 kB] 147s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x autopoint all 0.23.2-1 [620 kB] 147s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x libisl23 s390x 0.27-1 [704 kB] 147s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libmpc3 s390x 1.3.1-2 [57.4 kB] 148s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15-s390x-linux-gnu s390x 15.2.0-7ubuntu1 [10.2 MB] 148s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15 s390x 15.2.0-7ubuntu1 [1022 B] 148s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [5746 B] 148s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x cpp s390x 4:15.2.0-4ubuntu1 [22.4 kB] 148s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x libcc1-0 s390x 15.2.0-7ubuntu1 [50.0 kB] 149s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-7ubuntu1 [154 kB] 149s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x libitm1 s390x 15.2.0-7ubuntu1 [30.9 kB] 149s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x libasan8 s390x 15.2.0-7ubuntu1 [2968 kB] 149s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x libubsan1 s390x 15.2.0-7ubuntu1 [1211 kB] 149s Get:19 http://ftpmaster.internal/ubuntu resolute/main s390x libgcc-15-dev s390x 15.2.0-7ubuntu1 [1045 kB] 149s Get:20 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15-s390x-linux-gnu s390x 15.2.0-7ubuntu1 [19.9 MB] 150s Get:21 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15 s390x 15.2.0-7ubuntu1 [513 kB] 150s Get:22 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [1208 B] 150s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x gcc s390x 4:15.2.0-4ubuntu1 [5018 B] 150s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x libstdc++-15-dev s390x 15.2.0-7ubuntu1 [2659 kB] 150s Get:25 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15-s390x-linux-gnu s390x 15.2.0-7ubuntu1 [11.7 MB] 150s Get:26 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15 s390x 15.2.0-7ubuntu1 [23.7 kB] 150s Get:27 http://ftpmaster.internal/ubuntu resolute/main s390x g++-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [956 B] 150s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x g++ s390x 4:15.2.0-4ubuntu1 [1078 B] 150s Get:29 http://ftpmaster.internal/ubuntu resolute/main s390x build-essential s390x 12.12ubuntu1 [5090 B] 150s Get:30 http://ftpmaster.internal/ubuntu resolute/main s390x libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 150s Get:31 http://ftpmaster.internal/ubuntu resolute/main s390x libtool all 2.5.4-7 [169 kB] 150s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x dh-autoreconf all 21 [12.5 kB] 150s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 150s Get:34 http://ftpmaster.internal/ubuntu resolute/main s390x libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 150s Get:35 http://ftpmaster.internal/ubuntu resolute/main s390x dh-strip-nondeterminism all 1.15.0-1 [5090 B] 150s Get:36 http://ftpmaster.internal/ubuntu resolute/main s390x debugedit s390x 1:5.2-3 [52.8 kB] 150s Get:37 http://ftpmaster.internal/ubuntu resolute/main s390x dwz s390x 0.16-2 [121 kB] 150s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x gettext s390x 0.23.2-1 [1062 kB] 151s Get:39 http://ftpmaster.internal/ubuntu resolute/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 151s Get:40 http://ftpmaster.internal/ubuntu resolute/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 151s Get:41 http://ftpmaster.internal/ubuntu resolute/main s390x debhelper all 13.24.2ubuntu1 [896 kB] 151s Get:42 http://ftpmaster.internal/ubuntu resolute/universe s390x dh-python all 6.20250414 [119 kB] 151s Get:43 http://ftpmaster.internal/ubuntu resolute/main s390x sgml-base all 1.31+nmu1 [11.0 kB] 151s Get:44 http://ftpmaster.internal/ubuntu resolute/main s390x xml-core all 0.19 [20.3 kB] 151s Get:45 http://ftpmaster.internal/ubuntu resolute/main s390x docutils-common all 0.21.2+dfsg-2 [131 kB] 151s Get:46 http://ftpmaster.internal/ubuntu resolute/main s390x libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 151s Get:47 http://ftpmaster.internal/ubuntu resolute/universe s390x libjs-jquery-metadata all 12-4 [6582 B] 151s Get:48 http://ftpmaster.internal/ubuntu resolute/universe s390x libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 151s Get:49 http://ftpmaster.internal/ubuntu resolute/universe s390x libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 151s Get:50 http://ftpmaster.internal/ubuntu resolute/main s390x libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 151s Get:51 http://ftpmaster.internal/ubuntu resolute/main s390x libjs-sphinxdoc all 8.2.3-1ubuntu2 [28.0 kB] 151s Get:52 http://ftpmaster.internal/ubuntu resolute/main s390x libjson-perl all 4.10000-1 [81.9 kB] 151s Get:53 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-stdlib s390x 3.14.0-4 [2373 kB] 151s Get:54 http://ftpmaster.internal/ubuntu resolute/universe s390x pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 151s Get:55 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 151s Get:56 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-wheel all 0.46.1-2 [22.1 kB] 151s Get:57 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-build all 1.2.2-4 [31.0 kB] 151s Get:58 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 151s Get:59 http://ftpmaster.internal/ubuntu resolute/universe s390x pybuild-plugin-pyproject all 6.20250414 [1728 B] 151s Get:60 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.0-4 [805 kB] 151s Get:61 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-all s390x 3.13.7-2 [892 B] 151s Get:62 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-coverage s390x 7.8.2+dfsg1-1 [156 kB] 151s Get:63 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-dataclass-wizard all 0.35.1-1 [446 kB] 151s Get:64 http://ftpmaster.internal/ubuntu resolute/main s390x python3-defusedxml all 0.7.1-3 [42.2 kB] 151s Get:65 http://ftpmaster.internal/ubuntu resolute/main s390x python3-roman all 5.1-1 [10.6 kB] 151s Get:66 http://ftpmaster.internal/ubuntu resolute/main s390x python3-docutils all 0.21.2+dfsg-2 [409 kB] 151s Get:67 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-dotenv all 1.0.1-1 [22.3 kB] 151s Get:68 http://ftpmaster.internal/ubuntu resolute/main s390x python3-imagesize all 1.4.1-1 [6844 B] 151s Get:69 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-1 [6840 B] 151s Get:70 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-1 [21.0 kB] 151s Get:71 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 8.3.5-2 [252 kB] 151s Get:72 http://ftpmaster.internal/ubuntu resolute/universe s390x libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 151s Get:73 http://ftpmaster.internal/ubuntu resolute/universe s390x libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 151s Get:74 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest-cov all 5.0.0-1 [21.3 kB] 151s Get:75 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest-mock all 3.15.1-1 [11.9 kB] 151s Get:76 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytimeparse all 1.1.5-4 [8500 B] 151s Get:77 http://ftpmaster.internal/ubuntu resolute/main s390x python3-snowballstemmer all 3.0.1-1 [65.9 kB] 151s Get:78 http://ftpmaster.internal/ubuntu resolute/main s390x sphinx-common all 8.2.3-1ubuntu2 [656 kB] 151s Get:79 http://ftpmaster.internal/ubuntu resolute/main s390x python3-alabaster all 0.7.16-0.1 [18.5 kB] 151s Get:80 http://ftpmaster.internal/ubuntu resolute/main s390x python3-sphinx all 8.2.3-1ubuntu2 [482 kB] 151s Get:81 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-sphinx-autodoc-typehints all 3.2.0-1 [22.2 kB] 151s Get:82 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-sphinx-copybutton all 0.5.2-3 [16.7 kB] 151s Get:83 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-sphinx-issues all 5.0.1-1 [10.4 kB] 151s Get:84 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-tomli-w all 1.2.0-1 [8120 B] 151s Get:85 http://ftpmaster.internal/ubuntu resolute/main s390x tzdata-legacy all 2025b-5ubuntu1 [99.3 kB] 151s Fetched 66.4 MB in 5s (12.7 MB/s) 151s Selecting previously unselected package libpython3.14-minimal:s390x. 152s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61309 files and directories currently installed.) 152s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_s390x.deb ... 152s Unpacking libpython3.14-minimal:s390x (3.14.0-4) ... 152s Selecting previously unselected package python3.14-minimal. 152s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_s390x.deb ... 152s Unpacking python3.14-minimal (3.14.0-4) ... 152s Selecting previously unselected package m4. 152s Preparing to unpack .../02-m4_1.4.20-2_s390x.deb ... 152s Unpacking m4 (1.4.20-2) ... 152s Selecting previously unselected package autoconf. 152s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 152s Unpacking autoconf (2.72-3.1ubuntu1) ... 152s Selecting previously unselected package autotools-dev. 152s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 152s Unpacking autotools-dev (20240727.1) ... 152s Selecting previously unselected package automake. 152s Preparing to unpack .../05-automake_1%3a1.18.1-2_all.deb ... 152s Unpacking automake (1:1.18.1-2) ... 152s Selecting previously unselected package autopoint. 152s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 152s Unpacking autopoint (0.23.2-1) ... 152s Selecting previously unselected package libisl23:s390x. 152s Preparing to unpack .../07-libisl23_0.27-1_s390x.deb ... 152s Unpacking libisl23:s390x (0.27-1) ... 152s Selecting previously unselected package libmpc3:s390x. 152s Preparing to unpack .../08-libmpc3_1.3.1-2_s390x.deb ... 152s Unpacking libmpc3:s390x (1.3.1-2) ... 152s Selecting previously unselected package cpp-15-s390x-linux-gnu. 152s Preparing to unpack .../09-cpp-15-s390x-linux-gnu_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking cpp-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package cpp-15. 152s Preparing to unpack .../10-cpp-15_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package cpp-s390x-linux-gnu. 152s Preparing to unpack .../11-cpp-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 152s Unpacking cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 152s Selecting previously unselected package cpp. 152s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_s390x.deb ... 152s Unpacking cpp (4:15.2.0-4ubuntu1) ... 152s Selecting previously unselected package libcc1-0:s390x. 152s Preparing to unpack .../13-libcc1-0_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libcc1-0:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package libgomp1:s390x. 152s Preparing to unpack .../14-libgomp1_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libgomp1:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package libitm1:s390x. 152s Preparing to unpack .../15-libitm1_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libitm1:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package libasan8:s390x. 152s Preparing to unpack .../16-libasan8_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libasan8:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package libubsan1:s390x. 152s Preparing to unpack .../17-libubsan1_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libubsan1:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package libgcc-15-dev:s390x. 152s Preparing to unpack .../18-libgcc-15-dev_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libgcc-15-dev:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package gcc-15-s390x-linux-gnu. 152s Preparing to unpack .../19-gcc-15-s390x-linux-gnu_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking gcc-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package gcc-15. 152s Preparing to unpack .../20-gcc-15_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package gcc-s390x-linux-gnu. 152s Preparing to unpack .../21-gcc-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 152s Unpacking gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 152s Selecting previously unselected package gcc. 152s Preparing to unpack .../22-gcc_4%3a15.2.0-4ubuntu1_s390x.deb ... 152s Unpacking gcc (4:15.2.0-4ubuntu1) ... 152s Selecting previously unselected package libstdc++-15-dev:s390x. 152s Preparing to unpack .../23-libstdc++-15-dev_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking libstdc++-15-dev:s390x (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package g++-15-s390x-linux-gnu. 152s Preparing to unpack .../24-g++-15-s390x-linux-gnu_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking g++-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package g++-15. 152s Preparing to unpack .../25-g++-15_15.2.0-7ubuntu1_s390x.deb ... 152s Unpacking g++-15 (15.2.0-7ubuntu1) ... 152s Selecting previously unselected package g++-s390x-linux-gnu. 153s Preparing to unpack .../26-g++-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 153s Unpacking g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 153s Selecting previously unselected package g++. 153s Preparing to unpack .../27-g++_4%3a15.2.0-4ubuntu1_s390x.deb ... 153s Unpacking g++ (4:15.2.0-4ubuntu1) ... 153s Selecting previously unselected package build-essential. 153s Preparing to unpack .../28-build-essential_12.12ubuntu1_s390x.deb ... 153s Unpacking build-essential (12.12ubuntu1) ... 153s Selecting previously unselected package libdebhelper-perl. 153s Preparing to unpack .../29-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 153s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 153s Selecting previously unselected package libtool. 153s Preparing to unpack .../30-libtool_2.5.4-7_all.deb ... 153s Unpacking libtool (2.5.4-7) ... 153s Selecting previously unselected package dh-autoreconf. 153s Preparing to unpack .../31-dh-autoreconf_21_all.deb ... 153s Unpacking dh-autoreconf (21) ... 153s Selecting previously unselected package libarchive-zip-perl. 153s Preparing to unpack .../32-libarchive-zip-perl_1.68-1_all.deb ... 153s Unpacking libarchive-zip-perl (1.68-1) ... 153s Selecting previously unselected package libfile-stripnondeterminism-perl. 153s Preparing to unpack .../33-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 153s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 153s Selecting previously unselected package dh-strip-nondeterminism. 153s Preparing to unpack .../34-dh-strip-nondeterminism_1.15.0-1_all.deb ... 153s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 153s Selecting previously unselected package debugedit. 153s Preparing to unpack .../35-debugedit_1%3a5.2-3_s390x.deb ... 153s Unpacking debugedit (1:5.2-3) ... 153s Selecting previously unselected package dwz. 153s Preparing to unpack .../36-dwz_0.16-2_s390x.deb ... 153s Unpacking dwz (0.16-2) ... 153s Selecting previously unselected package gettext. 153s Preparing to unpack .../37-gettext_0.23.2-1_s390x.deb ... 153s Unpacking gettext (0.23.2-1) ... 153s Selecting previously unselected package intltool-debian. 153s Preparing to unpack .../38-intltool-debian_0.35.0+20060710.6_all.deb ... 153s Unpacking intltool-debian (0.35.0+20060710.6) ... 153s Selecting previously unselected package po-debconf. 153s Preparing to unpack .../39-po-debconf_1.0.21+nmu1_all.deb ... 153s Unpacking po-debconf (1.0.21+nmu1) ... 153s Selecting previously unselected package debhelper. 153s Preparing to unpack .../40-debhelper_13.24.2ubuntu1_all.deb ... 153s Unpacking debhelper (13.24.2ubuntu1) ... 153s Selecting previously unselected package dh-python. 153s Preparing to unpack .../41-dh-python_6.20250414_all.deb ... 153s Unpacking dh-python (6.20250414) ... 153s Selecting previously unselected package sgml-base. 153s Preparing to unpack .../42-sgml-base_1.31+nmu1_all.deb ... 153s Unpacking sgml-base (1.31+nmu1) ... 153s Selecting previously unselected package xml-core. 153s Preparing to unpack .../43-xml-core_0.19_all.deb ... 153s Unpacking xml-core (0.19) ... 153s Selecting previously unselected package docutils-common. 153s Preparing to unpack .../44-docutils-common_0.21.2+dfsg-2_all.deb ... 153s Unpacking docutils-common (0.21.2+dfsg-2) ... 153s Selecting previously unselected package libjs-jquery. 153s Preparing to unpack .../45-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 153s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 153s Selecting previously unselected package libjs-jquery-metadata. 153s Preparing to unpack .../46-libjs-jquery-metadata_12-4_all.deb ... 153s Unpacking libjs-jquery-metadata (12-4) ... 153s Selecting previously unselected package libjs-jquery-tablesorter. 153s Preparing to unpack .../47-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 153s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 153s Selecting previously unselected package libjs-jquery-throttle-debounce. 153s Preparing to unpack .../48-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 153s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 153s Selecting previously unselected package libjs-underscore. 153s Preparing to unpack .../49-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 153s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 153s Selecting previously unselected package libjs-sphinxdoc. 153s Preparing to unpack .../50-libjs-sphinxdoc_8.2.3-1ubuntu2_all.deb ... 153s Unpacking libjs-sphinxdoc (8.2.3-1ubuntu2) ... 153s Selecting previously unselected package libjson-perl. 153s Preparing to unpack .../51-libjson-perl_4.10000-1_all.deb ... 153s Unpacking libjson-perl (4.10000-1) ... 153s Selecting previously unselected package libpython3.14-stdlib:s390x. 153s Preparing to unpack .../52-libpython3.14-stdlib_3.14.0-4_s390x.deb ... 153s Unpacking libpython3.14-stdlib:s390x (3.14.0-4) ... 153s Selecting previously unselected package pybuild-plugin-autopkgtest. 153s Preparing to unpack .../53-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 153s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 153s Selecting previously unselected package python3-pyproject-hooks. 153s Preparing to unpack .../54-python3-pyproject-hooks_1.2.0-1_all.deb ... 153s Unpacking python3-pyproject-hooks (1.2.0-1) ... 153s Selecting previously unselected package python3-wheel. 153s Preparing to unpack .../55-python3-wheel_0.46.1-2_all.deb ... 153s Unpacking python3-wheel (0.46.1-2) ... 153s Selecting previously unselected package python3-build. 153s Preparing to unpack .../56-python3-build_1.2.2-4_all.deb ... 153s Unpacking python3-build (1.2.2-4) ... 153s Selecting previously unselected package python3-installer. 153s Preparing to unpack .../57-python3-installer_0.7.0+dfsg1-3_all.deb ... 153s Unpacking python3-installer (0.7.0+dfsg1-3) ... 153s Selecting previously unselected package pybuild-plugin-pyproject. 153s Preparing to unpack .../58-pybuild-plugin-pyproject_6.20250414_all.deb ... 153s Unpacking pybuild-plugin-pyproject (6.20250414) ... 153s Selecting previously unselected package python3.14. 153s Preparing to unpack .../59-python3.14_3.14.0-4_s390x.deb ... 153s Unpacking python3.14 (3.14.0-4) ... 153s Selecting previously unselected package python3-all. 153s Preparing to unpack .../60-python3-all_3.13.7-2_s390x.deb ... 153s Unpacking python3-all (3.13.7-2) ... 153s Selecting previously unselected package python3-coverage. 153s Preparing to unpack .../61-python3-coverage_7.8.2+dfsg1-1_s390x.deb ... 153s Unpacking python3-coverage (7.8.2+dfsg1-1) ... 153s Selecting previously unselected package python3-dataclass-wizard. 153s Preparing to unpack .../62-python3-dataclass-wizard_0.35.1-1_all.deb ... 153s Unpacking python3-dataclass-wizard (0.35.1-1) ... 153s Selecting previously unselected package python3-defusedxml. 153s Preparing to unpack .../63-python3-defusedxml_0.7.1-3_all.deb ... 153s Unpacking python3-defusedxml (0.7.1-3) ... 153s Selecting previously unselected package python3-roman. 153s Preparing to unpack .../64-python3-roman_5.1-1_all.deb ... 153s Unpacking python3-roman (5.1-1) ... 153s Selecting previously unselected package python3-docutils. 153s Preparing to unpack .../65-python3-docutils_0.21.2+dfsg-2_all.deb ... 153s Unpacking python3-docutils (0.21.2+dfsg-2) ... 153s Selecting previously unselected package python3-dotenv. 153s Preparing to unpack .../66-python3-dotenv_1.0.1-1_all.deb ... 153s Unpacking python3-dotenv (1.0.1-1) ... 153s Selecting previously unselected package python3-imagesize. 153s Preparing to unpack .../67-python3-imagesize_1.4.1-1_all.deb ... 153s Unpacking python3-imagesize (1.4.1-1) ... 153s Selecting previously unselected package python3-iniconfig. 153s Preparing to unpack .../68-python3-iniconfig_2.1.0-1_all.deb ... 153s Unpacking python3-iniconfig (2.1.0-1) ... 153s Selecting previously unselected package python3-pluggy. 153s Preparing to unpack .../69-python3-pluggy_1.6.0-1_all.deb ... 153s Unpacking python3-pluggy (1.6.0-1) ... 153s Selecting previously unselected package python3-pytest. 153s Preparing to unpack .../70-python3-pytest_8.3.5-2_all.deb ... 153s Unpacking python3-pytest (8.3.5-2) ... 153s Selecting previously unselected package libjs-jquery-hotkeys. 153s Preparing to unpack .../71-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 153s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 153s Selecting previously unselected package libjs-jquery-isonscreen. 153s Preparing to unpack .../72-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 153s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 153s Selecting previously unselected package python3-pytest-cov. 153s Preparing to unpack .../73-python3-pytest-cov_5.0.0-1_all.deb ... 153s Unpacking python3-pytest-cov (5.0.0-1) ... 153s Selecting previously unselected package python3-pytest-mock. 153s Preparing to unpack .../74-python3-pytest-mock_3.15.1-1_all.deb ... 153s Unpacking python3-pytest-mock (3.15.1-1) ... 153s Selecting previously unselected package python3-pytimeparse. 153s Preparing to unpack .../75-python3-pytimeparse_1.1.5-4_all.deb ... 153s Unpacking python3-pytimeparse (1.1.5-4) ... 153s Selecting previously unselected package python3-snowballstemmer. 153s Preparing to unpack .../76-python3-snowballstemmer_3.0.1-1_all.deb ... 153s Unpacking python3-snowballstemmer (3.0.1-1) ... 153s Selecting previously unselected package sphinx-common. 153s Preparing to unpack .../77-sphinx-common_8.2.3-1ubuntu2_all.deb ... 153s Unpacking sphinx-common (8.2.3-1ubuntu2) ... 153s Selecting previously unselected package python3-alabaster. 153s Preparing to unpack .../78-python3-alabaster_0.7.16-0.1_all.deb ... 153s Unpacking python3-alabaster (0.7.16-0.1) ... 153s Selecting previously unselected package python3-sphinx. 153s Preparing to unpack .../79-python3-sphinx_8.2.3-1ubuntu2_all.deb ... 153s Unpacking python3-sphinx (8.2.3-1ubuntu2) ... 153s Selecting previously unselected package python3-sphinx-autodoc-typehints. 153s Preparing to unpack .../80-python3-sphinx-autodoc-typehints_3.2.0-1_all.deb ... 153s Unpacking python3-sphinx-autodoc-typehints (3.2.0-1) ... 153s Selecting previously unselected package python3-sphinx-copybutton. 153s Preparing to unpack .../81-python3-sphinx-copybutton_0.5.2-3_all.deb ... 153s Unpacking python3-sphinx-copybutton (0.5.2-3) ... 153s Selecting previously unselected package python3-sphinx-issues. 153s Preparing to unpack .../82-python3-sphinx-issues_5.0.1-1_all.deb ... 153s Unpacking python3-sphinx-issues (5.0.1-1) ... 153s Selecting previously unselected package python3-tomli-w. 153s Preparing to unpack .../83-python3-tomli-w_1.2.0-1_all.deb ... 153s Unpacking python3-tomli-w (1.2.0-1) ... 153s Selecting previously unselected package tzdata-legacy. 153s Preparing to unpack .../84-tzdata-legacy_2025b-5ubuntu1_all.deb ... 153s Unpacking tzdata-legacy (2025b-5ubuntu1) ... 153s Setting up python3-dotenv (1.0.1-1) ... 154s Setting up dh-python (6.20250414) ... 154s Setting up python3-iniconfig (2.1.0-1) ... 154s Setting up python3-defusedxml (0.7.1-3) ... 154s Setting up libarchive-zip-perl (1.68-1) ... 154s Setting up python3-alabaster (0.7.16-0.1) ... 154s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 154s Setting up libpython3.14-minimal:s390x (3.14.0-4) ... 154s Setting up m4 (1.4.20-2) ... 154s Setting up python3-coverage (7.8.2+dfsg1-1) ... 154s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 154s Setting up libgomp1:s390x (15.2.0-7ubuntu1) ... 154s Setting up python3-wheel (0.46.1-2) ... 154s Setting up python3-pytimeparse (1.1.5-4) ... 154s Setting up tzdata-legacy (2025b-5ubuntu1) ... 154s Setting up python3-roman (5.1-1) ... 155s Setting up autotools-dev (20240727.1) ... 155s Setting up python3-pyproject-hooks (1.2.0-1) ... 155s Setting up python3-snowballstemmer (3.0.1-1) ... 155s Setting up libmpc3:s390x (1.3.1-2) ... 155s Setting up autopoint (0.23.2-1) ... 155s Setting up python3-installer (0.7.0+dfsg1-3) ... 155s Setting up autoconf (2.72-3.1ubuntu1) ... 155s Setting up python3-pluggy (1.6.0-1) ... 155s Setting up libubsan1:s390x (15.2.0-7ubuntu1) ... 155s Setting up dwz (0.16-2) ... 155s Setting up libasan8:s390x (15.2.0-7ubuntu1) ... 155s Setting up libjson-perl (4.10000-1) ... 155s Setting up debugedit (1:5.2-3) ... 155s Setting up sgml-base (1.31+nmu1) ... 155s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 155s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 155s Setting up libisl23:s390x (0.27-1) ... 155s Setting up python3-build (1.2.2-4) ... 155s Setting up python3-tomli-w (1.2.0-1) ... 156s Setting up python3.14-minimal (3.14.0-4) ... 156s Setting up libcc1-0:s390x (15.2.0-7ubuntu1) ... 156s Setting up libitm1:s390x (15.2.0-7ubuntu1) ... 156s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 156s Setting up python3-imagesize (1.4.1-1) ... 156s Setting up automake (1:1.18.1-2) ... 156s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 156s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 156s Setting up gettext (0.23.2-1) ... 156s Setting up libgcc-15-dev:s390x (15.2.0-7ubuntu1) ... 156s Setting up libpython3.14-stdlib:s390x (3.14.0-4) ... 156s Setting up pybuild-plugin-pyproject (6.20250414) ... 156s Setting up python3-pytest (8.3.5-2) ... 157s Setting up intltool-debian (0.35.0+20060710.6) ... 157s Setting up libstdc++-15-dev:s390x (15.2.0-7ubuntu1) ... 157s Setting up libjs-jquery-metadata (12-4) ... 157s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 157s Setting up libjs-sphinxdoc (8.2.3-1ubuntu2) ... 157s Setting up dh-strip-nondeterminism (1.15.0-1) ... 157s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 157s Setting up python3-pytest-mock (3.15.1-1) ... 157s Setting up xml-core (0.19) ... 157s Setting up cpp-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 157s Setting up python3.14 (3.14.0-4) ... 158s Setting up gcc-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 158s Setting up g++-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 158s Setting up cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 158s Setting up po-debconf (1.0.21+nmu1) ... 158s Setting up python3-dataclass-wizard (0.35.1-1) ... 158s Setting up python3-all (3.13.7-2) ... 158s Setting up python3-pytest-cov (5.0.0-1) ... 158s Setting up gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 158s Setting up sphinx-common (8.2.3-1ubuntu2) ... 158s Setting up cpp-15 (15.2.0-7ubuntu1) ... 158s Setting up cpp (4:15.2.0-4ubuntu1) ... 158s Setting up g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 158s Setting up gcc-15 (15.2.0-7ubuntu1) ... 158s Setting up g++-15 (15.2.0-7ubuntu1) ... 158s Setting up libtool (2.5.4-7) ... 158s Setting up gcc (4:15.2.0-4ubuntu1) ... 158s Setting up dh-autoreconf (21) ... 158s Setting up g++ (4:15.2.0-4ubuntu1) ... 158s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 158s Setting up build-essential (12.12ubuntu1) ... 158s Setting up debhelper (13.24.2ubuntu1) ... 158s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 158s Processing triggers for install-info (7.2-5) ... 158s Processing triggers for libc-bin (2.42-2ubuntu2) ... 158s Processing triggers for systemd (257.9-0ubuntu2) ... 158s Processing triggers for man-db (2.13.1-1) ... 159s Processing triggers for sgml-base (1.31+nmu1) ... 159s Setting up docutils-common (0.21.2+dfsg-2) ... 159s Processing triggers for sgml-base (1.31+nmu1) ... 159s Setting up python3-docutils (0.21.2+dfsg-2) ... 160s Setting up python3-sphinx (8.2.3-1ubuntu2) ... 161s Setting up python3-sphinx-copybutton (0.5.2-3) ... 161s Setting up python3-sphinx-autodoc-typehints (3.2.0-1) ... 161s Setting up python3-sphinx-issues (5.0.1-1) ... 162s autopkgtest [12:22:56]: test pybuild-autopkgtest: pybuild-autopkgtest 162s autopkgtest [12:22:56]: test pybuild-autopkgtest: [----------------------- 162s pybuild-autopkgtest 162s I: pybuild base:311: cd /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build; python3.14 -m pytest --no-cov -k "not test_toml_wizard_methods and not test_catch_all and not test_load_with_tuple_of_dotenv_and_env_file_param_to_init and not test_load_with_dotenv_file" 163s ============================= test session starts ============================== 163s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 163s rootdir: /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build 163s configfile: pytest.ini 163s plugins: typeguard-4.4.2, mock-3.15.1, cov-5.0.0 163s collected 685 items / 11 deselected / 674 selected 163s 163s tests/unit/environ/test_dumpers.py::test_dump_with_excluded_fields_and_skip_defaults FAILED 163s tests/unit/environ/test_loaders.py::test_load_to_bytes PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_bytearray[testing 123-expected0] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_bytearray[test-expected1] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_bytearray[input2-expected2] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_tuple_and_named_tuple PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_dataclass PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_datetime[2021-11-28T17:35:55-expected0] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_datetime[1577952245-expected1] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_datetime[input2-expected2] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_date[2021-11-28-expected0] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_date[1577952245-expected1] PASSED 163s tests/unit/environ/test_loaders.py::test_load_to_date[input2-expected2] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[device_type-devicetype] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[isACamelCasedWORD-isacamelcasedword] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[ATitledWordToTESTWith-atitledwordtotestwith] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[not-a-tester-notatester] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[helloworld-helloworld] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[A-a] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[TESTing_if_thisWorks-testingifthisworks] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[a_B_Cde_fG_hi-abcdefghi] PASSED 163s tests/unit/environ/test_lookups.py::test_clean[How_-Are-_YoUDoing__TeST-howareyoudoingtest] PASSED 163s tests/unit/environ/test_lookups.py::test_lookup_exact PASSED 163s tests/unit/environ/test_lookups.py::test_reload_when_not_accessed_cleaned_to_env PASSED 163s tests/unit/environ/test_lookups.py::test_with_snake_case PASSED 163s tests/unit/environ/test_lookups.py::test_with_pascal_or_camel_case PASSED 163s tests/unit/environ/test_wizard.py::test_load_and_dump PASSED 163s tests/unit/environ/test_wizard.py::test_load_and_dump_with_dict PASSED 163s tests/unit/environ/test_wizard.py::test_load_and_dump_with_aliases FAILED 163s tests/unit/environ/test_wizard.py::test_load_with_missing_env_variables PASSED 163s tests/unit/environ/test_wizard.py::test_load_with_parse_error 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard.bases_meta - [INFO] DEBUG Mode is enabled 163s PASSED 163s tests/unit/environ/test_wizard.py::test_load_with_parse_error_when_env_var_is_specified FAILED 163s tests/unit/environ/test_wizard.py::test_load_when_constructor_kwargs_are_passed PASSED 163s tests/unit/environ/test_wizard.py::test_init_method_declaration_is_logged_when_debug_mode_is_enabled FAILED 163s tests/unit/environ/test_wizard.py::test_load_with_tuple_of_dotenv_and_env_prefix_param_to_init PASSED 163s tests/unit/environ/test_wizard.py::test_env_prefix_with_env_file PASSED 163s tests/unit/environ/test_wizard.py::test_secrets_dir_and_override PASSED 163s tests/unit/environ/test_wizard.py::test_env_wizard_handles_nested_dataclass_field_with_multiple_input_types PASSED 163s tests/unit/test_bases_meta.py::test_merge_meta_with_or PASSED 163s tests/unit/test_bases_meta.py::test_merge_meta_with_and PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_runs_as_expected FAILED 163s tests/unit/test_bases_meta.py::test_json_key_to_field_when_add_is_a_falsy_value PASSED 163s tests/unit/test_bases_meta.py::test_meta_config_is_not_implicitly_shared_between_dataclasses PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_is_called_when_meta_is_an_inner_class PASSED 163s tests/unit/test_bases_meta.py::test_env_meta_initializer_not_called_when_meta_is_not_an_inner_class 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard.bases_meta - [WARNING] The 'test_env_meta_initializer_not_called_when_meta_is_not_an_inner_class.._' class is not declared as an Inner Class, so these are global settings that will apply to all EnvWizard sub-classes. 163s PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_not_called_when_meta_is_not_an_inner_class 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard.bases_meta - [WARNING] The 'test_meta_initializer_not_called_when_meta_is_not_an_inner_class.._' class is not declared as an Inner Class, so these are global settings that will apply to all JSONSerializable sub-classes. 163s PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_errors_when_key_transform_with_load_is_invalid PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_errors_when_key_transform_with_dump_is_invalid PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_errors_when_marshal_date_time_as_is_invalid PASSED 163s tests/unit/test_bases_meta.py::test_meta_initializer_is_noop_when_marshal_date_time_as_is_iso_format PASSED 163s tests/unit/test_dump.py::test_asdict_and_fromdict PASSED 163s tests/unit/test_dump.py::test_asdict_with_nested_dataclass PASSED 163s tests/unit/test_dump.py::test_tag_field_is_used_in_dump_process PASSED 163s tests/unit/test_dump.py::test_to_dict_key_transform_with_json_field FAILED 163s tests/unit/test_dump.py::test_to_dict_key_transform_with_json_key PASSED 163s tests/unit/test_dump.py::test_to_dict_with_skip_defaults PASSED 163s tests/unit/test_dump.py::test_to_dict_with_excluded_fields FAILED 163s tests/unit/test_dump.py::test_set[input0-expected0-expectation0] PASSED 163s tests/unit/test_dump.py::test_set[input1-expected1-expectation1] PASSED 163s tests/unit/test_dump.py::test_frozenset[input0-expected0-expectation0] PASSED 163s tests/unit/test_dump.py::test_frozenset[input1-expected1-expectation1] PASSED 163s tests/unit/test_dump.py::test_deque[input0-expected0-expectation0] PASSED 163s tests/unit/test_dump.py::test_deque[input1-expected1-expectation1] PASSED 163s tests/unit/test_dump.py::test_literal[testing-expectation0] XFAIL (s...) 163s tests/unit/test_dump.py::test_literal[e1-expectation1] XPASS (still ...) 163s tests/unit/test_dump.py::test_literal[False-expectation2] XFAIL (sti...) 163s tests/unit/test_dump.py::test_literal[0-expectation3] XPASS (still n...) 163s tests/unit/test_dump.py::test_uuid[input0-expectation0] PASSED 163s tests/unit/test_dump.py::test_uuid[input1-expectation1] PASSED 163s tests/unit/test_dump.py::test_uuid[input2-expectation2] PASSED 163s tests/unit/test_dump.py::test_uuid[input3-expectation3] PASSED 163s tests/unit/test_dump.py::test_timedelta[input0-expectation0] PASSED 163s tests/unit/test_dump.py::test_timedelta[input1-expectation1] PASSED 163s tests/unit/test_dump.py::test_timedelta[input2-expectation2] PASSED 163s tests/unit/test_dump.py::test_typed_dict[input0-expectation0] XFAIL 163s tests/unit/test_dump.py::test_typed_dict[input1-expectation1] XFAIL 163s tests/unit/test_dump.py::test_typed_dict[input2-expectation2] XPASS 163s tests/unit/test_dump.py::test_typed_dict[input3-expectation3] XFAIL 163s tests/unit/test_dump.py::test_typed_dict[input4-expectation4] XFAIL 163s tests/unit/test_dump.py::test_typed_dict[input5-expectation5] XPASS 163s tests/unit/test_dump.py::test_using_dataclass_in_dict PASSED 163s tests/unit/test_dump.py::test_bytes_and_bytes_array_are_supported PASSED 163s tests/unit/test_load.py::test_fromdict PASSED 163s tests/unit/test_load.py::test_fromdict_raises_on_unknown_json_fields 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard. - [WARNING] JSON field 'my_string' missing from dataclass schema, class=.MyClass'>, parsed field='my_string' 163s PASSED 163s tests/unit/test_load.py::test_fromdict_with_nested_dataclass PASSED 163s tests/unit/test_load.py::test_invalid_types_with_debug_mode_enabled PASSED 163s tests/unit/test_load.py::test_from_dict_called_with_incorrect_type PASSED 163s tests/unit/test_load.py::test_date_times_with_custom_pattern PASSED 163s tests/unit/test_load.py::test_date_times_with_custom_pattern_when_input_is_invalid PASSED 163s tests/unit/test_load.py::test_date_times_with_custom_pattern_when_annotation_is_invalid PASSED 163s tests/unit/test_load.py::test_tag_field_is_used_in_load_process PASSED 163s tests/unit/test_load.py::test_e2e_process_with_init_only_fields 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard. - [WARNING] JSON field 'myFloat' missing from dataclass schema, class=.MyClass'>, parsed field='my_float' 163s PASSED 163s tests/unit/test_load.py::test_bool[True-True] PASSED 163s tests/unit/test_load.py::test_bool[TrUe-True] PASSED 163s tests/unit/test_load.py::test_bool[y-True] PASSED 163s tests/unit/test_load.py::test_bool[T-True] PASSED 163s tests/unit/test_load.py::test_bool[1-True] PASSED 163s tests/unit/test_load.py::test_bool[False-False0] PASSED 163s tests/unit/test_load.py::test_bool[False-False1] PASSED 163s tests/unit/test_load.py::test_bool[testing-False] PASSED 163s tests/unit/test_load.py::test_bool[0-False] PASSED 163s tests/unit/test_load.py::test_from_dict_handles_identical_cased_json_keys PASSED 163s tests/unit/test_load.py::test_from_dict_with_missing_fields 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard. - [WARNING] JSON field 'myBool' missing from dataclass schema, class=.MyClass'>, parsed field='my_bool' 163s PASSED 163s tests/unit/test_load.py::test_from_dict_with_missing_fields_with_resolution 163s -------------------------------- live log call --------------------------------- 163s dataclass_wizard. - [WARNING] JSON field 'myBool' missing from dataclass schema, class=.MyClass'>, parsed field='my_bool' 163s PASSED 163s tests/unit/test_load.py::test_from_dict_key_transform_with_json_field FAILED 163s tests/unit/test_load.py::test_from_dict_key_transform_with_json_key PASSED 163s tests/unit/test_load.py::test_set[input0-expected0-expectation0] PASSED 163s tests/unit/test_load.py::test_set[TrUe-True-expectation1] PASSED 163s tests/unit/test_load.py::test_set[input2-expected2-expectation2] PASSED 163s tests/unit/test_load.py::test_frozenset[input0-expected0-expectation0] PASSED 163s tests/unit/test_load.py::test_frozenset[TrUe-True-expectation1] PASSED 163s tests/unit/test_load.py::test_frozenset[input2-expected2-expectation2] PASSED 163s tests/unit/test_load.py::test_literal[testing-expectation0] PASSED 163s tests/unit/test_load.py::test_literal[e1-expectation1] PASSED 163s tests/unit/test_load.py::test_literal[False-expectation2] PASSED 163s tests/unit/test_load.py::test_literal[0-expectation3] PASSED 163s tests/unit/test_load.py::test_annotated[True-True] PASSED 163s tests/unit/test_load.py::test_annotated[None-None] PASSED 163s tests/unit/test_load.py::test_annotated[TrUe-True] PASSED 163s tests/unit/test_load.py::test_annotated[y-True] PASSED 163s tests/unit/test_load.py::test_annotated[T-True] PASSED 163s tests/unit/test_load.py::test_annotated[F-False] PASSED 163s tests/unit/test_load.py::test_annotated[1-True] PASSED 163s tests/unit/test_load.py::test_annotated[False-False] PASSED 163s tests/unit/test_load.py::test_annotated[0-False] PASSED 163s tests/unit/test_load.py::test_uuid[12345678-1234-1234-1234-1234567abcde] PASSED 163s tests/unit/test_load.py::test_uuid[{12345678-1234-5678-1234-567812345678}] PASSED 163s tests/unit/test_load.py::test_uuid[12345678123456781234567812345678] PASSED 163s tests/unit/test_load.py::test_uuid[urn:uuid:12345678-1234-5678-1234-567812345678] PASSED 163s tests/unit/test_load.py::test_optional[testing-expectation0-testing] PASSED 163s tests/unit/test_load.py::test_optional[False-expectation1-False] PASSED 163s tests/unit/test_load.py::test_optional[0-expectation2-0] PASSED 163s tests/unit/test_load.py::test_optional[None-expectation3-None] PASSED 164s tests/unit/test_load.py::test_union[testing-expectation0-testing] PASSED 164s tests/unit/test_load.py::test_union[False-expectation1-False] PASSED 164s tests/unit/test_load.py::test_union[0-expectation2-0] PASSED 164s tests/unit/test_load.py::test_union[None-expectation3-None] PASSED 164s tests/unit/test_load.py::test_union[1.2-expectation4-None] PASSED 164s tests/unit/test_load.py::test_forward_refs_are_resolved PASSED 164s tests/unit/test_load.py::test_datetime[testing-expectation0] PASSED 164s tests/unit/test_load.py::test_datetime[2020-01-02T01:02:03Z-expectation1] PASSED 164s tests/unit/test_load.py::test_datetime[2010-12-31 23:59:59-04:00-expectation2] PASSED 164s tests/unit/test_load.py::test_datetime[123456789-expectation3] PASSED 164s tests/unit/test_load.py::test_datetime[True-expectation4] PASSED 164s tests/unit/test_load.py::test_datetime[input5-expectation5] PASSED 164s tests/unit/test_load.py::test_date[testing-expectation0] PASSED 164s tests/unit/test_load.py::test_date[2020-01-02-expectation1] PASSED 164s tests/unit/test_load.py::test_date[2010-12-31-expectation2] PASSED 164s tests/unit/test_load.py::test_date[123456789-expectation3] PASSED 164s tests/unit/test_load.py::test_date[True-expectation4] PASSED 164s tests/unit/test_load.py::test_date[input5-expectation5] PASSED 164s tests/unit/test_load.py::test_time[testing-expectation0] PASSED 164s tests/unit/test_load.py::test_time[01:02:03Z-expectation1] PASSED 164s tests/unit/test_load.py::test_time[23:59:59-04:00-expectation2] PASSED 164s tests/unit/test_load.py::test_time[123456789-expectation3] PASSED 164s tests/unit/test_load.py::test_time[True-expectation4] PASSED 164s tests/unit/test_load.py::test_time[input5-expectation5] PASSED 164s tests/unit/test_load.py::test_timedelta[testing-expectation0-ValueError] PASSED 164s tests/unit/test_load.py::test_timedelta[23:59:59-04:00-expectation1-ValueError] PASSED 164s tests/unit/test_load.py::test_timedelta[32-expectation2-None] PASSED 164s tests/unit/test_load.py::test_timedelta[32.7-expectation3-None] PASSED 164s tests/unit/test_load.py::test_timedelta[32m-expectation4-None] PASSED 164s tests/unit/test_load.py::test_timedelta[2h32m-expectation5-None] PASSED 164s tests/unit/test_load.py::test_timedelta[4:13-expectation6-None] PASSED 164s tests/unit/test_load.py::test_timedelta[5hr34m56s-expectation7-None] PASSED 164s tests/unit/test_load.py::test_timedelta[1.2 minutes-expectation8-None] PASSED 164s tests/unit/test_load.py::test_timedelta[12345-expectation9-None] PASSED 164s tests/unit/test_load.py::test_timedelta[True-expectation10-TypeError] PASSED 164s tests/unit/test_load.py::test_timedelta[input11-expectation11-None] PASSED 164s tests/unit/test_load.py::test_list[input0-expectation0-expected0] PASSED 164s tests/unit/test_load.py::test_list[input1-expectation1-None] PASSED 164s tests/unit/test_load.py::test_list[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_list[input3-expectation3-None] PASSED 164s tests/unit/test_load.py::test_list[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_list[testing-expectation5-None] PASSED 164s tests/unit/test_load.py::test_deque[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_deque[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_list_without_type_hinting[input0-expectation0-expected0] PASSED 164s tests/unit/test_load.py::test_list_without_type_hinting[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_list_without_type_hinting[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_list_without_type_hinting[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_list_without_type_hinting[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_list_without_type_hinting[testing-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_tuple[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_tuple[input1-expectation1-None] PASSED 164s tests/unit/test_load.py::test_tuple[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_tuple[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_tuple[testing-expectation4-None] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[input1-expectation1-None] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_tuple_with_optional_args[testing-expectation6-None] PASSED 164s tests/unit/test_load.py::test_tuple_without_type_hinting[input0-expectation0-expected0] PASSED 164s tests/unit/test_load.py::test_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_tuple_without_type_hinting[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_tuple_without_type_hinting[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_tuple_without_type_hinting[testing-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input0-expectation0-expected0] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input3-expectation3-None] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[input6-expectation6-expected6] PASSED 164s tests/unit/test_load.py::test_tuple_with_variadic_args[testing-expectation7-None] PASSED 164s tests/unit/test_load.py::test_dict[None-expectation0-None] PASSED 164s tests/unit/test_load.py::test_dict[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_dict[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_dict[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_dict[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_dict[input5-expectation5-None] PASSED 164s tests/unit/test_load.py::test_default_dict[None-expectation0-None] PASSED 164s tests/unit/test_load.py::test_default_dict[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_default_dict[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_default_dict[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_default_dict[input4-expectation4-None] PASSED 164s tests/unit/test_load.py::test_default_dict[input5-expectation5-None] PASSED 164s tests/unit/test_load.py::test_dict_without_type_hinting[None-expectation0-None] PASSED 164s tests/unit/test_load.py::test_dict_without_type_hinting[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_dict_without_type_hinting[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_dict_without_type_hinting[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_dict_without_type_hinting[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_dict_without_type_hinting[input5-expectation5-None] PASSED 164s tests/unit/test_load.py::test_typed_dict[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_typed_dict[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_typed_dict[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_typed_dict[input3-expectation3-None] PASSED 164s tests/unit/test_load.py::test_typed_dict[input4-expectation4-None] PASSED 164s tests/unit/test_load.py::test_typed_dict[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_typed_dict[input6-expectation6-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input0-expectation0-expected0] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input2-expectation2-expected2] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input3-expectation3-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input4-expectation4-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input6-expectation6-expected6] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input7-expectation7-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input5-expectation5-None] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input6-expectation6-expected6] PASSED 164s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input7-expectation7-expected7] PASSED 164s tests/unit/test_load.py::test_named_tuple[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_named_tuple[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_named_tuple[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_named_tuple[input3-expectation3-None] PASSED 164s tests/unit/test_load.py::test_named_tuple[input4-expectation4-None] PASSED 164s tests/unit/test_load.py::test_named_tuple[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_named_tuple[input6-expectation6-expected6] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input0-expectation0-None] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input2-expectation2-None] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input3-expectation3-expected3] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input4-expectation4-expected4] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input5-expectation5-expected5] PASSED 164s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input6-expectation6-expected6] PASSED 164s tests/unit/test_load.py::test_optional_parser_contains[None-True] PASSED 164s tests/unit/test_load.py::test_optional_parser_contains[NoneType-False] PASSED 164s tests/unit/test_load.py::test_optional_parser_contains[hello world-True] PASSED 164s tests/unit/test_load.py::test_optional_parser_contains[123-False] PASSED 164s tests/unit/test_load.py::test_single_arg_parser_without_hook PASSED 164s tests/unit/test_load.py::test_parser_with_unsupported_type 164s -------------------------------- live log call --------------------------------- 164s dataclass_wizard.loaders - [WARNING] Using default loader, type=None 164s PASSED 164s tests/unit/test_load.py::test_load_with_inner_model_when_data_is_null PASSED 164s tests/unit/test_load.py::test_load_with_inner_model_when_data_is_wrong_type PASSED 164s tests/unit/test_load.py::test_load_with_python_3_11_regression PASSED 164s tests/unit/test_load.py::test_with_self_referential_dataclasses_1 PASSED 164s tests/unit/test_load.py::test_with_self_referential_dataclasses_2 PASSED 164s tests/unit/test_load.py::test_from_dict_with_nested_object_key_path FAILED 164s tests/unit/test_load.py::test_from_dict_with_nested_object_key_path_with_skip_defaults FAILED 164s tests/unit/test_load.py::test_auto_assign_tags_and_raise_on_unknown_json_key PASSED 164s tests/unit/test_load.py::test_auto_assign_tags_and_catch_all 164s -------------------------------- live log call --------------------------------- 164s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 164s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 164s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 164s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 164s PASSED 164s tests/unit/test_load.py::test_skip_if PASSED 164s tests/unit/test_load.py::test_skip_defaults_if PASSED 164s tests/unit/test_load.py::test_per_field_skip_if FAILED 164s tests/unit/test_load.py::test_is_truthy_and_is_falsy_conditions FAILED 164s tests/unit/test_load.py::test_skip_if_truthy_or_falsy FAILED 164s tests/unit/test_load.py::test_invalid_condition_annotation_raises_error PASSED 164s tests/unit/test_load.py::test_dataclass_in_union_when_tag_key_is_field PASSED 164s tests/unit/test_load.py::test_sequence_and_mutable_sequence_are_supported PASSED 164s tests/unit/test_load.py::test_dataclass_decorator_is_automatically_applied SKIPPED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input0-expectation0] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input1-expectation1] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input2-expectation2] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input3-expectation3] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input4-expectation4] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input5-expectation5] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input6-expectation6] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input0-expectation0] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input1-expectation1] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input2-expectation2] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input3-expectation3] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input4-expectation4] PASSED 164s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input5-expectation5] SKIPPED 164s tests/unit/test_load_with_future_import.py::test_dataclasses_in_union_types PASSED 164s tests/unit/test_load_with_future_import.py::test_dataclasses_in_union_types_with_auto_assign_tags 164s -------------------------------- live log call --------------------------------- 164s dataclass_wizard. - [WARNING] JSON field 'type' missing from dataclass schema, class=.D'>, parsed field='type' 164s dataclass_wizard. - [WARNING] JSON field 'type' missing from dataclass schema, class=.C'>, parsed field='type' 164s dataclass_wizard. - [WARNING] JSON field 'type' missing from dataclass schema, class=.A'>, parsed field='type' 164s PASSED 164s tests/unit/test_models.py::test_json_field_does_not_allow_both_default_and_default_factory PASSED 164s tests/unit/test_models.py::test_container_with_incorrect_usage PASSED 164s tests/unit/test_models.py::test_container_methods PASSED 164s tests/unit/test_parsers.py::TestLiteralParser::test_literal_parser_dunder_contains_succeeds_if_item_in_keys_of_base_type PASSED 164s tests/unit/test_parsers.py::TestLiteralParser::test_literal_parser_dunder_contains_fails_if_item_not_in_keys_of_base_type PASSED 164s tests/unit/test_property_wizard.py::test_property_wizard_does_not_affect_normal_properties PASSED 164s tests/unit/test_property_wizard.py::test_property_wizard_does_not_affect_read_only_properties PASSED 164s tests/unit/test_property_wizard.py::test_property_wizard_does_not_error_when_forward_refs_are_declared FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_field FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_field_with_or FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_field FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_annotated_field FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_private_property_and_annotated_field_with_no_useful_extras FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_multiple_inheritance FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_without_default_value FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_with_default_factory FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_without_default_or_default_factory FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_without_default_value FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_public_field_is_property FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_with_default FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_with_default_factory FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_without_default_or_default_factory FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_where_annotated_type_contains_none FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_literal_type FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_concrete_type FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_concrete_type_and_default_factory_raises_type_error FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_generic_type_which_is_not_supported FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_v1 FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_v2 FAILED 164s tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_with_parameterized_standard_collections FAILED 164s tests/unit/test_property_wizard_with_future_import.py::test_property_wizard_with_public_property_and_field_with_or PASSED 164s tests/unit/test_property_wizard_with_future_import.py::test_property_wizard_with_unresolvable_forward_ref PASSED 164s tests/unit/test_wizard_cli.py::test_call_py_code_generator_with_file_name FAILED 164s tests/unit/test_wizard_cli.py::test_call_py_code_generator_with_experimental_features FAILED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_without_subcommand usage: python3.14 -m pytest [-h] [-V] {gen-schema,gs} ... 164s 164s A companion CLI tool for the Dataclass Wizard, which simplifies interaction 164s with the Python `dataclasses` module. 164s 164s positional arguments: 164s {gen-schema,gs} Supported sub-commands 164s gen-schema (gs) Generates a Python dataclass schema, given a JSON input. 164s 164s options: 164s -h, --help show this help message and exit 164s -V, --version Display the version of this tool. 164s PASSED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_invalid_json_input PASSED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_invalid_json_type PASSED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_when_double_quotes_are_used_to_wrap_input PASSED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_mock_stdout PASSED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_output_filename_without_ext Successfully generated the Python code for the JSON schema. 164s __________________________________________________ 164s 164s Wrote out the Python Code to: /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/testing 164s Saved the JSON Input to: /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/testing.json 164s PASSED 164s tests/unit/test_wizard_cli.py::test_call_wiz_cli_when_open_raises_error PASSED 164s tests/unit/test_wizard_cli.py::test_star_wars usage: python3.14 -m pytest gen-schema [-h] [-n] [-f] [-x] 164s [in-file] [out-file] 164s python3.14 -m pytest gen-schema: error: argument out-file: can't open 'testing.py': 164s FAILED 164s tests/unit/test_wizard_cli.py::test_input_1 FAILED 164s tests/unit/test_wizard_cli.py::test_input_2 FAILED 164s tests/unit/test_wizard_cli.py::test_input_3 FAILED 164s tests/unit/test_wizard_cli.py::test_input_4 FAILED 164s tests/unit/test_wizard_cli.py::test_input_5 FAILED 164s tests/unit/test_wizard_cli.py::test_input_6 FAILED 164s tests/unit/test_wizard_cli.py::test_input_7 FAILED 164s tests/unit/test_wizard_cli.py::test_input_8 FAILED 164s tests/unit/test_wizard_mixins.py::test_json_list_wizard_methods PASSED 164s tests/unit/test_wizard_mixins.py::test_json_file_wizard_methods PASSED 164s tests/unit/test_wizard_mixins.py::test_yaml_wizard_methods PASSED 164s tests/unit/test_wizard_mixins.py::test_yaml_wizard_list_to_json PASSED 164s tests/unit/test_wizard_mixins.py::test_yaml_wizard_for_branch_coverage PASSED 164s tests/unit/test_wizard_mixins.py::test_toml_wizard_list_to_toml PASSED 164s tests/unit/test_wizard_mixins.py::test_toml_wizard_for_branch_coverage PASSED 164s tests/unit/utils/test_lazy_loader.py::test_lazy_loader_when_module_not_found PASSED 164s tests/unit/utils/test_lazy_loader.py::test_lazy_loader_with_warning PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[device_type-deviceType0] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[io_error-ioError] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[isACamelCasedWORD-isACamelCasedWORD] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[ATitledWordToTESTWith-aTitledWordToTESTWith] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[not-a-tester-notATester] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[device_type-deviceType1] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[helloworld-helloworld] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[A-a] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[TESTing_if_thisWorks-tESTingIfThisWorks] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[a_B_Cde_fG_hi-aBCdeFGHi] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[ALL_CAPS-aLLCAPS] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[WoRd-woRd] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[HIThereHOWIsItGoinG-hIThereHOWIsItGoinG] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[How_-Are-_YoUDoing__TeST-howAreYoUDoingTeST] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[thisIsWithANumber42ToTEST-thisIsWithANumber42ToTEST] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_camel_case[Number 42 With spaces-number42WithSpaces] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[device_type-DeviceType0] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[io_error-IoError] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[isACamelCasedWORD-IsACamelCasedWORD] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[ATitledWordToTESTWith-ATitledWordToTESTWith] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[not-a-tester-NotATester] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[device_type-DeviceType1] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[helloworld-Helloworld] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[A-A] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[TESTing_if_thisWorks-TESTingIfThisWorks] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[a_B_Cde_fG_hi-ABCdeFGHi] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[ALL_CAPS-ALLCAPS] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[WoRd-WoRd] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[HIThereHOWIsItGoinG-HIThereHOWIsItGoinG] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[How_-Are-_YoUDoing__TeST-HowAreYoUDoingTeST] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[thisIsWithANumber42ToTEST-ThisIsWithANumber42ToTEST] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_pascal_case[Number 42 With spaces-Number42WithSpaces] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[device_type-device-type] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[IO_Error-io-error] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[isACamelCasedWORD-is-a-camel-cased-word] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[ATitledWordToTESTWith-a-titled-word-to-test-with] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[not-a-tester-not-a-tester] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[helloworld-helloworld] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[A-a] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[TESTing_if_thisWorks-tes-ting-if-this-works] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[a_B_Cde_fG_hi-a-b-cde-f-g-hi] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[ALL_CAPS-all-caps] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[WoRd-wo-rd] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[HIThereHOWIsItGoinG-hi-there-how-is-it-goin-g] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[How_-Are-_YoUDoing__TeST-how-are-yo-u-doing-te-st] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[thisIsWithANumber42ToTEST-this-is-with-a-number42-to-test] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_lisp_case[Number 42 With spaces-number-42-with-spaces] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[device_type-device_type] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[IO_Error-io_error] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[isACamelCasedWORD-is_a_camel_cased_word] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[ATitledWordToTESTWith-a_titled_word_to_test_with] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[not-a-tester-not_a_tester] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[helloworld-helloworld] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[A-a] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[TESTing_if_thisWorks-tes_ting_if_this_works] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[a_B_Cde_fG_hi-a_b_cde_f_g_hi] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[ALL_CAPS-all_caps] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[WoRd-wo_rd] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[HIThereHOWIsItGoinG-hi_there_how_is_it_goin_g] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[How_-Are-_YoUDoing__TeST-how_are_yo_u_doing_te_st] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[thisIsWithANumber42ToTEST-this_is_with_a_number42_to_test] PASSED 164s tests/unit/utils/test_string_conv.py::test_to_snake_case[Number 42 With spaces-number_42_with_spaces] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[Literal-Literal] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[int-int] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[ClassVar-ClassVar] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[Generic-Generic0] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[Generic-Generic1] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[Union-Union] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_origin[List-list] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_args[Dict-expected0] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_args[int-expected1] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_args[Callable-expected2] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_args[Union-expected3] PASSED 164s tests/unit/utils/test_typing_compat.py::test_get_args[Union-expected4] PASSED 164s tests/unit/v1/test_loaders.py::test_missing_fields_is_raised PASSED 164s tests/unit/v1/test_loaders.py::test_auto_key_casing PASSED 164s tests/unit/v1/test_loaders.py::test_auto_key_casing_with_optional_fields PASSED 164s tests/unit/v1/test_loaders.py::test_alias_mapping FAILED 164s tests/unit/v1/test_loaders.py::test_alias_mapping_with_load_or_dump FAILED 165s tests/unit/v1/test_loaders.py::test_alias_with_multiple_mappings FAILED 165s tests/unit/v1/test_loaders.py::test_fromdict PASSED 165s tests/unit/v1/test_loaders.py::test_fromdict_raises_on_unknown_json_fields PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_raises_on_unknown_keys_nested FAILED 165s tests/unit/v1/test_loaders.py::test_from_dict_raises_on_unknown_keys_with_key_case_auto FAILED 165s tests/unit/v1/test_loaders.py::test_fromdict_with_key_case_auto PASSED 165s tests/unit/v1/test_loaders.py::test_fromdict_with_nested_dataclass PASSED 165s tests/unit/v1/test_loaders.py::test_invalid_types_with_debug_mode_enabled PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_called_with_incorrect_type PASSED 165s tests/unit/v1/test_loaders.py::test_date_times_with_custom_pattern PASSED 165s tests/unit/v1/test_loaders.py::test_date_times_with_subclass_of_time_and_plus_or_minus_in_pattern PASSED 165s tests/unit/v1/test_loaders.py::test_date_times_with_custom_pattern_when_input_is_invalid PASSED 165s tests/unit/v1/test_loaders.py::test_date_times_with_custom_pattern_when_annotation_is_invalid PASSED 165s tests/unit/v1/test_loaders.py::test_aware_and_utc_date_times_with_custom_pattern FAILED 165s tests/unit/v1/test_loaders.py::test_tag_field_is_used_in_load_process PASSED 165s tests/unit/v1/test_loaders.py::test_e2e_process_with_init_only_fields PASSED 165s tests/unit/v1/test_loaders.py::test_bool[True-True] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[TrUe-True] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[y-True] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[T-True] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[1-True] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[False-False0] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[False-False1] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[testing-False] PASSED 165s tests/unit/v1/test_loaders.py::test_bool[0-False] PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_handles_identical_cased_keys PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_with_missing_fields PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_with_missing_fields_with_resolution PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_key_transform_with_multiple_alias FAILED 165s tests/unit/v1/test_loaders.py::test_from_dict_key_transform_with_alias FAILED 165s tests/unit/v1/test_loaders.py::test_set[input0-expected0-expectation0] PASSED 165s tests/unit/v1/test_loaders.py::test_set[TrUe-True-expectation1] PASSED 165s tests/unit/v1/test_loaders.py::test_set[input2-expected2-expectation2] PASSED 165s tests/unit/v1/test_loaders.py::test_set[input3-expected3-expectation3] PASSED 165s tests/unit/v1/test_loaders.py::test_frozenset[input0-expected0-expectation0] PASSED 165s tests/unit/v1/test_loaders.py::test_frozenset[TrUe-True-expectation1] PASSED 165s tests/unit/v1/test_loaders.py::test_frozenset[input2-expected2-expectation2] PASSED 165s tests/unit/v1/test_loaders.py::test_frozenset[input3-expected3-expectation3] PASSED 165s tests/unit/v1/test_loaders.py::test_literal[testing-expectation0] PASSED 165s tests/unit/v1/test_loaders.py::test_literal[e1-expectation1] PASSED 165s tests/unit/v1/test_loaders.py::test_literal[0-expectation2] PASSED 165s tests/unit/v1/test_loaders.py::test_literal_recursive PASSED 165s tests/unit/v1/test_loaders.py::test_union_recursive PASSED 165s tests/unit/v1/test_loaders.py::test_multiple_union PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[True-True] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[None-None] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[TrUe-True] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[y-True] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[T-True] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[F-False] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[On-True] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[OFF-False] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[1-True] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[False-False] PASSED 165s tests/unit/v1/test_loaders.py::test_annotated[0-False] PASSED 165s tests/unit/v1/test_loaders.py::test_uuid[12345678-1234-1234-1234-1234567abcde] PASSED 165s tests/unit/v1/test_loaders.py::test_uuid[{12345678-1234-5678-1234-567812345678}] PASSED 165s tests/unit/v1/test_loaders.py::test_uuid[12345678123456781234567812345678] PASSED 165s tests/unit/v1/test_loaders.py::test_uuid[urn:uuid:12345678-1234-5678-1234-567812345678] PASSED 165s tests/unit/v1/test_loaders.py::test_optional[testing-expectation0-testing] PASSED 165s tests/unit/v1/test_loaders.py::test_optional[False-expectation1-False] PASSED 165s tests/unit/v1/test_loaders.py::test_optional[0-expectation2-0] PASSED 165s tests/unit/v1/test_loaders.py::test_optional[None-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_union[testing-expectation0-testing] PASSED 165s tests/unit/v1/test_loaders.py::test_union[False-expectation1-False] PASSED 165s tests/unit/v1/test_loaders.py::test_union[0-expectation2-0] PASSED 165s tests/unit/v1/test_loaders.py::test_union[None-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_union[1.2-expectation4-1.2] PASSED 165s tests/unit/v1/test_loaders.py::test_forward_refs_are_resolved PASSED 165s tests/unit/v1/test_loaders.py::test_datetime[testing-expectation0] PASSED 165s tests/unit/v1/test_loaders.py::test_datetime[2020-01-02T01:02:03Z-expectation1] PASSED 165s tests/unit/v1/test_loaders.py::test_datetime[2010-12-31 23:59:59-04:00-expectation2] PASSED 165s tests/unit/v1/test_loaders.py::test_datetime[123456789-expectation3] PASSED 165s tests/unit/v1/test_loaders.py::test_datetime[True-expectation4] PASSED 165s tests/unit/v1/test_loaders.py::test_datetime[input5-expectation5] PASSED 165s tests/unit/v1/test_loaders.py::test_date[testing-expectation0] PASSED 165s tests/unit/v1/test_loaders.py::test_date[2020-01-02-expectation1] PASSED 165s tests/unit/v1/test_loaders.py::test_date[2010-12-31-expectation2] PASSED 165s tests/unit/v1/test_loaders.py::test_date[123456789-expectation3] PASSED 165s tests/unit/v1/test_loaders.py::test_date[True-expectation4] PASSED 165s tests/unit/v1/test_loaders.py::test_date[input5-expectation5] PASSED 165s tests/unit/v1/test_loaders.py::test_time[testing-expectation0] PASSED 165s tests/unit/v1/test_loaders.py::test_time[01:02:03Z-expectation1] PASSED 165s tests/unit/v1/test_loaders.py::test_time[23:59:59-04:00-expectation2] PASSED 165s tests/unit/v1/test_loaders.py::test_time[123456789-expectation3] PASSED 165s tests/unit/v1/test_loaders.py::test_time[True-expectation4] PASSED 165s tests/unit/v1/test_loaders.py::test_time[input5-expectation5] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[testing-expectation0-ValueError] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[23:59:59-04:00-expectation1-ValueError] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[32-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[32.7-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[32m-expectation4-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[2h32m-expectation5-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[4:13-expectation6-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[5hr34m56s-expectation7-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[1.2 minutes-expectation8-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[12345-expectation9-None] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[True-expectation10-TypeError] PASSED 165s tests/unit/v1/test_loaders.py::test_timedelta[input11-expectation11-None] PASSED 165s tests/unit/v1/test_loaders.py::test_list[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_list[input1-expectation1-None] PASSED 165s tests/unit/v1/test_loaders.py::test_list[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_list[input3-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_list[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_list[testing-expectation5-None] PASSED 165s tests/unit/v1/test_loaders.py::test_deque[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_deque[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input0-expectation0-expected0] PASSED 165s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[testing-expectation5-expected5] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple[input1-expectation1-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple[testing-expectation4-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input1-expectation1-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input3-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input5-expectation5-expected5] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[testing-expectation6-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input0-expectation0-expected0] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[testing-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input3-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input5-expectation5-expected5] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input6-expectation6-None] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input7-expectation7-expected7] PASSED 165s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[testing-expectation8-None] PASSED 165s tests/unit/v1/test_loaders.py::test_dict[None-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_dict[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_dict[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_dict[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_dict[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_dict[input5-expectation5-None] PASSED 165s tests/unit/v1/test_loaders.py::test_default_dict[None-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_default_dict[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_default_dict[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_default_dict[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_default_dict[input4-expectation4-None] PASSED 165s tests/unit/v1/test_loaders.py::test_default_dict[input5-expectation5-None] PASSED 165s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[None-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input5-expectation5-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input3-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input4-expectation4-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input5-expectation5-expected5] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict[input6-expectation6-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input0-expectation0-expected0] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input5-expectation5-expected5] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input3-expectation3-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input4-expectation4-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input5-expectation5-expected5] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input6-expectation6-expected6] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input7-expectation7-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input2-expectation2-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input3-expectation3-expected3] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input4-expectation4-expected4] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input5-expectation5-None] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input6-expectation6-expected6] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input7-expectation7-expected7] PASSED 165s tests/unit/v1/test_loaders.py::test_typed_dict_recursive test_typed_dict_recursive..MyContainer(test1={'key_one': 'S1', 'key_two': {'key_one': 'S2', 'key_two': None}, 'key_three': {123: [{'key_one': 'S3', 'key_two': {'key_one': 'S4', 'key_two': None}, 'key_three': {}}]}, 'key_four': [{'key_one': 'test', 'key_two': {'key_one': 'S5', 'key_two': {'key_one': 'S6', 'key_two': None}}}]}) 165s PASSED 165s tests/unit/v1/test_loaders.py::test_named_tuple[input0-expectation0-None] PASSED 165s tests/unit/v1/test_loaders.py::test_named_tuple[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input0-expectation0-None] SKIPPED 165s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input1-expectation1-expected1] SKIPPED 165s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input2-expectation2-None] SKIPPED 165s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input3-expectation3-None] SKIPPED 165s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input4-expectation4-expected4] SKIPPED 165s tests/unit/v1/test_loaders.py::test_named_tuple_recursive test_named_tuple_recursive..MyContainer(test1=NT(field_one='S1', field_two=NT(field_one='S2', field_two=None, field_three={}, field_four=[]), field_three={123: [NT(field_one='S3', field_two=NT(field_one='S4', field_two=None, field_three={}, field_four=[]), field_three={}, field_four=[])]}, field_four=[NT(field_one='test', field_two=NT(field_one='S5', field_two=NT(field_one='S6', field_two=None, field_three={}, field_four=[]), field_three={}, field_four=[]), field_three={}, field_four=[])])) 165s PASSED 165s tests/unit/v1/test_loaders.py::test_named_tuple_without_type_hinting[input0-expectation0-expected0] PASSED 165s tests/unit/v1/test_loaders.py::test_named_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 165s tests/unit/v1/test_loaders.py::test_named_tuple_without_type_hinting[input2-expectation2-expected2] PASSED 165s tests/unit/v1/test_loaders.py::test_load_with_inner_model_when_data_is_null PASSED 165s tests/unit/v1/test_loaders.py::test_load_with_inner_model_when_data_is_wrong_type PASSED 165s tests/unit/v1/test_loaders.py::test_load_with_python_3_11_regression PASSED 165s tests/unit/v1/test_loaders.py::test_with_self_referential_dataclasses_1 PASSED 165s tests/unit/v1/test_loaders.py::test_with_self_referential_dataclasses_2 PASSED 165s tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path FAILED 165s tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path_with_skip_defaults FAILED 165s tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path_with_dump_alias_and_skip FAILED 165s tests/unit/v1/test_loaders.py::test_from_dict_with_multiple_nested_object_alias_paths FAILED 165s tests/unit/v1/test_loaders.py::test_auto_assign_tags_and_raise_on_unknown_keys PASSED 165s tests/unit/v1/test_loaders.py::test_auto_assign_tags_and_catch_all PASSED 165s tests/unit/v1/test_loaders.py::test_skip_if PASSED 165s tests/unit/v1/test_loaders.py::test_skip_defaults_if PASSED 165s tests/unit/v1/test_loaders.py::test_per_field_skip_if FAILED 165s tests/unit/v1/test_loaders.py::test_is_truthy_and_is_falsy_conditions FAILED 166s tests/unit/v1/test_loaders.py::test_skip_if_truthy_or_falsy FAILED 166s tests/unit/v1/test_loaders.py::test_invalid_condition_annotation_raises_error PASSED 166s tests/unit/v1/test_loaders.py::test_dataclass_in_union_when_tag_key_is_field PASSED 166s tests/unit/v1/test_loaders.py::test_sequence_and_mutable_sequence_are_supported PASSED 166s tests/unit/v1/test_loaders.py::test_dataclass_decorator_is_automatically_applied SKIPPED 166s tests/unit/v1/test_loaders.py::test_bytes_and_bytes_array_are_supported PASSED 166s tests/unit/v1/test_loaders.py::test_literal_string PASSED 166s tests/unit/v1/test_loaders.py::test_decimal PASSED 166s tests/unit/v1/test_loaders.py::test_path 166s -------------------------------- live log call --------------------------------- 166s dataclass_wizard.dumpers - [WARNING] Using default dumper, object=PosixPath('a/b/c'), type= 166s PASSED 166s tests/unit/v1/test_loaders.py::test_none PASSED 166s tests/unit/v1/test_loaders.py::test_enum PASSED 166s tests/unit/v1/test_loaders.py::test_str_and_int_enum PASSED 166s tests/unit/v1/test_union_as_type_alias_recursive.py::test_union_as_type_alias_recursive PASSED 166s 166s =================================== FAILURES =================================== 166s _______________ test_dump_with_excluded_fields_and_skip_defaults _______________ 166s 166s def test_dump_with_excluded_fields_and_skip_defaults(): 166s 166s os.environ['MY_FIRST_STR'] = 'hello' 166s os.environ['my-second-str'] = 'world' 166s 166s > class TestClass(EnvWizard, reload_env=True): 166s 166s tests/unit/environ/test_dumpers.py:11: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/environ/test_dumpers.py:13: in TestClass 166s my_second_str: str = json_field(..., dump=False) 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9dd0a560> 166s keys = Ellipsis, all = False, dump = False 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s _______________________ test_load_and_dump_with_aliases ________________________ 166s 166s def test_load_and_dump_with_aliases(): 166s """ 166s Example with fields that are aliased to differently-named env variables 166s in the Environment. 166s """ 166s 166s os.environ.update({ 166s 'hello_world': 'Test', 166s 'MY_TEST_VALUE123': '11', 166s 'the_number': '42', 166s 'my_list': '3, 2, 1,0', 166s 'My_Other_List': 'rob@test.org, this@email.com , hello-world_123@tst.org,z@ab.c' 166s }) 166s 166s > class MyClass(EnvWizard, reload_env=True): 166s 166s tests/unit/environ/test_wizard.py:143: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/environ/test_wizard.py:150: in MyClass 166s my_str: str = env_field(('the_string', 'hello_world')) 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9dd089d0> 166s keys = ('the_string', 'hello_world'), all = False, dump = True 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s _____________ test_load_with_parse_error_when_env_var_is_specified _____________ 166s 166s def test_load_with_parse_error_when_env_var_is_specified(): 166s """ 166s Raising `ParseError` when a dataclass field to env var mapping is 166s specified. Added for code coverage. 166s """ 166s 166s os.environ.update(MY_STR='abc') 166s 166s > class MyClass(EnvWizard, reload_env=True): 166s 166s tests/unit/environ/test_wizard.py:248: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/environ/test_wizard.py:252: in MyClass 166s a_string: int = env_field('MY_STR') 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9d7a4dc0> 166s keys = 'MY_STR', all = False, dump = True 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s ______ test_init_method_declaration_is_logged_when_debug_mode_is_enabled _______ 166s 166s mock_debug_log = <_pytest.logging.LogCaptureFixture object at 0x3ff9d030050> 166s 166s def test_init_method_declaration_is_logged_when_debug_mode_is_enabled(mock_debug_log): 166s 166s > class _EnvSettings(EnvWizard): 166s 166s tests/unit/environ/test_wizard.py:431: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/environ/test_wizard.py:437: in _EnvSettings 166s auth_key: str = env_field('my_auth_key') 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9d010040> 166s keys = 'my_auth_key', all = False, dump = True 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s ____________________ test_meta_initializer_runs_as_expected ____________________ 166s 166s mock_log = <_pytest.logging.LogCaptureFixture object at 0x3ff9df17390> 166s 166s def test_meta_initializer_runs_as_expected(mock_log): 166s """ 166s Optional flags passed in when subclassing :class:`JSONWizard.Meta` 166s are correctly applied as expected. 166s """ 166s 166s @dataclass 166s class MyClass(JSONWizard): 166s 166s class Meta(JSONWizard.Meta): 166s debug_enabled = True 166s json_key_to_field = { 166s '__all__': True, 166s 'my_json_str': 'myCustomStr', 166s 'anotherJSONField': 'myCustomStr' 166s } 166s marshal_date_time_as = DateTimeTo.TIMESTAMP 166s key_transform_with_load = 'Camel' 166s key_transform_with_dump = LetterCase.SNAKE 166s 166s myStr: Optional[str] 166s myCustomStr: str 166s myDate: date 166s listOfInt: List[int] = field(default_factory=list) 166s isActive: bool = False 166s myDt: Optional[datetime] = None 166s 166s > assert 'DEBUG Mode is enabled' in mock_log.text 166s E AssertionError: assert 'DEBUG Mode is enabled' in '' 166s E + where '' = <_pytest.logging.LogCaptureFixture object at 0x3ff9df17390>.text 166s 166s tests/unit/test_bases_meta.py:154: AssertionError 166s __________________ test_to_dict_key_transform_with_json_field __________________ 166s 166s def test_to_dict_key_transform_with_json_field(): 166s """ 166s Specifying a custom mapping of JSON key to dataclass field, via the 166s `json_field` helper function. 166s """ 166s 166s @dataclass 166s > class MyClass(JSONSerializable): 166s 166s tests/unit/test_dump.py:173: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_dump.py:174: in MyClass 166s my_str: str = json_field('myCustomStr', all=True) 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9d0a67a0> 166s keys = 'myCustomStr', all = True, dump = True 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s ______________________ test_to_dict_with_excluded_fields _______________________ 166s 166s def test_to_dict_with_excluded_fields(): 166s """ 166s Excluding dataclass fields from the serialization process works 166s as expected. 166s """ 166s 166s @dataclass 166s > class MyClass(JSONWizard): 166s 166s tests/unit/test_dump.py:246: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_dump.py:250: in MyClass 166s my_bool: bool = json_field('TestBool', dump=False) 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9d0a6950> 166s keys = 'TestBool', all = False, dump = False 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s _________________ test_from_dict_key_transform_with_json_field _________________ 166s 166s def test_from_dict_key_transform_with_json_field(): 166s """ 166s Specifying a custom mapping of JSON key to dataclass field, via the 166s `json_field` helper function. 166s """ 166s 166s @dataclass 166s > class MyClass(JSONSerializable): 166s 166s tests/unit/test_load.py:540: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_load.py:541: in MyClass 166s my_str: str = json_field('myCustomStr') 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:65: in json_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9d1492d0> 166s keys = 'myCustomStr', all = False, dump = True 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = False 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s __________________ test_from_dict_with_nested_object_key_path __________________ 166s 166s def test_from_dict_with_nested_object_key_path(): 166s """ 166s Specifying a custom mapping of "nested" JSON key to dataclass field, 166s via the `KeyPath` and `path_field` helper functions. 166s """ 166s 166s @dataclass 166s > class A(JSONWizard): 166s 166s tests/unit/test_load.py:2037: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_load.py:2040: in A 166s my_str: str = path_field(['a', 'b', 'c', -1], default='xyz') 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:311: in path_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9dd797e0> 166s keys = ['a', 'b', 'c', -1], all = True, dump = True, default = 'xyz' 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = True 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s ________ test_from_dict_with_nested_object_key_path_with_skip_defaults _________ 166s 166s def test_from_dict_with_nested_object_key_path_with_skip_defaults(): 166s """ 166s Specifying a custom mapping of "nested" JSON key to dataclass field, 166s via the `KeyPath` and `path_field` helper functions. 166s 166s Test with `skip_defaults=True` and `dump=False`. 166s """ 166s 166s @dataclass 166s > class A(JSONWizard): 166s 166s tests/unit/test_load.py:2126: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_load.py:2133: in A 166s other_bool: bool = path_field('x.y."z z"', default=True) 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:311: in path_field 166s return JSONField(keys, all, dump, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.models.JSONField' object has no attribute 'name'") raised in repr()] JSONField object at 0x3ff9dd79f30> 166s keys = 'x.y."z z"', all = True, dump = True, default = True 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s path = True 166s 166s def __init__(self, keys, all: bool, dump: bool, 166s default, default_factory, init, repr, hash, compare, 166s metadata, path: bool = False): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, False) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:103: TypeError 166s ____________________________ test_per_field_skip_if ____________________________ 166s 166s def test_per_field_skip_if(): 166s """ 166s Test per-field `skip_if` functionality, with the ``SkipIf`` 166s condition in type annotation, and also specified in 166s ``skip_if_field()`` which wraps ``dataclasses.Field``. 166s """ 166s @dataclass 166s > class Example(JSONWizard): 166s 166s tests/unit/test_load.py:2358: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_load.py:2364: in Example 166s third_str: 'str | None' = skip_if_field(EQ(''), default=None) 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s condition = 166s 166s def skip_if_field(condition, *, default=MISSING, default_factory=MISSING, init=True, repr=True, 166s hash=None, compare=True, metadata=None, kw_only=MISSING): 166s 166s if default is not MISSING and default_factory is not MISSING: 166s raise ValueError('cannot specify both default and default_factory') 166s 166s if metadata is None: 166s metadata = {} 166s 166s metadata['__skip_if__'] = condition 166s 166s > return Field(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:331: TypeError 166s ____________________ test_is_truthy_and_is_falsy_conditions ____________________ 166s 166s def test_is_truthy_and_is_falsy_conditions(): 166s """ 166s Test both IS_TRUTHY and IS_FALSY conditions within a single test case. 166s """ 166s 166s # Define the Example class within the test case and apply the conditions 166s @dataclass 166s > class Example(JSONPyWizard): 166s 166s tests/unit/test_load.py:2393: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_load.py:2395: in Example 166s my_bool: bool = skip_if_field(IS_FALSY()) # Skip if falsy 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s condition = 166s 166s def skip_if_field(condition, *, default=MISSING, default_factory=MISSING, init=True, repr=True, 166s hash=None, compare=True, metadata=None, kw_only=MISSING): 166s 166s if default is not MISSING and default_factory is not MISSING: 166s raise ValueError('cannot specify both default and default_factory') 166s 166s if metadata is None: 166s metadata = {} 166s 166s metadata['__skip_if__'] = condition 166s 166s > return Field(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:331: TypeError 166s _________________________ test_skip_if_truthy_or_falsy _________________________ 166s 166s def test_skip_if_truthy_or_falsy(): 166s """ 166s Test skip if condition is truthy or falsy for individual fields. 166s """ 166s 166s # Use of SkipIf with IS_TRUTHY 166s @dataclass 166s > class SkipExample(JSONWizard): 166s 166s tests/unit/test_load.py:2420: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/test_load.py:2422: in SkipExample 166s my_bool: bool = skip_if_field(IS_FALSY()) 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s condition = 166s 166s def skip_if_field(condition, *, default=MISSING, default_factory=MISSING, init=True, repr=True, 166s hash=None, compare=True, metadata=None, kw_only=MISSING): 166s 166s if default is not MISSING and default_factory is not MISSING: 166s raise ValueError('cannot specify both default and default_factory') 166s 166s if metadata is None: 166s metadata = {} 166s 166s metadata['__skip_if__'] = condition 166s 166s > return Field(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:331: TypeError 166s ______ test_property_wizard_does_not_error_when_forward_refs_are_declared ______ 166s 166s def test_property_wizard_does_not_error_when_forward_refs_are_declared(): 166s """ 166s Using `property_wizard` when the dataclass has a forward reference 166s defined in a type annotation. 166s 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s fire_truck: 'Truck' 166s cars: List['Car'] = field(default_factory=list) 166s 166s _wheels: Union[int, str] = 4 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s @dataclass 166s class Car: 166s tires: int 166s 166s @dataclass 166s class Truck: 166s color: str 166s 166s truck = Truck('red') 166s 166s v = Vehicle(fire_truck=truck) 166s log.debug(v) 166s assert v.wheels == 4 166s 166s > v = Vehicle(fire_truck=truck, wheels=3) 166s E TypeError: test_property_wizard_does_not_error_when_forward_refs_are_declared..Vehicle.__init__() got an unexpected keyword argument 'wheels'. Did you mean '_wheels'? 166s 166s tests/unit/test_property_wizard.py:135: TypeError 166s _______ test_property_wizard_with_public_property_and_underscored_field ________ 166s 166s def test_property_wizard_with_public_property_and_underscored_field(): 166s """ 166s Using `property_wizard` when the dataclass has an public property and an 166s underscored field name. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s _wheels: Union[int, str] = 4 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s v = Vehicle() 166s log.debug(v) 166s assert v.wheels == 4 166s 166s # Note that my IDE complains here, and suggests `_wheels` as a possible 166s # keyword argument to the constructor method; however, that's wrong and 166s # will error if you try it way. 166s > v = Vehicle(wheels=3) 166s E TypeError: test_property_wizard_with_public_property_and_underscored_field..Vehicle.__init__() got an unexpected keyword argument 'wheels'. Did you mean '_wheels'? 166s 166s tests/unit/test_property_wizard.py:172: TypeError 166s _____________ test_property_wizard_with_public_property_and_field ______________ 166s 166s def test_property_wizard_with_public_property_and_field(): 166s """ 166s Using `property_wizard` when the dataclass has both a property and field 166s name *without* a leading underscore. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # The value of `wheels` here will be ignored, since `wheels` is simply 166s # re-assigned on the following property definition. 166s wheels: Union[int, str] = 4 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s 166s tests/unit/test_property_wizard.py:204: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'Vehicle' object has no attribute '_wheels'") raised in repr()] Vehicle object at 0x3ff9d3601a0> 166s wheels = 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s > self._wheels = int(wheels) 166s E TypeError: int() argument must be a string, a bytes-like object or a real number, not 'property' 166s 166s tests/unit/test_property_wizard.py:202: TypeError 166s _________ test_property_wizard_with_public_property_and_field_with_or __________ 166s 166s @pytest.mark.skipif(not PY310_OR_ABOVE, reason='requires Python 3.10 or higher') 166s def test_property_wizard_with_public_property_and_field_with_or(): 166s """ 166s Using `property_wizard` when the dataclass has both a property and field 166s name *without* a leading underscore, and using the OR ("|") operator in 166s Python 3.10+, instead of the `typing.Union` usage. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # The value of `wheels` here will be ignored, since `wheels` is simply 166s # re-assigned on the following property definition. 166s wheels: int | str = 4 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s 166s tests/unit/test_property_wizard.py:242: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'Vehicle' object has no attribute '_wheels'") raised in repr()] Vehicle object at 0x3ff9d360440> 166s wheels = 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s > self._wheels = int(wheels) 166s E TypeError: int() argument must be a string, a bytes-like object or a real number, not 'property' 166s 166s tests/unit/test_property_wizard.py:240: TypeError 166s _______ test_property_wizard_with_underscored_property_and_public_field ________ 166s 166s def test_property_wizard_with_underscored_property_and_public_field(): 166s """ 166s Using `property_wizard` when the dataclass has an underscored property and 166s a public field name. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: Union[int, str] = 4 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s v = Vehicle() 166s log.debug(v) 166s assert v.wheels == 4 166s 166s v = Vehicle(wheels=3) 166s log.debug(v) 166s assert v.wheels == 3 166s 166s v = Vehicle('6') 166s log.debug(v) 166s > assert v.wheels == 6, 'The constructor should use our setter method' 166s E AssertionError: The constructor should use our setter method 166s E assert '6' == 6 166s E + where '6' = test_property_wizard_with_underscored_property_and_public_field..Vehicle(wheels='6').wheels 166s 166s tests/unit/test_property_wizard.py:286: AssertionError 166s ___________ test_property_wizard_with_underscored_property_and_field ___________ 166s 166s def test_property_wizard_with_underscored_property_and_field(): 166s """ 166s Using `property_wizard` when the dataclass has both a property and field 166s name with a leading underscore. 166s 166s Note: this approach is generally *not* recommended, because the IDE won't 166s know that the property or field name will be transformed to a public field 166s name without the leading underscore, so it won't offer the desired type 166s hints and auto-completion here. 166s 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # The value of `_wheels` here will be ignored, since `_wheels` is 166s # simply re-assigned on the following property definition. 166s _wheels: Union[int, str] = 4 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s 166s tests/unit/test_property_wizard.py:318: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[RecursionError('maximum recursion depth exceeded') raised in repr()] Vehicle object at 0x3ff9d360830> 166s wheels = 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s > self._wheels = int(wheels) 166s E TypeError: int() argument must be a string, a bytes-like object or a real number, not 'property' 166s 166s tests/unit/test_property_wizard.py:316: TypeError 166s ________ test_property_wizard_with_public_property_and_annotated_field _________ 166s 166s def test_property_wizard_with_public_property_and_annotated_field(): 166s """ 166s Using `property_wizard` when the dataclass has both a property and field 166s name *without* a leading underscore, and the field is a 166s :class:`typing.Annotated` type. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # The value of `wheels` here will be ignored, since `wheels` is simply 166s # re-assigned on the following property definition. 166s wheels: Annotated[Union[int, str], field(default=4)] = None 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s 166s tests/unit/test_property_wizard.py:358: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'Vehicle' object has no attribute '_wheels'") raised in repr()] Vehicle object at 0x3ff9d360ad0> 166s wheels = 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s > self._wheels = int(wheels) 166s E TypeError: int() argument must be a string, a bytes-like object or a real number, not 'property' 166s 166s tests/unit/test_property_wizard.py:356: TypeError 166s _ test_property_wizard_with_private_property_and_annotated_field_with_no_useful_extras _ 166s 166s def test_property_wizard_with_private_property_and_annotated_field_with_no_useful_extras(): 166s """ 166s Using `property_wizard` when the dataclass has both a property and field 166s name with a leading underscore, and the field is a 166s :class:`typing.Annotated` type without any extras that are a 166s :class:`dataclasses.Field` type. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # The value of `wheels` here will be ignored, since `wheels` is simply 166s # re-assigned on the following property definition. 166s _wheels: Annotated[Union[int, str], 'Hello world!', 123] = None 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s 166s tests/unit/test_property_wizard.py:396: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[RecursionError('maximum recursion depth exceeded') raised in repr()] Vehicle object at 0x3ff9d360d70> 166s wheels = 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s > self._wheels = int(wheels) 166s E TypeError: int() argument must be a string, a bytes-like object or a real number, not 'property' 166s 166s tests/unit/test_property_wizard.py:394: TypeError 166s ________________ test_property_wizard_with_multiple_inheritance ________________ 166s 166s def test_property_wizard_with_multiple_inheritance(): 166s """ 166s When using multiple inheritance or when extending from more than one 166s class, and if any of the super classes define properties that should also 166s be `dataclass` fields, then the recommended approach is to define the 166s `property_wizard` metaclass on each class that has such properties. Note 166s that the last class in the below example (Car) doesn't need to use this 166s metaclass, as it doesn't have any properties that meet this condition. 166s 166s """ 166s @dataclass 166s class VehicleWithWheels(metaclass=property_wizard): 166s _wheels: Union[int, str] = field(default=4) 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s @dataclass 166s class Vehicle(VehicleWithWheels, metaclass=property_wizard): 166s _windows: Union[int, str] = field(default=6) 166s 166s @property 166s def windows(self) -> int: 166s return self._windows 166s 166s @windows.setter 166s def windows(self, windows: Union[int, str]): 166s self._windows = int(windows) 166s 166s @dataclass 166s class Car(Vehicle): 166s my_list: List[str] = field(default_factory=list) 166s 166s v = Car() 166s log.debug(v) 166s assert v.wheels == 4 166s assert v.windows == 6 166s assert v.my_list == [] 166s 166s # Note that my IDE complains here, and suggests `_wheels` as a possible 166s # keyword argument to the constructor method; however, that's wrong and 166s # will error if you try it way. 166s > v = Car(wheels=3, windows=5, my_list=['hello', 'world']) 166s E TypeError: test_property_wizard_with_multiple_inheritance..Car.__init__() got an unexpected keyword argument 'wheels'. Did you mean '_wheels'? 166s 166s tests/unit/test_property_wizard.py:459: TypeError 166s _ test_property_wizard_with_public_property_and_underscored_field_without_default_value _ 166s 166s def test_property_wizard_with_public_property_and_underscored_field_without_default_value(): 166s """ 166s Using `property_wizard` when the dataclass has a public property, and an 166s underscored field *without* a default value explicitly set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s _wheels: Union[int, str] 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s E TypeError: test_property_wizard_with_public_property_and_underscored_field_without_default_value..Vehicle.__init__() missing 1 required positional argument: '_wheels' 166s 166s tests/unit/test_property_wizard.py:497: TypeError 166s _ test_property_wizard_with_public_property_and_underscored_field_with_default_factory _ 166s 166s def test_property_wizard_with_public_property_and_underscored_field_with_default_factory(): 166s """ 166s Using `property_wizard` when the dataclass has a public property, and an 166s underscored field has only `default_factory` set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s _wheels: Union[int, str] = field(default_factory=str) 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > with pytest.raises(ValueError): 166s E Failed: DID NOT RAISE 166s 166s tests/unit/test_property_wizard.py:531: Failed 166s _ test_property_wizard_with_public_property_and_underscored_field_without_default_or_default_factory _ 166s 166s def test_property_wizard_with_public_property_and_underscored_field_without_default_or_default_factory(): 166s """ 166s Using `property_wizard` when the dataclass has a public property, and an 166s underscored field has neither `default` or `default_factory` set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s _wheels: Union[int, str] = field() 166s 166s @property 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s E TypeError: test_property_wizard_with_public_property_and_underscored_field_without_default_or_default_factory..Vehicle.__init__() missing 1 required positional argument: '_wheels' 166s 166s tests/unit/test_property_wizard.py:565: TypeError 166s _ test_property_wizard_with_underscored_property_and_public_field_without_default_value _ 166s 166s def test_property_wizard_with_underscored_property_and_public_field_without_default_value(): 166s """ 166s Using `property_wizard` when the dataclass has an underscored property, 166s and a public field *without* a default value explicitly set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: Union[int, str] 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s E TypeError: test_property_wizard_with_underscored_property_and_public_field_without_default_value..Vehicle.__init__() missing 1 required positional argument: 'wheels' 166s 166s tests/unit/test_property_wizard.py:599: TypeError 166s ____ test_property_wizard_with_public_property_and_public_field_is_property ____ 166s 166s def test_property_wizard_with_public_property_and_public_field_is_property(): 166s """ 166s Using `property_wizard` when the dataclass has an underscored property, 166s and a public field is also defined as a property. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # The value of `wheels` here will be ignored, since `wheels` is simply 166s # re-assigned on the following property definition. 166s wheels = property 166s # Defines the default value for `wheels`, since it won't work if we 166s # define it above. The `init=False` is needed since otherwise IDEs 166s # seem to suggest `_wheels` as a parameter to the constructor method, 166s # which shouldn't be the case. 166s # 166s # Note: if are *ok* with the default value for the type (0 in this 166s # case), then you can remove the below line and annotate the above 166s # line instead as `wheels: Union[int, str] = property` 166s _wheels: Union[int, str] = field(default=4, init=False) 166s 166s @wheels 166s def wheels(self) -> int: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s v = Vehicle() 166s log.debug(v) 166s assert v.wheels == 4 166s 166s > v = Vehicle(wheels=3) 166s E TypeError: test_property_wizard_with_public_property_and_public_field_is_property..Vehicle.__init__() got an unexpected keyword argument 'wheels' 166s 166s tests/unit/test_property_wizard.py:648: TypeError 166s _ test_property_wizard_with_underscored_property_and_public_field_with_default _ 166s 166s def test_property_wizard_with_underscored_property_and_public_field_with_default(): 166s """ 166s Using `property_wizard` when the dataclass has an underscored property, 166s and the public field has `default` set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: Union[int, str] = field(default=2) 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s v = Vehicle() 166s log.debug(v) 166s assert v.wheels == 2 166s 166s v = Vehicle(wheels=3) 166s log.debug(v) 166s assert v.wheels == 3 166s 166s v = Vehicle('6') 166s log.debug(v) 166s > assert v.wheels == 6, 'The constructor should use our setter method' 166s E AssertionError: The constructor should use our setter method 166s E assert '6' == 6 166s E + where '6' = test_property_wizard_with_underscored_property_and_public_field_with_default..Vehicle(wheels='6').wheels 166s 166s tests/unit/test_property_wizard.py:688: AssertionError 166s _ test_property_wizard_with_underscored_property_and_public_field_with_default_factory _ 166s 166s def test_property_wizard_with_underscored_property_and_public_field_with_default_factory(): 166s """ 166s Using `property_wizard` when the dataclass has an underscored property, 166s and the public field has only `default_factory` set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: Union[int, str] = field(default_factory=str) 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > with pytest.raises(ValueError): 166s E Failed: DID NOT RAISE 166s 166s tests/unit/test_property_wizard.py:712: Failed 166s _ test_property_wizard_with_underscored_property_and_public_field_without_default_or_default_factory _ 166s 166s def test_property_wizard_with_underscored_property_and_public_field_without_default_or_default_factory(): 166s """ 166s Using `property_wizard` when the dataclass has an underscored property, 166s and the public field has neither `default` or `default_factory` set. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: Union[int, str] = field() 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s E TypeError: test_property_wizard_with_underscored_property_and_public_field_without_default_or_default_factory..Vehicle.__init__() missing 1 required positional argument: 'wheels' 166s 166s tests/unit/test_property_wizard.py:746: TypeError 166s ___________ test_property_wizard_where_annotated_type_contains_none ____________ 166s 166s def test_property_wizard_where_annotated_type_contains_none(): 166s """ 166s Using `property_wizard` when the annotated type for the dataclass field 166s associated with a property is here a :class:`Union` type that contains 166s `None`. As such, the field is technically an `Optional` so the default 166s value will be `None` if no value is specified via the constructor. 166s 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: Union[int, str, None] 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s # TypeError: int() argument is `None` 166s with pytest.raises(TypeError): 166s _ = Vehicle() 166s 166s v = Vehicle(wheels=3) 166s log.debug(v) 166s assert v.wheels == 3 166s 166s v = Vehicle('6') 166s log.debug(v) 166s > assert v.wheels == 6, 'The constructor should use our setter method' 166s E AssertionError: The constructor should use our setter method 166s E assert '6' == 6 166s E + where '6' = test_property_wizard_where_annotated_type_contains_none..Vehicle(wheels='6').wheels 166s 166s tests/unit/test_property_wizard.py:793: AssertionError 166s ____________________ test_property_wizard_with_literal_type ____________________ 166s 166s def test_property_wizard_with_literal_type(): 166s """ 166s Using `property_wizard` when the dataclass field associated with a 166s property is annotated with a :class:`Literal` type. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # Annotate `wheels` as a literal that should only be set to 1 or 0 166s # (similar to how the binary numeral system works, for example) 166s # 166s # Note: we can assign a default value for `wheels` explicitly, so that 166s # the IDE doesn't complain when we omit the argument to the 166s # constructor method, but it's technically not required. 166s wheels: Literal[1, '1', 0, '0'] 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s E TypeError: test_property_wizard_with_literal_type..Vehicle.__init__() missing 1 required positional argument: 'wheels' 166s 166s tests/unit/test_property_wizard.py:823: TypeError 166s ___________________ test_property_wizard_with_concrete_type ____________________ 166s 166s def test_property_wizard_with_concrete_type(): 166s """ 166s Using `property_wizard` when the dataclass field associated with a 166s property is annotated with a non-generic type, such as a `str` or `int`. 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: int 166s 166s @property 166s def _wheels(self) -> int: 166s return self._wheels 166s 166s @_wheels.setter 166s def _wheels(self, wheels: Union[int, str]): 166s self._wheels = int(wheels) 166s 166s > v = Vehicle() 166s E TypeError: test_property_wizard_with_concrete_type..Vehicle.__init__() missing 1 required positional argument: 'wheels' 166s 166s tests/unit/test_property_wizard.py:860: TypeError 166s _ test_property_wizard_with_concrete_type_and_default_factory_raises_type_error _ 166s 166s def test_property_wizard_with_concrete_type_and_default_factory_raises_type_error(): 166s """ 166s Using `property_wizard` when the dataclass field associated with a 166s property is annotated with a non-generic type, such as a `datetime`, which 166s doesn't have a no-args constructor. Since `property_wizard` is not able to 166s instantiate a new `datetime`, the default value should be ``None``. 166s 166s """ 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s # Date when the vehicle was sold 166s sold_dt: datetime 166s 166s @property 166s def _sold_dt(self) -> int: 166s return self._sold_dt 166s 166s @_sold_dt.setter 166s def _sold_dt(self, sold_dt: datetime): 166s """Save the datetime with the year set to `2010`""" 166s self._sold_dt = sold_dt.replace(year=2010) 166s 166s # AttributeError: 'NoneType' object has no attribute 'replace' 166s with pytest.raises(AttributeError): 166s > _ = Vehicle() 166s E TypeError: test_property_wizard_with_concrete_type_and_default_factory_raises_type_error..Vehicle.__init__() missing 1 required positional argument: 'sold_dt' 166s 166s tests/unit/test_property_wizard.py:901: TypeError 166s ________ test_property_wizard_with_generic_type_which_is_not_supported _________ 166s 166s def test_property_wizard_with_generic_type_which_is_not_supported(): 166s """ 166s Using `property_wizard` when the dataclass field associated with a 166s property is annotated with a generic type other than one of the supported 166s types (e.g. Literal and Union). 166s 166s """ 166s 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s # Date when the vehicle was sold 166s sold_dt: ClassVar[datetime] 166s 166s @property 166s def _sold_dt(self) -> int: 166s return self._sold_dt 166s 166s @_sold_dt.setter 166s def _sold_dt(self, sold_dt: datetime): 166s """Save the datetime with the year set to `2010`""" 166s self._sold_dt = sold_dt.replace(year=2010) 166s 166s v = Vehicle() 166s log.debug(v) 166s 166s dt = datetime(2020, 1, 1, 12, 0, 0) # Jan. 1 2020 12:00 PM 166s expected_dt = datetime(2010, 1, 1, 12, 0, 0) # Jan. 1 2010 12:00 PM 166s 166s # TypeError: __init__() got an unexpected keyword argument 'sold_dt' 166s # Note: This is expected because the field for the property is a 166s # `ClassVar`, and even `dataclasses` excludes this annotated type 166s # from the constructor. 166s with pytest.raises(TypeError): 166s _ = Vehicle(sold_dt=dt) 166s 166s # Our property should still work as expected, however 166s v.sold_dt = dt 166s > assert v.sold_dt == expected_dt, 'Expected assignment to use the setter ' \ 166s 'method' 166s E AssertionError: Expected assignment to use the setter method 166s E assert datetime.datetime(2020, 1, 1, 12, 0) == datetime.datetime(2010, 1, 1, 12, 0) 166s E + where datetime.datetime(2020, 1, 1, 12, 0) = test_property_wizard_with_generic_type_which_is_not_supported..Vehicle().sold_dt 166s 166s tests/unit/test_property_wizard.py:957: AssertionError 166s __________________ test_property_wizard_with_mutable_types_v1 __________________ 166s 166s def test_property_wizard_with_mutable_types_v1(): 166s """ 166s The `property_wizard` handles mutable collections (e.g. subclasses of list, 166s dict, and set) as expected. The defaults for these mutable types should 166s use a `default_factory` so we can observe the expected behavior. 166s """ 166s 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: List[Union[int, str]] 166s # _wheels: List[Union[int, str]] = field(init=False) 166s 166s inverse_bool_set: Set[bool] 166s # Not needed, but we can also define this as below if we want to 166s # inverse_bool_set: Annotated[Set[bool], field(default_factory=set)] 166s 166s # We'll need the `field(default_factory=...)` syntax here, because 166s # otherwise the default_factory will be `defaultdict()`, which is not what 166s # we want. 166s wheels_dict: Annotated[ 166s DefaultDict[str, List[str]], 166s field(default_factory=lambda: defaultdict(list)) 166s ] 166s 166s @property 166s def wheels(self) -> List[int]: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: List[Union[int, str]]): 166s self._wheels = [int(w) for w in wheels] 166s 166s @property 166s def inverse_bool_set(self) -> Set[bool]: 166s return self._inverse_bool_set 166s 166s @inverse_bool_set.setter 166s def inverse_bool_set(self, bool_set: Set[bool]): 166s # Confirm that we're passed in the right type when no value is set via 166s # the constructor (i.e. from the `property_wizard` metaclass) 166s assert isinstance(bool_set, set) 166s self._inverse_bool_set = {not b for b in bool_set} 166s 166s @property 166s def wheels_dict(self) -> int: 166s return self._wheels_dict 166s 166s @wheels_dict.setter 166s def wheels_dict(self, wheels: Union[int, str]): 166s self._wheels_dict = wheels 166s 166s v1 = Vehicle(wheels=['1', '2', '3'], 166s inverse_bool_set={True, False}, 166s wheels_dict=defaultdict(list, key=['value'])) 166s v1.wheels_dict['key2'].append('another value') 166s log.debug(v1) 166s 166s > v2 = Vehicle() 166s 166s tests/unit/test_property_wizard.py:1019: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'Vehicle' object has no attribute '_wheels'") raised in repr()] Vehicle object at 0x3ff9dc61590> 166s wheels = 166s 166s @wheels.setter 166s def wheels(self, wheels: List[Union[int, str]]): 166s > self._wheels = [int(w) for w in wheels] 166s E TypeError: 'property' object is not iterable 166s 166s tests/unit/test_property_wizard.py:992: TypeError 166s __________________ test_property_wizard_with_mutable_types_v2 __________________ 166s 166s def test_property_wizard_with_mutable_types_v2(): 166s """ 166s The `property_wizard` handles mutable collections (e.g. subclasses of list, 166s dict, and set) as expected. The defaults for these mutable types should 166s use a `default_factory` so we can observe the expected behavior. 166s 166s In this version, we explicitly pass in the `field(default_factory=...)` 166s syntax for all field properties, though it's technically not needed. 166s """ 166s 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s wheels: Annotated[List[int], field(default_factory=list)] 166s _wheels_list: list = field(default_factory=list) 166s 166s @property 166s def wheels_list(self) -> list: 166s return self._wheels_list 166s 166s @wheels_list.setter 166s def wheels_list(self, wheels): 166s self._wheels_list = wheels 166s 166s @property 166s def wheels(self) -> list: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels): 166s self._wheels = wheels 166s 166s > v1 = Vehicle(wheels=[1, 2], wheels_list=[2, 1]) 166s E TypeError: test_property_wizard_with_mutable_types_v2..Vehicle.__init__() got an unexpected keyword argument 'wheels_list'. Did you mean '_wheels_list'? 166s 166s tests/unit/test_property_wizard.py:1075: TypeError 166s _ test_property_wizard_with_mutable_types_with_parameterized_standard_collections _ 166s 166s def test_property_wizard_with_mutable_types_with_parameterized_standard_collections(): 166s """ 166s Test case for mutable types with a Python 3.9 specific feature: 166s parameterized standard collections. As such, this test case is only 166s expected to pass for Python 3.9+. 166s """ 166s 166s @dataclass 166s class Vehicle(metaclass=property_wizard): 166s 166s wheels: list[Union[int, str]] 166s # _wheels: List[Union[int, str]] = field(init=False) 166s 166s inverse_bool_set: set[bool] 166s # Not needed, but we can also define this as below if we want to 166s # inverse_bool_set: Annotated[Set[bool], field(default_factory=set)] 166s 166s # We'll need the `field(default_factory=...)` syntax here, because 166s # otherwise the default_factory will be `defaultdict()`, which is not what 166s # we want. 166s wheels_dict: Annotated[ 166s defaultdict[str, List[str]], 166s field(default_factory=lambda: defaultdict(list)) 166s ] 166s 166s @property 166s def wheels(self) -> List[int]: 166s return self._wheels 166s 166s @wheels.setter 166s def wheels(self, wheels: List[Union[int, str]]): 166s self._wheels = [int(w) for w in wheels] 166s 166s @property 166s def inverse_bool_set(self) -> Set[bool]: 166s return self._inverse_bool_set 166s 166s @inverse_bool_set.setter 166s def inverse_bool_set(self, bool_set: Set[bool]): 166s # Confirm that we're passed in the right type when no value is set via 166s # the constructor (i.e. from the `property_wizard` metaclass) 166s assert isinstance(bool_set, set) 166s self._inverse_bool_set = {not b for b in bool_set} 166s 166s @property 166s def wheels_dict(self) -> int: 166s return self._wheels_dict 166s 166s @wheels_dict.setter 166s def wheels_dict(self, wheels: Union[int, str]): 166s self._wheels_dict = wheels 166s 166s v1 = Vehicle(wheels=['1', '2', '3'], 166s inverse_bool_set={True, False}, 166s wheels_dict=defaultdict(list, key=['value'])) 166s v1.wheels_dict['key2'].append('another value') 166s log.debug(v1) 166s 166s > v2 = Vehicle() 166s 166s tests/unit/test_property_wizard.py:1162: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s :3: in __init__ 166s ??? 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'Vehicle' object has no attribute '_wheels'") raised in repr()] Vehicle object at 0x3ff9dc61810> 166s wheels = 166s 166s @wheels.setter 166s def wheels(self, wheels: List[Union[int, str]]): 166s > self._wheels = [int(w) for w in wheels] 166s E TypeError: 'property' object is not iterable 166s 166s tests/unit/test_property_wizard.py:1135: TypeError 166s __________________ test_call_py_code_generator_with_file_name __________________ 166s 166s mock_path = 166s 166s def test_call_py_code_generator_with_file_name(mock_path): 166s """ 166s Test calling the constructor for :class:`PyCodeGenerator` with the 166s `file_name` argument. Added for code coverage. 166s """ 166s mock_path().read_bytes.return_value = b'{"key": "1.23", "secondKey": null}' 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from typing import Any 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s key: float 166s second_key: Any 166s ''' 166s 166s code_gen = PyCodeGenerator(file_name='my_file.txt', 166s force_strings=True) 166s 166s > assert_py_code(expected, py_code=code_gen.py_code) 166s 166s tests/unit/test_wizard_cli.py:91: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from typing import Any\n\n from dataclass_wizard import JSONWizard\n\...ta(JSONWizard):\n """\n Data dataclass\n\n """\n key: float\n second_key: Any\n ' 166s capfd = None 166s py_code = 'from dataclasses import dataclass\nfrom typing import Any\n\nfrom dataclass_wizard import JSONWizard\n\n\n@dataclass\nclass data(JSONWizard):\n """\n data dataclass\n\n """\n key: float\n second_key: Any\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla...nd_key: Any\n' == 'from datacla...nd_key: Any\n' 166s E 166s E from dataclasses import dataclass 166s E from typing import Any 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E ... 166s E 166s E ...Full output truncated (14 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s ____________ test_call_py_code_generator_with_experimental_features ____________ 166s 166s def test_call_py_code_generator_with_experimental_features(): 166s """ 166s Test calling the constructor for :class:`PyCodeGenerator` with the 166s `-x|--experimental` flag. 166s """ 166s 166s string = """\ 166s {"someField": null, "Some_List": [], 166s "Objects": [{"key1": false}, 166s {"key1": 1.2, "key2": "string"}, 166s {"key1": "val", "key2": null}] 166s }\ 166s """ 166s 166s expected = ''' 166s from __future__ import annotations 166s 166s from dataclasses import dataclass 166s from typing import Any 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s some_field: Any 166s some_list: list 166s objects: list[Object] 166s 166s 166s @dataclass 166s class Object: 166s """ 166s Object dataclass 166s 166s """ 166s key1: bool | float | str 166s key2: str | None 166s ''' 166s 166s code_gen = PyCodeGenerator(file_contents=string, 166s experimental=True, 166s force_strings=True) 166s 166s > assert_py_code(expected, py_code=code_gen.py_code) 166s 166s tests/unit/test_wizard_cli.py:142: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from __future__ import annotations\n\n from dataclasses import dataclass\n from typing import Any\n\n ... """\n Object dataclass\n\n """\n key1: bool | float | str\n key2: str | None\n ' 166s capfd = None 166s py_code = 'from __future__ import annotations\n\nfrom dataclasses import dataclass\nfrom typing import Any\n\nfrom dataclass_wiz...class\nclass Objects:\n """\n Objects dataclass\n\n """\n key1: bool | float | str\n key2: str | None\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from __futur... str | None\n' == 'from __futur... str | None\n' 166s E 166s E from __future__ import annotations 166s E 166s E from dataclasses import dataclass 166s E from typing import Any 166s E 166s E from dataclass_wizard import JSONWizard... 166s E 166s E ...Full output truncated (33 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s ________________________________ test_star_wars ________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d435ba0> 166s 166s def test_star_wars(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from datetime import datetime 166s from typing import List, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s name: str 166s rotation_period: Union[int, str] 166s orbital_period: Union[int, str] 166s diameter: Union[int, str] 166s climate: str 166s gravity: str 166s terrain: str 166s surface_water: Union[int, str] 166s population: Union[int, str] 166s residents: List 166s films: List[str] 166s created: datetime 166s edited: datetime 166s url: str 166s ''' 166s 166s gen_schema('star_wars.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:306: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from datetime import datetime\n from typing import List, Union\n\n ...residents: List\n films: List[str]\n created: datetime\n edited: datetime\n url: str\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d435ba0> 166s py_code = 'from dataclasses import dataclass\nfrom datetime import datetime\nfrom typing import List, Union\n\nfrom dataclass_wi...nion[int, str]\n residents: List\n films: List[str]\n created: datetime\n edited: datetime\n url: str\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla... url: str\n' == 'from datacla... url: str\n' 166s E 166s E from dataclasses import dataclass 166s E from datetime import datetime 166s E from typing import List, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E ... 166s E 166s E ...Full output truncated (27 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_1 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d616690> 166s 166s def test_input_1(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s key: str 166s int_key: int 166s float_key: float 166s my_dict: 'MyDict' 166s 166s 166s @dataclass 166s class MyDict: 166s """ 166s MyDict dataclass 166s 166s """ 166s key2: str 166s ''' 166s 166s gen_schema('test1.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:340: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n\n from dataclass_wizard import JSONWizard\n\n\n @dataclass\n class...\n\n\n @dataclass\n class MyDict:\n """\n MyDict dataclass\n\n """\n key2: str\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d616690> 166s py_code = 'from dataclasses import dataclass\n\nfrom dataclass_wizard import JSONWizard\n\n\n@dataclass\nclass data(JSONWizard):...\n my_dict: \'my_dict\'\n\n\n@dataclass\nclass my_dict:\n """\n my_dict dataclass\n\n """\n key2: str\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla... key2: str\n' == 'from datacla... key2: str\n' 166s E 166s E from dataclasses import dataclass 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E 166s E @dataclass... 166s E 166s E ...Full output truncated (33 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_2 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9dc88380> 166s 166s def test_input_2(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from datetime import datetime 166s from typing import Optional, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Container: 166s """ 166s Container dataclass 166s 166s """ 166s data: 'Data' 166s field_1: int 166s field_2: str 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s key: Optional[str] 166s another_key: Optional[Union[str, int]] 166s truth: int 166s my_list: 'MyList' 166s my_date: datetime 166s my_id: str 166s 166s 166s @dataclass 166s class MyList: 166s """ 166s MyList dataclass 166s 166s """ 166s pass 166s ''' 166s 166s gen_schema('test2.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:389: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from datetime import datetime\n from typing import Optional, Union\n\...: str\n\n\n @dataclass\n class MyList:\n """\n MyList dataclass\n\n """\n pass\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9dc88380> 166s py_code = 'from dataclasses import dataclass\nfrom datetime import datetime\nfrom typing import Optional, Union\n\nfrom dataclas..._date: datetime\n my_id: str\n\n\n@dataclass\nclass my_list:\n """\n my_list dataclass\n\n """\n pass\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E assert 'from datacla..."\n pass\n' == 'from datacla..."\n pass\n' 166s E 166s E from dataclasses import dataclass 166s E from datetime import datetime 166s E from typing import Optional, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E ... 166s E 166s E ...Full output truncated (42 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_3 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9dc8a360> 166s 166s def test_input_3(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from typing import List, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Container: 166s """ 166s Container dataclass 166s 166s """ 166s data: 'Data' 166s field_1: int 166s field_2: int 166s field_3: str 166s field_4: bool 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s true_story: Union[str, int] 166s true_bool: bool 166s my_list: List[Union[int, 'MyList']] 166s 166s 166s @dataclass 166s class MyList: 166s """ 166s MyList dataclass 166s 166s """ 166s hey: str 166s ''' 166s 166s gen_schema('test3.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:436: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from typing import List, Union\n\n from dataclass_wizard import JSONW...]\n\n\n @dataclass\n class MyList:\n """\n MyList dataclass\n\n """\n hey: str\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9dc8a360> 166s py_code = 'from dataclasses import dataclass\nfrom typing import List, Union\n\nfrom dataclass_wizard import JSONWizard\n\n\n@da...st[Union[int, \'my_list\']]\n\n\n@dataclass\nclass my_list:\n """\n my_list dataclass\n\n """\n hey: str\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla... hey: str\n' == 'from datacla... hey: str\n' 166s E 166s E from dataclasses import dataclass 166s E from typing import List, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E ... 166s E 166s E ...Full output truncated (40 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_4 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d6f0350> 166s 166s def test_input_4(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from typing import Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Container: 166s """ 166s Container dataclass 166s 166s """ 166s data: 'Data' 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s input_index: int 166s candidate_index: int 166s delivery_line_1: str 166s last_line: str 166s delivery_point_barcode: Union[int, str] 166s components: 'Components' 166s metadata: 'Metadata' 166s analysis: 'Analysis' 166s 166s 166s @dataclass 166s class Components: 166s """ 166s Components dataclass 166s 166s """ 166s primary_number: Union[int, str] 166s street_predirection: Union[bool, str] 166s street_name: str 166s street_suffix: str 166s city_name: str 166s state_abbreviation: str 166s zipcode: Union[int, str] 166s plus4_code: Union[int, str] 166s delivery_point: Union[int, str] 166s delivery_point_check_digit: Union[int, str] 166s 166s 166s @dataclass 166s class Metadata: 166s """ 166s Metadata dataclass 166s 166s """ 166s record_type: str 166s zip_type: str 166s county_fips: Union[int, str] 166s county_name: str 166s carrier_route: str 166s congressional_district: Union[int, str] 166s rdi: str 166s elot_sequence: Union[int, str] 166s elot_sort: str 166s latitude: float 166s longitude: float 166s precision: str 166s time_zone: str 166s utc_offset: int 166s dst: bool 166s 166s 166s @dataclass 166s class Analysis: 166s """ 166s Analysis dataclass 166s 166s """ 166s dpv_match_code: Union[bool, str] 166s dpv_footnotes: str 166s dpv_cmra: Union[bool, str] 166s dpv_vacant: Union[bool, str] 166s active: Union[bool, str] 166s ''' 166s 166s gen_schema('test4.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:529: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from typing import Union\n\n from dataclass_wizard import JSONWizard\... str\n dpv_cmra: Union[bool, str]\n dpv_vacant: Union[bool, str]\n active: Union[bool, str]\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d6f0350> 166s py_code = 'from dataclasses import dataclass\nfrom typing import Union\n\nfrom dataclass_wizard import JSONWizard\n\n\n@dataclas... dpv_footnotes: str\n dpv_cmra: Union[bool, str]\n dpv_vacant: Union[bool, str]\n active: Union[bool, str]\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla...[bool, str]\n' == 'from datacla...[bool, str]\n' 166s E 166s E from dataclasses import dataclass 166s E from typing import Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E ... 166s E 166s E ...Full output truncated (104 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_5 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d41ef50> 166s 166s def test_input_5(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from typing import List, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Container: 166s """ 166s Container dataclass 166s 166s """ 166s data: 'Data' 166s field_1: List[Union[List[Union[str, 'Data2']], int, str]] 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s key: str 166s 166s 166s @dataclass 166s class Data2: 166s """ 166s Data2 dataclass 166s 166s """ 166s key: int 166s nested_classes: 'NestedClasses' 166s 166s 166s @dataclass 166s class NestedClasses: 166s """ 166s NestedClasses dataclass 166s 166s """ 166s blah: str 166s another_one: List['AnotherOne'] 166s just_something_with_a_space: int 166s 166s 166s @dataclass 166s class AnotherOne: 166s """ 166s AnotherOne dataclass 166s 166s """ 166s testing: str 166s ''' 166s 166s gen_schema('test5.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:592: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from typing import List, Union\n\n from dataclass_wizard import JSONW...dataclass\n class AnotherOne:\n """\n AnotherOne dataclass\n\n """\n testing: str\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d41ef50> 166s py_code = 'from dataclasses import dataclass\nfrom typing import List, Union\n\nfrom dataclass_wizard import JSONWizard\n\n\n@da...th_a_space: int\n\n\n@dataclass\nclass another-one:\n """\n another-one dataclass\n\n """\n testing: str\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla...esting: str\n' == 'from datacla...esting: str\n' 166s E 166s E from dataclasses import dataclass 166s E from typing import List, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E ... 166s E 166s E ...Full output truncated (65 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_6 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d484140> 166s 166s def test_input_6(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from datetime import date, time 166s from typing import List, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s my_field: str 166s another_field: date 166s my_list: List[Union[int, 'MyList', List['Data2']]] 166s 166s 166s @dataclass 166s class MyList: 166s """ 166s MyList dataclass 166s 166s """ 166s another_key: str 166s 166s 166s @dataclass 166s class Data2: 166s """ 166s Data2 dataclass 166s 166s """ 166s key: str 166s my_time: time 166s ''' 166s 166s gen_schema('test6.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:637: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from datetime import date, time\n from typing import List, Union\n\n ...\n class Data2:\n """\n Data2 dataclass\n\n """\n key: str\n my_time: time\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d484140> 166s py_code = 'from dataclasses import dataclass\nfrom datetime import date, time\nfrom typing import List, Union\n\nfrom dataclass_...her_key: str\n\n\n@dataclass\nclass Data2:\n """\n Data2 dataclass\n\n """\n key: str\n my_time: time\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla..._time: time\n' == 'from datacla..._time: time\n' 166s E 166s E from dataclasses import dataclass 166s E from datetime import date, time 166s E from typing import List, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E ... 166s E 166s E ...Full output truncated (35 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_7 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d4d28a0> 166s 166s def test_input_7(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from typing import List, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Container: 166s """ 166s Container dataclass 166s 166s """ 166s data: 'Data' 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s my_test_apis: List['MyTestApi'] 166s people: List['Person'] 166s children: List['Child'] 166s activities: List['Activity'] 166s equipment: List['Equipment'] 166s key: int 166s nested_classes: 'NestedClasses' 166s something_else: str 166s 166s 166s @dataclass 166s class MyTestApi: 166s """ 166s MyTestApi dataclass 166s 166s """ 166s first_api: str 166s 166s 166s @dataclass 166s class Person: 166s """ 166s Person dataclass 166s 166s """ 166s name: str 166s age: Union[int, str] 166s 166s 166s @dataclass 166s class Child: 166s """ 166s Child dataclass 166s 166s """ 166s name: str 166s age: Union[int, float] 166s 166s 166s @dataclass 166s class Activity: 166s """ 166s Activity dataclass 166s 166s """ 166s name: str 166s 166s 166s @dataclass 166s class Equipment: 166s """ 166s Equipment dataclass 166s 166s """ 166s count: int 166s 166s 166s @dataclass 166s class NestedClasses: 166s """ 166s NestedClasses dataclass 166s 166s """ 166s blah: str 166s another_one: List['AnotherOne'] 166s just_something: int 166s 166s 166s @dataclass 166s class AnotherOne: 166s """ 166s AnotherOne dataclass 166s 166s """ 166s testing: str 166s ''' 166s 166s gen_schema('test7.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:743: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from typing import List, Union\n\n from dataclass_wizard import JSONW...dataclass\n class AnotherOne:\n """\n AnotherOne dataclass\n\n """\n testing: str\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d4d28a0> 166s py_code = 'from dataclasses import dataclass\nfrom typing import List, Union\n\nfrom dataclass_wizard import JSONWizard\n\n\n@da..._something: int\n\n\n@dataclass\nclass another-one:\n """\n another-one dataclass\n\n """\n testing: str\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla...esting: str\n' == 'from datacla...esting: str\n' 166s E 166s E from dataclasses import dataclass 166s E from typing import List, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E ... 166s E 166s E ...Full output truncated (141 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s _________________________________ test_input_8 _________________________________ 166s 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d499ef0> 166s 166s def test_input_8(capfd): 166s 166s expected = ''' 166s from dataclasses import dataclass 166s from typing import List, Optional, Union 166s 166s from dataclass_wizard import JSONWizard 166s 166s 166s @dataclass 166s class Container: 166s """ 166s Container dataclass 166s 166s """ 166s data: 'Data' 166s field_1: List['Data1'] 166s field_2: List['Data2'] 166s field_3: List['Data3'] 166s 166s 166s @dataclass 166s class Data(JSONWizard): 166s """ 166s Data dataclass 166s 166s """ 166s list_of_dictionaries: List['ListOfDictionary'] 166s 166s 166s @dataclass 166s class ListOfDictionary: 166s """ 166s ListOfDictionary dataclass 166s 166s """ 166s my_energies: List[Union['MyEnergy', int, str]] 166s key: Optional[str] 166s 166s 166s @dataclass 166s class MyEnergy: 166s """ 166s MyEnergy dataclass 166s 166s """ 166s my_test_val: Union[bool, int] 166s another_val: str 166s string_val: str 166s merged_float: float 166s 166s 166s @dataclass 166s class Data1: 166s """ 166s Data1 dataclass 166s 166s """ 166s key: str 166s another_key: str 166s 166s 166s @dataclass 166s class Data2: 166s """ 166s Data2 dataclass 166s 166s """ 166s question: str 166s 166s 166s @dataclass 166s class Data3: 166s """ 166s Data3 dataclass 166s 166s """ 166s explanation: str 166s ''' 166s 166s gen_schema('test8.json') 166s 166s > assert_py_code(expected, capfd) 166s 166s tests/unit/test_wizard_cli.py:828: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s expected = '\n from dataclasses import dataclass\n from typing import List, Optional, Union\n\n from dataclass_wizard im...n @dataclass\n class Data3:\n """\n Data3 dataclass\n\n """\n explanation: str\n ' 166s capfd = <_pytest.capture.CaptureFixture object at 0x3ff9d499ef0> 166s py_code = 'from dataclasses import dataclass\nfrom typing import List, Optional, Union\n\nfrom dataclass_wizard import JSONWizar... """\n question: str\n\n\n@dataclass\nclass Data3:\n """\n Data3 dataclass\n\n """\n explanation: str\n' 166s 166s def assert_py_code(expected, capfd=None, py_code=None): 166s """ 166s Helper function to assert that generated Python code is as expected. 166s """ 166s if py_code is None: 166s py_code = _get_captured_py_code(capfd) 166s 166s # TODO update to `info` level to see the output in terminal. 166s log.debug('Generated Python code:\n%s\n%s', 166s '-' * 20, py_code) 166s 166s > assert py_code == dedent(expected).lstrip() 166s E AssertionError: assert 'from datacla...nation: str\n' == 'from datacla...nation: str\n' 166s E 166s E from dataclasses import dataclass 166s E from typing import List, Optional, Union 166s E 166s E from dataclass_wizard import JSONWizard 166s E 166s E ... 166s E 166s E ...Full output truncated (87 lines hidden), use '-vv' to show 166s 166s tests/unit/test_wizard_cli.py:35: AssertionError 166s ______________________________ test_alias_mapping ______________________________ 166s 166s def test_alias_mapping(): 166s 166s @dataclass 166s > class Test(JSONPyWizard): 166s 166s tests/unit/v1/test_loaders.py:142: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:147: in Test 166s my_str: str = Alias('a_str') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9d554fe0> 166s load_alias = ('a_str',), dump_alias = ('a_str',), skip = False, path = None 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s _____________________ test_alias_mapping_with_load_or_dump _____________________ 166s 166s def test_alias_mapping_with_load_or_dump(): 166s 166s @dataclass 166s > class Test(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:163: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:173: in Test 166s my_str: str = Alias(load='a_str') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9d555b20> 166s load_alias = ('a_str',), dump_alias = None, skip = False, path = None 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ______________________ test_alias_with_multiple_mappings _______________________ 166s 166s def test_alias_with_multiple_mappings(): 166s """Test `Alias(...)` usage with multiple aliases or mappings.""" 166s 166s @dataclass 166s > class MyClass(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:203: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:211: in MyClass 166s my_str: 'str | None' = Alias('my_str', 'MyStr') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9d556840> 166s load_alias = ('my_str', 'MyStr'), dump_alias = ('my_str', 'MyStr'), skip = False 166s path = None, default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s _________________ test_from_dict_raises_on_unknown_keys_nested _________________ 166s 166s def test_from_dict_raises_on_unknown_keys_nested(): 166s 166s @dataclass 166s class Sub(JSONWizard): 166s class _(JSONWizard.Meta): 166s v1_key_case = 'P' 166s 166s my_str: str 166s 166s @dataclass 166s > class Test(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:335: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:340: in Test 166s my_str: str = Alias('a_str') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9d556ac0> 166s load_alias = ('a_str',), dump_alias = ('a_str',), skip = False, path = None 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ___________ test_from_dict_raises_on_unknown_keys_with_key_case_auto ___________ 166s 166s def test_from_dict_raises_on_unknown_keys_with_key_case_auto(): 166s """ 166s Raises on Unknown Key with `key_case='AUTO'` 166s """ 166s @dataclass 166s class Sub(JSONWizard): 166s my_str: str 166s 166s @dataclass 166s > class Test(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:393: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:399: in Test 166s my_str: str = Alias('a_str') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9d5567a0> 166s load_alias = ('a_str',), dump_alias = ('a_str',), skip = False, path = None 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ______________ test_aware_and_utc_date_times_with_custom_pattern _______________ 166s 166s cls = .Example'> 166s d = {'key': '10-2020-15:30-UTC', 'my_dt2': '2010-5-7 8', 'my_time1': '17:10:05', 'my_time2': ['21:45-UTC']} 166s 166s def fromdict(cls: type[T], d: JSONObject) -> T: 166s """ 166s Converts a Python dictionary object to a dataclass instance. 166s 166s Iterates over each dataclass field recursively; lists, dicts, and nested 166s dataclasses will likewise be initialized as expected. 166s 166s When directly invoking this function, an optional Meta configuration for 166s the dataclass can be specified via ``LoadMeta``; by default, this will 166s apply recursively to any nested dataclasses. Here's a sample usage of this 166s below:: 166s 166s >>> LoadMeta(key_transform='CAMEL').bind_to(MyClass) 166s >>> fromdict(MyClass, {"myStr": "value"}) 166s 166s """ 166s try: 166s > load = CLASS_TO_LOAD_FUNC[cls] 166s E KeyError: .Example'> 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/loader_selection.py:27: KeyError 166s 166s During handling of the above exception, another exception occurred: 166s 166s def test_aware_and_utc_date_times_with_custom_pattern(): 166s """ 166s Time and datetime objects with a custom date string 166s format, where the objects are timezone-aware or in UTC. 166s """ 166s class MyTime(time, metaclass=create_strict_eq): 166s def print_hour(self): 166s print(self.hour) 166s 166s @dataclass 166s class Example(JSONPyWizard): 166s class _(JSONPyWizard.Meta): 166s v1 = True 166s 166s my_dt1: Annotated[AwareDateTimePattern['Asia/Tokyo', '%m-%Y-%H:%M-%Z'], Alias('key')] 166s my_dt2: UTCDateTimePattern['%Y-%m-%d %H'] 166s my_time1: UTCTimePattern['%H:%M:%S'] 166s my_time2: Annotated[list[MyTime], AwarePattern['US/Hawaii', '%H:%M-%Z']] 166s 166s d = {'key': '10-2020-15:30-UTC', 166s 'my_dt2': '2010-5-7 8', 166s 'my_time1': '17:10:05', 166s 'my_time2': ['21:45-UTC']} 166s > ex = Example.from_dict(d) 166s 166s tests/unit/v1/test_loaders.py:797: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s /usr/lib/python3/dist-packages/dataclass_wizard/loader_selection.py:29: in fromdict 166s load = _get_load_fn_for_dataclass(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/loader_selection.py:58: in _get_load_fn_for_dataclass 166s load = V1_load_func_for_dataclass(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/loaders.py:1023: in load_func_for_dataclass 166s field_to_aliases = v1_dataclass_field_to_alias(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/class_helper.py:323: in v1_dataclass_field_to_alias 166s return _setup_v1_load_config_for_cls(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/class_helper.py:375: in _setup_v1_load_config_for_cls 166s field_type = f.type = eval_forward_ref_if_needed(f.type, cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/utils/typing_compat.py:243: in eval_forward_ref_if_needed 166s base_type = eval_forward_ref(base_type, base_cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/utils/typing_compat.py:228: in eval_forward_ref 166s return _eval_type(base_type, base_globals, _TYPING_LOCALS) 166s /usr/lib/python3.14/typing.py:461: in _eval_type 166s return evaluate_forward_ref(t, globals=globalns, locals=localns, 166s /usr/lib/python3.14/typing.py:1000: in evaluate_forward_ref 166s value = forward_ref.evaluate(globals=globals, locals=locals, 166s /usr/lib/python3.14/annotationlib.py:186: in evaluate 166s return eval(code, globals=globals, locals=locals) 166s :1: in 166s ??? 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9d555f80> 166s load_alias = ('key',), dump_alias = ('key',), skip = False, path = None 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s _______________ test_from_dict_key_transform_with_multiple_alias _______________ 166s 166s def test_from_dict_key_transform_with_multiple_alias(): 166s """ 166s Specifying a custom mapping of alias key to dataclass field, via the 166s `Alias` helper function. 166s """ 166s 166s @dataclass 166s > class MyClass(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:1076: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:1081: in MyClass 166s my_str: str = Alias('myCustomStr') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9dbb8c20> 166s load_alias = ('myCustomStr',), dump_alias = ('myCustomStr',), skip = False 166s path = None, default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ___________________ test_from_dict_key_transform_with_alias ____________________ 166s 166s cls = .MyClass'> 166s d = {'myCustomStr': 'Testing', 'myTestBool': 'true'} 166s 166s def fromdict(cls: type[T], d: JSONObject) -> T: 166s """ 166s Converts a Python dictionary object to a dataclass instance. 166s 166s Iterates over each dataclass field recursively; lists, dicts, and nested 166s dataclasses will likewise be initialized as expected. 166s 166s When directly invoking this function, an optional Meta configuration for 166s the dataclass can be specified via ``LoadMeta``; by default, this will 166s apply recursively to any nested dataclasses. Here's a sample usage of this 166s below:: 166s 166s >>> LoadMeta(key_transform='CAMEL').bind_to(MyClass) 166s >>> fromdict(MyClass, {"myStr": "value"}) 166s 166s """ 166s try: 166s > load = CLASS_TO_LOAD_FUNC[cls] 166s E KeyError: .MyClass'> 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/loader_selection.py:27: KeyError 166s 166s During handling of the above exception, another exception occurred: 166s 166s def test_from_dict_key_transform_with_alias(): 166s """ 166s Specifying a custom mapping of JSON key to dataclass field, 166s via the `Alias` helper function. 166s """ 166s 166s @dataclass 166s class MyClass(JSONWizard): 166s 166s class _(JSONWizard.Meta): 166s v1 = True 166s 166s my_str: Annotated[str, Alias('myCustomStr')] 166s my_bool: Annotated[bool, Alias('myTestBool')] 166s 166s value = 'Testing' 166s d = {'myCustomStr': value, 'myTestBool': 'true'} 166s 166s > result = MyClass.from_dict(d) 166s 166s tests/unit/v1/test_loaders.py:1112: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s /usr/lib/python3/dist-packages/dataclass_wizard/loader_selection.py:29: in fromdict 166s load = _get_load_fn_for_dataclass(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/loader_selection.py:58: in _get_load_fn_for_dataclass 166s load = V1_load_func_for_dataclass(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/loaders.py:1023: in load_func_for_dataclass 166s field_to_aliases = v1_dataclass_field_to_alias(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/class_helper.py:323: in v1_dataclass_field_to_alias 166s return _setup_v1_load_config_for_cls(cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/class_helper.py:375: in _setup_v1_load_config_for_cls 166s field_type = f.type = eval_forward_ref_if_needed(f.type, cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/utils/typing_compat.py:243: in eval_forward_ref_if_needed 166s base_type = eval_forward_ref(base_type, base_cls) 166s /usr/lib/python3/dist-packages/dataclass_wizard/utils/typing_compat.py:228: in eval_forward_ref 166s return _eval_type(base_type, base_globals, _TYPING_LOCALS) 166s /usr/lib/python3.14/typing.py:461: in _eval_type 166s return evaluate_forward_ref(t, globals=globalns, locals=localns, 166s /usr/lib/python3.14/typing.py:1000: in evaluate_forward_ref 166s value = forward_ref.evaluate(globals=globals, locals=locals, 166s /usr/lib/python3.14/annotationlib.py:186: in evaluate 166s return eval(code, globals=globals, locals=locals) 166s :1: in 166s ??? 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:491: in Alias 166s return Field(load, dump, skip, None, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9dbb9760> 166s load_alias = ('myCustomStr',), dump_alias = ('myCustomStr',), skip = False 166s path = None, default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s _________________ test_from_dict_with_nested_object_alias_path _________________ 166s 166s def test_from_dict_with_nested_object_alias_path(): 166s """ 166s Specifying a custom mapping of "nested" alias to dataclass field, 166s via the `AliasPath` helper function. 166s """ 166s 166s @dataclass 166s > class A(JSONPyWizard): 166s 166s tests/unit/v1/test_loaders.py:2931: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:2937: in A 166s my_str: str = AliasPath(['a', 'b', 'c', -1], default='xyz') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:523: in AliasPath 166s return Field(load, dump, skip, all, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9cd1b920> 166s load_alias = None, dump_alias = None, skip = False 166s path = (['a', 'b', 'c', -1],), default = 'xyz' 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s _______ test_from_dict_with_nested_object_alias_path_with_skip_defaults ________ 166s 166s def test_from_dict_with_nested_object_alias_path_with_skip_defaults(): 166s """ 166s Specifying a custom mapping of "nested" alias to dataclass field, 166s via the `AliasPath` helper function. 166s 166s Test with `skip_defaults=True`, `load_alias`, and `skip=True`. 166s """ 166s 166s @dataclass 166s > class A(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:3023: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:3033: in A 166s other_bool: bool = AliasPath('x.y."z z"', default=True) 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:523: in AliasPath 166s return Field(load, dump, skip, all, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9cd1bba0> 166s load_alias = None, dump_alias = None, skip = False, path = (['x', 'y', 'z z'],) 166s default = True 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ____ test_from_dict_with_nested_object_alias_path_with_dump_alias_and_skip _____ 166s 166s def test_from_dict_with_nested_object_alias_path_with_dump_alias_and_skip(): 166s """ 166s Test nested object `AliasPath` with dump='...' and skip=True, 166s along with `Alias` with `skip=True`, 166s added for branch coverage. 166s """ 166s @dataclass 166s > class A(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:3132: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:3137: in A 166s my_str: str = AliasPath(dump='a.b.c[0]') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:523: in AliasPath 166s return Field(load, dump, skip, all, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9cd1bce0> 166s load_alias = , dump_alias = None, skip = False 166s path = (['a', 'b', 'c', 0],) 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ____________ test_from_dict_with_multiple_nested_object_alias_paths ____________ 166s 166s def test_from_dict_with_multiple_nested_object_alias_paths(): 166s """Confirm `AliasPath` works for multiple nested paths.""" 166s 166s @dataclass 166s > class MyClass(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:3170: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:3178: in MyClass 166s my_str: 'str | None' = AliasPath('ace.in.hole.0[1]', 'bears.eat.b33ts') 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:523: in AliasPath 166s return Field(load, dump, skip, all, default, default_factory, init, repr, 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s self = <[AttributeError("'dataclass_wizard.v1.models.Field' object has no attribute 'name'") raised in repr()] Field object at 0x3ff9cd1be20> 166s load_alias = None, dump_alias = None, skip = False 166s path = (['ace', 'in', 'hole', 0, 1], ['bears', 'eat', 'b33ts']) 166s default = 166s default_factory = 166s init = True, repr = True, hash = None, compare = True, metadata = None 166s kw_only = False 166s 166s def __init__(self, 166s load_alias, dump_alias, skip, path, 166s default, default_factory, init, repr, hash, compare, 166s metadata, kw_only): 166s 166s > super().__init__(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/v1/models.py:540: TypeError 166s ____________________________ test_per_field_skip_if ____________________________ 166s 166s def test_per_field_skip_if(): 166s """ 166s Test per-field `skip_if` functionality, with the ``SkipIf`` 166s condition in type annotation, and also specified in 166s ``skip_if_field()`` which wraps ``dataclasses.Field``. 166s """ 166s @dataclass 166s > class Example(JSONPyWizard): 166s 166s tests/unit/v1/test_loaders.py:3405: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:3411: in Example 166s third_str: 'str | None' = skip_if_field(EQ(''), default=None) 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s condition = 166s 166s def skip_if_field(condition, *, default=MISSING, default_factory=MISSING, init=True, repr=True, 166s hash=None, compare=True, metadata=None, kw_only=MISSING): 166s 166s if default is not MISSING and default_factory is not MISSING: 166s raise ValueError('cannot specify both default and default_factory') 166s 166s if metadata is None: 166s metadata = {} 166s 166s metadata['__skip_if__'] = condition 166s 166s > return Field(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:331: TypeError 166s ____________________ test_is_truthy_and_is_falsy_conditions ____________________ 166s 166s def test_is_truthy_and_is_falsy_conditions(): 166s """ 166s Test both IS_TRUTHY and IS_FALSY conditions within a single test case. 166s """ 166s 166s # Define the Example class within the test case and apply the conditions 166s @dataclass 166s > class Example(JSONPyWizard): 166s 166s tests/unit/v1/test_loaders.py:3440: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:3446: in Example 166s my_bool: bool = skip_if_field(IS_FALSY()) # Skip if falsy 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s condition = 166s 166s def skip_if_field(condition, *, default=MISSING, default_factory=MISSING, init=True, repr=True, 166s hash=None, compare=True, metadata=None, kw_only=MISSING): 166s 166s if default is not MISSING and default_factory is not MISSING: 166s raise ValueError('cannot specify both default and default_factory') 166s 166s if metadata is None: 166s metadata = {} 166s 166s metadata['__skip_if__'] = condition 166s 166s > return Field(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:331: TypeError 166s _________________________ test_skip_if_truthy_or_falsy _________________________ 166s 166s def test_skip_if_truthy_or_falsy(): 166s """ 166s Test skip if condition is truthy or falsy for individual fields. 166s """ 166s 166s # Use of SkipIf with IS_TRUTHY 166s @dataclass 166s > class SkipExample(JSONWizard): 166s 166s tests/unit/v1/test_loaders.py:3471: 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s tests/unit/v1/test_loaders.py:3477: in SkipExample 166s my_bool: bool = skip_if_field(IS_FALSY()) 166s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 166s 166s condition = 166s 166s def skip_if_field(condition, *, default=MISSING, default_factory=MISSING, init=True, repr=True, 166s hash=None, compare=True, metadata=None, kw_only=MISSING): 166s 166s if default is not MISSING and default_factory is not MISSING: 166s raise ValueError('cannot specify both default and default_factory') 166s 166s if metadata is None: 166s metadata = {} 166s 166s metadata['__skip_if__'] = condition 166s 166s > return Field(default, default_factory, init, repr, hash, 166s compare, metadata, kw_only) 166s E TypeError: Field.__init__() missing 1 required positional argument: 'doc' 166s 166s /usr/lib/python3/dist-packages/dataclass_wizard/models.py:331: TypeError 166s =============================== warnings summary =============================== 166s tests/unit/test_load.py:2581 166s /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/tests/unit/test_load.py:2581: SyntaxWarning: "\." is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\."? A raw string is also an option. 166s with pytest.raises(TypeError, match=".*Test\.__init__\(\) missing 1 required positional argument: 'my_field'"): 166s 166s tests/unit/v1/test_loaders.py:3653 166s /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/tests/unit/v1/test_loaders.py:3653: SyntaxWarning: "\." is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\."? A raw string is also an option. 166s with pytest.raises(TypeError, match=".*Test\.__init__\(\) missing 1 required positional argument: 'my_field'"): 166s 166s tests/unit/test_bases_meta.py: 6 warnings 166s tests/unit/test_dump.py: 20 warnings 166s tests/unit/test_load.py: 51 warnings 166s tests/unit/test_load_with_future_import.py: 28 warnings 166s tests/unit/test_wizard_mixins.py: 5 warnings 166s tests/unit/v1/test_loaders.py: 245 warnings 166s tests/unit/v1/test_union_as_type_alias_recursive.py: 1 warning 166s /usr/lib/python3/dist-packages/dataclass_wizard/bases_meta.py:135: DeprecationWarning: Deprecated Meta setting debug_enabled (Use `v1_debug` instead). 166s show_deprecation_warning( 166s 166s tests/unit/test_load.py::test_timedelta[testing-expectation0-ValueError] 166s /usr/lib/python3/dist-packages/pytimeparse/__init__.py:19: DeprecationWarning: codecs.open() is deprecated. Use open() instead. 166s with open(path.join(path.dirname(__file__), 'VERSION'), 166s 166s tests/unit/test_wizard_cli.py: 32 warnings 166s /usr/lib/python3/dist-packages/dataclass_wizard/wizard_cli/cli.py:112: PendingDeprecationWarning: FileType is deprecated. Simply open files after parsing arguments. 166s super().__init__(mode, bufsize, encoding, errors) 166s 166s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 166s =========================== short test summary info ============================ 166s FAILED tests/unit/environ/test_dumpers.py::test_dump_with_excluded_fields_and_skip_defaults 166s FAILED tests/unit/environ/test_wizard.py::test_load_and_dump_with_aliases - T... 166s FAILED tests/unit/environ/test_wizard.py::test_load_with_parse_error_when_env_var_is_specified 166s FAILED tests/unit/environ/test_wizard.py::test_init_method_declaration_is_logged_when_debug_mode_is_enabled 166s FAILED tests/unit/test_bases_meta.py::test_meta_initializer_runs_as_expected 166s FAILED tests/unit/test_dump.py::test_to_dict_key_transform_with_json_field - ... 166s FAILED tests/unit/test_dump.py::test_to_dict_with_excluded_fields - TypeError... 166s FAILED tests/unit/test_load.py::test_from_dict_key_transform_with_json_field 166s FAILED tests/unit/test_load.py::test_from_dict_with_nested_object_key_path - ... 166s FAILED tests/unit/test_load.py::test_from_dict_with_nested_object_key_path_with_skip_defaults 166s FAILED tests/unit/test_load.py::test_per_field_skip_if - TypeError: Field.__i... 166s FAILED tests/unit/test_load.py::test_is_truthy_and_is_falsy_conditions - Type... 166s FAILED tests/unit/test_load.py::test_skip_if_truthy_or_falsy - TypeError: Fie... 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_does_not_error_when_forward_refs_are_declared 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_field 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_field_with_or 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_field 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_annotated_field 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_private_property_and_annotated_field_with_no_useful_extras 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_multiple_inheritance 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_without_default_value 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_with_default_factory 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_without_default_or_default_factory 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_without_default_value 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_public_field_is_property 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_with_default 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_with_default_factory 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_without_default_or_default_factory 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_where_annotated_type_contains_none 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_literal_type 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_concrete_type 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_concrete_type_and_default_factory_raises_type_error 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_generic_type_which_is_not_supported 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_v1 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_v2 166s FAILED tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_with_parameterized_standard_collections 166s FAILED tests/unit/test_wizard_cli.py::test_call_py_code_generator_with_file_name 166s FAILED tests/unit/test_wizard_cli.py::test_call_py_code_generator_with_experimental_features 166s FAILED tests/unit/test_wizard_cli.py::test_star_wars - AssertionError: assert... 166s FAILED tests/unit/test_wizard_cli.py::test_input_1 - AssertionError: assert '... 166s FAILED tests/unit/test_wizard_cli.py::test_input_2 - assert 'from datacla..."... 166s FAILED tests/unit/test_wizard_cli.py::test_input_3 - AssertionError: assert '... 166s FAILED tests/unit/test_wizard_cli.py::test_input_4 - AssertionError: assert '... 166s FAILED tests/unit/test_wizard_cli.py::test_input_5 - AssertionError: assert '... 166s FAILED tests/unit/test_wizard_cli.py::test_input_6 - AssertionError: assert '... 166s FAILED tests/unit/test_wizard_cli.py::test_input_7 - AssertionError: assert '... 166s FAILED tests/unit/test_wizard_cli.py::test_input_8 - AssertionError: assert '... 166s FAILED tests/unit/v1/test_loaders.py::test_alias_mapping - TypeError: Field._... 166s FAILED tests/unit/v1/test_loaders.py::test_alias_mapping_with_load_or_dump - ... 166s FAILED tests/unit/v1/test_loaders.py::test_alias_with_multiple_mappings - Typ... 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_raises_on_unknown_keys_nested 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_raises_on_unknown_keys_with_key_case_auto 166s FAILED tests/unit/v1/test_loaders.py::test_aware_and_utc_date_times_with_custom_pattern 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_key_transform_with_multiple_alias 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_key_transform_with_alias 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path_with_skip_defaults 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path_with_dump_alias_and_skip 166s FAILED tests/unit/v1/test_loaders.py::test_from_dict_with_multiple_nested_object_alias_paths 166s FAILED tests/unit/v1/test_loaders.py::test_per_field_skip_if - TypeError: Fie... 166s FAILED tests/unit/v1/test_loaders.py::test_is_truthy_and_is_falsy_conditions 166s FAILED tests/unit/v1/test_loaders.py::test_skip_if_truthy_or_falsy - TypeErro... 166s = 64 failed, 592 passed, 8 skipped, 11 deselected, 6 xfailed, 4 xpassed, 391 warnings in 2.93s = 166s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build; python3.14 -m pytest --no-cov -k "not test_toml_wizard_methods and not test_catch_all and not test_load_with_tuple_of_dotenv_and_env_file_param_to_init and not test_load_with_dotenv_file" 166s I: pybuild base:311: cd /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build; python3.13 -m pytest --no-cov -k "not test_toml_wizard_methods and not test_catch_all and not test_load_with_tuple_of_dotenv_and_env_file_param_to_init and not test_load_with_dotenv_file" 166s ============================= test session starts ============================== 166s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 166s rootdir: /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build 166s configfile: pytest.ini 166s plugins: typeguard-4.4.2, mock-3.15.1, cov-5.0.0 166s collected 685 items / 11 deselected / 674 selected 166s 166s tests/unit/environ/test_dumpers.py::test_dump_with_excluded_fields_and_skip_defaults PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_bytes PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_bytearray[testing 123-expected0] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_bytearray[test-expected1] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_bytearray[input2-expected2] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_tuple_and_named_tuple PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_dataclass PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_datetime[2021-11-28T17:35:55-expected0] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_datetime[1577952245-expected1] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_datetime[input2-expected2] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_date[2021-11-28-expected0] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_date[1577952245-expected1] PASSED 166s tests/unit/environ/test_loaders.py::test_load_to_date[input2-expected2] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[device_type-devicetype] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[isACamelCasedWORD-isacamelcasedword] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[ATitledWordToTESTWith-atitledwordtotestwith] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[not-a-tester-notatester] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[helloworld-helloworld] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[A-a] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[TESTing_if_thisWorks-testingifthisworks] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[a_B_Cde_fG_hi-abcdefghi] PASSED 166s tests/unit/environ/test_lookups.py::test_clean[How_-Are-_YoUDoing__TeST-howareyoudoingtest] PASSED 166s tests/unit/environ/test_lookups.py::test_lookup_exact PASSED 166s tests/unit/environ/test_lookups.py::test_reload_when_not_accessed_cleaned_to_env PASSED 166s tests/unit/environ/test_lookups.py::test_with_snake_case PASSED 166s tests/unit/environ/test_lookups.py::test_with_pascal_or_camel_case PASSED 166s tests/unit/environ/test_wizard.py::test_load_and_dump PASSED 166s tests/unit/environ/test_wizard.py::test_load_and_dump_with_dict PASSED 166s tests/unit/environ/test_wizard.py::test_load_and_dump_with_aliases PASSED 166s tests/unit/environ/test_wizard.py::test_load_with_missing_env_variables PASSED 166s tests/unit/environ/test_wizard.py::test_load_with_parse_error 166s -------------------------------- live log call --------------------------------- 166s dataclass_wizard.bases_meta - [INFO] DEBUG Mode is enabled 166s PASSED 166s tests/unit/environ/test_wizard.py::test_load_with_parse_error_when_env_var_is_specified PASSED 166s tests/unit/environ/test_wizard.py::test_load_when_constructor_kwargs_are_passed PASSED 166s tests/unit/environ/test_wizard.py::test_init_method_declaration_is_logged_when_debug_mode_is_enabled PASSED 166s tests/unit/environ/test_wizard.py::test_load_with_tuple_of_dotenv_and_env_prefix_param_to_init PASSED 166s tests/unit/environ/test_wizard.py::test_env_prefix_with_env_file PASSED 166s tests/unit/environ/test_wizard.py::test_secrets_dir_and_override PASSED 166s tests/unit/environ/test_wizard.py::test_env_wizard_handles_nested_dataclass_field_with_multiple_input_types PASSED 166s tests/unit/test_bases_meta.py::test_merge_meta_with_or PASSED 166s tests/unit/test_bases_meta.py::test_merge_meta_with_and PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_runs_as_expected 166s -------------------------------- live log call --------------------------------- 166s dataclass_wizard.bases_meta - [INFO] DEBUG Mode is enabled 166s PASSED 166s tests/unit/test_bases_meta.py::test_json_key_to_field_when_add_is_a_falsy_value PASSED 166s tests/unit/test_bases_meta.py::test_meta_config_is_not_implicitly_shared_between_dataclasses PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_is_called_when_meta_is_an_inner_class PASSED 166s tests/unit/test_bases_meta.py::test_env_meta_initializer_not_called_when_meta_is_not_an_inner_class 166s -------------------------------- live log call --------------------------------- 166s dataclass_wizard.bases_meta - [WARNING] The 'test_env_meta_initializer_not_called_when_meta_is_not_an_inner_class.._' class is not declared as an Inner Class, so these are global settings that will apply to all EnvWizard sub-classes. 166s PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_not_called_when_meta_is_not_an_inner_class 166s -------------------------------- live log call --------------------------------- 166s dataclass_wizard.bases_meta - [WARNING] The 'test_meta_initializer_not_called_when_meta_is_not_an_inner_class.._' class is not declared as an Inner Class, so these are global settings that will apply to all JSONSerializable sub-classes. 166s PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_errors_when_key_transform_with_load_is_invalid PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_errors_when_key_transform_with_dump_is_invalid PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_errors_when_marshal_date_time_as_is_invalid PASSED 166s tests/unit/test_bases_meta.py::test_meta_initializer_is_noop_when_marshal_date_time_as_is_iso_format PASSED 166s tests/unit/test_dump.py::test_asdict_and_fromdict PASSED 166s tests/unit/test_dump.py::test_asdict_with_nested_dataclass PASSED 166s tests/unit/test_dump.py::test_tag_field_is_used_in_dump_process PASSED 166s tests/unit/test_dump.py::test_to_dict_key_transform_with_json_field PASSED 166s tests/unit/test_dump.py::test_to_dict_key_transform_with_json_key PASSED 166s tests/unit/test_dump.py::test_to_dict_with_skip_defaults PASSED 166s tests/unit/test_dump.py::test_to_dict_with_excluded_fields PASSED 166s tests/unit/test_dump.py::test_set[input0-expected0-expectation0] PASSED 166s tests/unit/test_dump.py::test_set[input1-expected1-expectation1] PASSED 166s tests/unit/test_dump.py::test_frozenset[input0-expected0-expectation0] PASSED 166s tests/unit/test_dump.py::test_frozenset[input1-expected1-expectation1] PASSED 166s tests/unit/test_dump.py::test_deque[input0-expected0-expectation0] PASSED 166s tests/unit/test_dump.py::test_deque[input1-expected1-expectation1] PASSED 166s tests/unit/test_dump.py::test_literal[testing-expectation0] XFAIL (s...) 166s tests/unit/test_dump.py::test_literal[e1-expectation1] XPASS (still ...) 166s tests/unit/test_dump.py::test_literal[False-expectation2] XFAIL (sti...) 166s tests/unit/test_dump.py::test_literal[0-expectation3] XPASS (still n...) 166s tests/unit/test_dump.py::test_uuid[input0-expectation0] PASSED 166s tests/unit/test_dump.py::test_uuid[input1-expectation1] PASSED 166s tests/unit/test_dump.py::test_uuid[input2-expectation2] PASSED 166s tests/unit/test_dump.py::test_uuid[input3-expectation3] PASSED 166s tests/unit/test_dump.py::test_timedelta[input0-expectation0] PASSED 166s tests/unit/test_dump.py::test_timedelta[input1-expectation1] PASSED 166s tests/unit/test_dump.py::test_timedelta[input2-expectation2] PASSED 166s tests/unit/test_dump.py::test_typed_dict[input0-expectation0] XFAIL 166s tests/unit/test_dump.py::test_typed_dict[input1-expectation1] XFAIL 166s tests/unit/test_dump.py::test_typed_dict[input2-expectation2] XPASS 166s tests/unit/test_dump.py::test_typed_dict[input3-expectation3] XFAIL 166s tests/unit/test_dump.py::test_typed_dict[input4-expectation4] XFAIL 166s tests/unit/test_dump.py::test_typed_dict[input5-expectation5] XPASS 166s tests/unit/test_dump.py::test_using_dataclass_in_dict PASSED 166s tests/unit/test_dump.py::test_bytes_and_bytes_array_are_supported PASSED 166s tests/unit/test_load.py::test_fromdict PASSED 166s tests/unit/test_load.py::test_fromdict_raises_on_unknown_json_fields 166s -------------------------------- live log call --------------------------------- 166s dataclass_wizard. - [WARNING] JSON field 'my_string' missing from dataclass schema, class=.MyClass'>, parsed field='my_string' 166s PASSED 167s tests/unit/test_load.py::test_fromdict_with_nested_dataclass PASSED 167s tests/unit/test_load.py::test_invalid_types_with_debug_mode_enabled PASSED 167s tests/unit/test_load.py::test_from_dict_called_with_incorrect_type PASSED 167s tests/unit/test_load.py::test_date_times_with_custom_pattern PASSED 167s tests/unit/test_load.py::test_date_times_with_custom_pattern_when_input_is_invalid PASSED 167s tests/unit/test_load.py::test_date_times_with_custom_pattern_when_annotation_is_invalid PASSED 167s tests/unit/test_load.py::test_tag_field_is_used_in_load_process PASSED 167s tests/unit/test_load.py::test_e2e_process_with_init_only_fields 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard. - [WARNING] JSON field 'myFloat' missing from dataclass schema, class=.MyClass'>, parsed field='my_float' 167s PASSED 167s tests/unit/test_load.py::test_bool[True-True] PASSED 167s tests/unit/test_load.py::test_bool[TrUe-True] PASSED 167s tests/unit/test_load.py::test_bool[y-True] PASSED 167s tests/unit/test_load.py::test_bool[T-True] PASSED 167s tests/unit/test_load.py::test_bool[1-True] PASSED 167s tests/unit/test_load.py::test_bool[False-False0] PASSED 167s tests/unit/test_load.py::test_bool[False-False1] PASSED 167s tests/unit/test_load.py::test_bool[testing-False] PASSED 167s tests/unit/test_load.py::test_bool[0-False] PASSED 167s tests/unit/test_load.py::test_from_dict_handles_identical_cased_json_keys PASSED 167s tests/unit/test_load.py::test_from_dict_with_missing_fields 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard. - [WARNING] JSON field 'myBool' missing from dataclass schema, class=.MyClass'>, parsed field='my_bool' 167s PASSED 167s tests/unit/test_load.py::test_from_dict_with_missing_fields_with_resolution 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard. - [WARNING] JSON field 'myBool' missing from dataclass schema, class=.MyClass'>, parsed field='my_bool' 167s PASSED 167s tests/unit/test_load.py::test_from_dict_key_transform_with_json_field PASSED 167s tests/unit/test_load.py::test_from_dict_key_transform_with_json_key PASSED 167s tests/unit/test_load.py::test_set[input0-expected0-expectation0] PASSED 167s tests/unit/test_load.py::test_set[TrUe-True-expectation1] PASSED 167s tests/unit/test_load.py::test_set[input2-expected2-expectation2] PASSED 167s tests/unit/test_load.py::test_frozenset[input0-expected0-expectation0] PASSED 167s tests/unit/test_load.py::test_frozenset[TrUe-True-expectation1] PASSED 167s tests/unit/test_load.py::test_frozenset[input2-expected2-expectation2] PASSED 167s tests/unit/test_load.py::test_literal[testing-expectation0] PASSED 167s tests/unit/test_load.py::test_literal[e1-expectation1] PASSED 167s tests/unit/test_load.py::test_literal[False-expectation2] PASSED 167s tests/unit/test_load.py::test_literal[0-expectation3] PASSED 167s tests/unit/test_load.py::test_annotated[True-True] PASSED 167s tests/unit/test_load.py::test_annotated[None-None] PASSED 167s tests/unit/test_load.py::test_annotated[TrUe-True] PASSED 167s tests/unit/test_load.py::test_annotated[y-True] PASSED 167s tests/unit/test_load.py::test_annotated[T-True] PASSED 167s tests/unit/test_load.py::test_annotated[F-False] PASSED 167s tests/unit/test_load.py::test_annotated[1-True] PASSED 167s tests/unit/test_load.py::test_annotated[False-False] PASSED 167s tests/unit/test_load.py::test_annotated[0-False] PASSED 167s tests/unit/test_load.py::test_uuid[12345678-1234-1234-1234-1234567abcde] PASSED 167s tests/unit/test_load.py::test_uuid[{12345678-1234-5678-1234-567812345678}] PASSED 167s tests/unit/test_load.py::test_uuid[12345678123456781234567812345678] PASSED 167s tests/unit/test_load.py::test_uuid[urn:uuid:12345678-1234-5678-1234-567812345678] PASSED 167s tests/unit/test_load.py::test_optional[testing-expectation0-testing] PASSED 167s tests/unit/test_load.py::test_optional[False-expectation1-False] PASSED 167s tests/unit/test_load.py::test_optional[0-expectation2-0] PASSED 167s tests/unit/test_load.py::test_optional[None-expectation3-None] PASSED 167s tests/unit/test_load.py::test_union[testing-expectation0-testing] PASSED 167s tests/unit/test_load.py::test_union[False-expectation1-False] PASSED 167s tests/unit/test_load.py::test_union[0-expectation2-0] PASSED 167s tests/unit/test_load.py::test_union[None-expectation3-None] PASSED 167s tests/unit/test_load.py::test_union[1.2-expectation4-None] PASSED 167s tests/unit/test_load.py::test_forward_refs_are_resolved PASSED 167s tests/unit/test_load.py::test_datetime[testing-expectation0] PASSED 167s tests/unit/test_load.py::test_datetime[2020-01-02T01:02:03Z-expectation1] PASSED 167s tests/unit/test_load.py::test_datetime[2010-12-31 23:59:59-04:00-expectation2] PASSED 167s tests/unit/test_load.py::test_datetime[123456789-expectation3] PASSED 167s tests/unit/test_load.py::test_datetime[True-expectation4] PASSED 167s tests/unit/test_load.py::test_datetime[input5-expectation5] PASSED 167s tests/unit/test_load.py::test_date[testing-expectation0] PASSED 167s tests/unit/test_load.py::test_date[2020-01-02-expectation1] PASSED 167s tests/unit/test_load.py::test_date[2010-12-31-expectation2] PASSED 167s tests/unit/test_load.py::test_date[123456789-expectation3] PASSED 167s tests/unit/test_load.py::test_date[True-expectation4] PASSED 167s tests/unit/test_load.py::test_date[input5-expectation5] PASSED 167s tests/unit/test_load.py::test_time[testing-expectation0] PASSED 167s tests/unit/test_load.py::test_time[01:02:03Z-expectation1] PASSED 167s tests/unit/test_load.py::test_time[23:59:59-04:00-expectation2] PASSED 167s tests/unit/test_load.py::test_time[123456789-expectation3] PASSED 167s tests/unit/test_load.py::test_time[True-expectation4] PASSED 167s tests/unit/test_load.py::test_time[input5-expectation5] PASSED 167s tests/unit/test_load.py::test_timedelta[testing-expectation0-ValueError] PASSED 167s tests/unit/test_load.py::test_timedelta[23:59:59-04:00-expectation1-ValueError] PASSED 167s tests/unit/test_load.py::test_timedelta[32-expectation2-None] PASSED 167s tests/unit/test_load.py::test_timedelta[32.7-expectation3-None] PASSED 167s tests/unit/test_load.py::test_timedelta[32m-expectation4-None] PASSED 167s tests/unit/test_load.py::test_timedelta[2h32m-expectation5-None] PASSED 167s tests/unit/test_load.py::test_timedelta[4:13-expectation6-None] PASSED 167s tests/unit/test_load.py::test_timedelta[5hr34m56s-expectation7-None] PASSED 167s tests/unit/test_load.py::test_timedelta[1.2 minutes-expectation8-None] PASSED 167s tests/unit/test_load.py::test_timedelta[12345-expectation9-None] PASSED 167s tests/unit/test_load.py::test_timedelta[True-expectation10-TypeError] PASSED 167s tests/unit/test_load.py::test_timedelta[input11-expectation11-None] PASSED 167s tests/unit/test_load.py::test_list[input0-expectation0-expected0] PASSED 167s tests/unit/test_load.py::test_list[input1-expectation1-None] PASSED 167s tests/unit/test_load.py::test_list[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_list[input3-expectation3-None] PASSED 167s tests/unit/test_load.py::test_list[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_list[testing-expectation5-None] PASSED 167s tests/unit/test_load.py::test_deque[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_deque[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_list_without_type_hinting[input0-expectation0-expected0] PASSED 167s tests/unit/test_load.py::test_list_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_list_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_list_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_list_without_type_hinting[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_list_without_type_hinting[testing-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_tuple[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_tuple[input1-expectation1-None] PASSED 167s tests/unit/test_load.py::test_tuple[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_tuple[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_tuple[testing-expectation4-None] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[input1-expectation1-None] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_tuple_with_optional_args[testing-expectation6-None] PASSED 167s tests/unit/test_load.py::test_tuple_without_type_hinting[input0-expectation0-expected0] PASSED 167s tests/unit/test_load.py::test_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_tuple_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_tuple_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_tuple_without_type_hinting[testing-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input0-expectation0-expected0] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input3-expectation3-None] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[input6-expectation6-expected6] PASSED 167s tests/unit/test_load.py::test_tuple_with_variadic_args[testing-expectation7-None] PASSED 167s tests/unit/test_load.py::test_dict[None-expectation0-None] PASSED 167s tests/unit/test_load.py::test_dict[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_dict[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_dict[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_dict[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_dict[input5-expectation5-None] PASSED 167s tests/unit/test_load.py::test_default_dict[None-expectation0-None] PASSED 167s tests/unit/test_load.py::test_default_dict[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_default_dict[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_default_dict[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_default_dict[input4-expectation4-None] PASSED 167s tests/unit/test_load.py::test_default_dict[input5-expectation5-None] PASSED 167s tests/unit/test_load.py::test_dict_without_type_hinting[None-expectation0-None] PASSED 167s tests/unit/test_load.py::test_dict_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_dict_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_dict_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_dict_without_type_hinting[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_dict_without_type_hinting[input5-expectation5-None] PASSED 167s tests/unit/test_load.py::test_typed_dict[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_typed_dict[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_typed_dict[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_typed_dict[input3-expectation3-None] PASSED 167s tests/unit/test_load.py::test_typed_dict[input4-expectation4-None] PASSED 167s tests/unit/test_load.py::test_typed_dict[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_typed_dict[input6-expectation6-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input0-expectation0-expected0] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_all_fields_optional[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input2-expectation2-expected2] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input3-expectation3-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input4-expectation4-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input6-expectation6-expected6] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_not_required[input7-expectation7-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input5-expectation5-None] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input6-expectation6-expected6] PASSED 167s tests/unit/test_load.py::test_typed_dict_with_one_field_required[input7-expectation7-expected7] PASSED 167s tests/unit/test_load.py::test_named_tuple[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_named_tuple[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_named_tuple[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_named_tuple[input3-expectation3-None] PASSED 167s tests/unit/test_load.py::test_named_tuple[input4-expectation4-None] PASSED 167s tests/unit/test_load.py::test_named_tuple[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_named_tuple[input6-expectation6-expected6] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input0-expectation0-None] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input2-expectation2-None] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input4-expectation4-expected4] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input5-expectation5-expected5] PASSED 167s tests/unit/test_load.py::test_named_tuple_without_type_hinting[input6-expectation6-expected6] PASSED 167s tests/unit/test_load.py::test_optional_parser_contains[None-True] PASSED 167s tests/unit/test_load.py::test_optional_parser_contains[NoneType-False] PASSED 167s tests/unit/test_load.py::test_optional_parser_contains[hello world-True] PASSED 167s tests/unit/test_load.py::test_optional_parser_contains[123-False] PASSED 167s tests/unit/test_load.py::test_single_arg_parser_without_hook PASSED 167s tests/unit/test_load.py::test_parser_with_unsupported_type 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard.loaders - [WARNING] Using default loader, type=None 167s PASSED 167s tests/unit/test_load.py::test_load_with_inner_model_when_data_is_null PASSED 167s tests/unit/test_load.py::test_load_with_inner_model_when_data_is_wrong_type PASSED 167s tests/unit/test_load.py::test_load_with_python_3_11_regression PASSED 167s tests/unit/test_load.py::test_with_self_referential_dataclasses_1 PASSED 167s tests/unit/test_load.py::test_with_self_referential_dataclasses_2 PASSED 167s tests/unit/test_load.py::test_from_dict_with_nested_object_key_path PASSED 167s tests/unit/test_load.py::test_from_dict_with_nested_object_key_path_with_skip_defaults PASSED 167s tests/unit/test_load.py::test_auto_assign_tags_and_raise_on_unknown_json_key PASSED 167s tests/unit/test_load.py::test_auto_assign_tags_and_catch_all 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 167s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 167s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 167s dataclass_wizard.loaders - [WARNING] Using default loader, type=dataclass_wizard.models.CatchAll 167s PASSED 167s tests/unit/test_load.py::test_skip_if PASSED 167s tests/unit/test_load.py::test_skip_defaults_if PASSED 167s tests/unit/test_load.py::test_per_field_skip_if PASSED 167s tests/unit/test_load.py::test_is_truthy_and_is_falsy_conditions PASSED 167s tests/unit/test_load.py::test_skip_if_truthy_or_falsy PASSED 167s tests/unit/test_load.py::test_invalid_condition_annotation_raises_error PASSED 167s tests/unit/test_load.py::test_dataclass_in_union_when_tag_key_is_field PASSED 167s tests/unit/test_load.py::test_sequence_and_mutable_sequence_are_supported PASSED 167s tests/unit/test_load.py::test_dataclass_decorator_is_automatically_applied SKIPPED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input0-expectation0] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input1-expectation1] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input2-expectation2] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input3-expectation3] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input4-expectation4] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input5-expectation5] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v1[input6-expectation6] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input0-expectation0] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input1-expectation1] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input2-expectation2] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input3-expectation3] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input4-expectation4] PASSED 167s tests/unit/test_load_with_future_import.py::test_load_with_future_annotation_v2[input5-expectation5] SKIPPED 167s tests/unit/test_load_with_future_import.py::test_dataclasses_in_union_types PASSED 167s tests/unit/test_load_with_future_import.py::test_dataclasses_in_union_types_with_auto_assign_tags 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard. - [WARNING] JSON field 'type' missing from dataclass schema, class=.D'>, parsed field='type' 167s dataclass_wizard. - [WARNING] JSON field 'type' missing from dataclass schema, class=.C'>, parsed field='type' 167s dataclass_wizard. - [WARNING] JSON field 'type' missing from dataclass schema, class=.A'>, parsed field='type' 167s PASSED 167s tests/unit/test_models.py::test_json_field_does_not_allow_both_default_and_default_factory PASSED 167s tests/unit/test_models.py::test_container_with_incorrect_usage PASSED 167s tests/unit/test_models.py::test_container_methods PASSED 167s tests/unit/test_parsers.py::TestLiteralParser::test_literal_parser_dunder_contains_succeeds_if_item_in_keys_of_base_type PASSED 167s tests/unit/test_parsers.py::TestLiteralParser::test_literal_parser_dunder_contains_fails_if_item_not_in_keys_of_base_type PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_does_not_affect_normal_properties PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_does_not_affect_read_only_properties PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_does_not_error_when_forward_refs_are_declared PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_field PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_field_with_or PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_field PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_annotated_field PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_private_property_and_annotated_field_with_no_useful_extras PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_multiple_inheritance PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_without_default_value PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_with_default_factory PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_underscored_field_without_default_or_default_factory PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_without_default_value PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_public_property_and_public_field_is_property PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_with_default PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_with_default_factory PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_underscored_property_and_public_field_without_default_or_default_factory PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_where_annotated_type_contains_none PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_literal_type PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_concrete_type PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_concrete_type_and_default_factory_raises_type_error PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_generic_type_which_is_not_supported PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_v1 PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_v2 PASSED 167s tests/unit/test_property_wizard.py::test_property_wizard_with_mutable_types_with_parameterized_standard_collections PASSED 167s tests/unit/test_property_wizard_with_future_import.py::test_property_wizard_with_public_property_and_field_with_or PASSED 167s tests/unit/test_property_wizard_with_future_import.py::test_property_wizard_with_unresolvable_forward_ref PASSED 167s tests/unit/test_wizard_cli.py::test_call_py_code_generator_with_file_name PASSED 167s tests/unit/test_wizard_cli.py::test_call_py_code_generator_with_experimental_features PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_without_subcommand usage: __main__.py [-h] [-V] {gen-schema,gs} ... 167s 167s A companion CLI tool for the Dataclass Wizard, which simplifies interaction 167s with the Python `dataclasses` module. 167s 167s positional arguments: 167s {gen-schema,gs} Supported sub-commands 167s gen-schema (gs) Generates a Python dataclass schema, given a JSON input. 167s 167s options: 167s -h, --help show this help message and exit 167s -V, --version Display the version of this tool. 167s PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_invalid_json_input PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_invalid_json_type PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_when_double_quotes_are_used_to_wrap_input PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_mock_stdout PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_with_output_filename_without_ext Successfully generated the Python code for the JSON schema. 167s __________________________________________________ 167s 167s Wrote out the Python Code to: /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/testing 167s Saved the JSON Input to: /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/testing.json 167s PASSED 167s tests/unit/test_wizard_cli.py::test_call_wiz_cli_when_open_raises_error PASSED 167s tests/unit/test_wizard_cli.py::test_star_wars PASSED 167s tests/unit/test_wizard_cli.py::test_input_1 PASSED 167s tests/unit/test_wizard_cli.py::test_input_2 PASSED 167s tests/unit/test_wizard_cli.py::test_input_3 PASSED 167s tests/unit/test_wizard_cli.py::test_input_4 PASSED 167s tests/unit/test_wizard_cli.py::test_input_5 PASSED 167s tests/unit/test_wizard_cli.py::test_input_6 PASSED 167s tests/unit/test_wizard_cli.py::test_input_7 PASSED 167s tests/unit/test_wizard_cli.py::test_input_8 PASSED 167s tests/unit/test_wizard_mixins.py::test_json_list_wizard_methods PASSED 167s tests/unit/test_wizard_mixins.py::test_json_file_wizard_methods PASSED 167s tests/unit/test_wizard_mixins.py::test_yaml_wizard_methods usage: __main__.py gen-schema [-h] [-n] [-f] [-x] [in-file] [out-file] 167s __main__.py gen-schema: error: argument out-file: can't open 'testing.py': 167s PASSED 167s tests/unit/test_wizard_mixins.py::test_yaml_wizard_list_to_json PASSED 167s tests/unit/test_wizard_mixins.py::test_yaml_wizard_for_branch_coverage PASSED 167s tests/unit/test_wizard_mixins.py::test_toml_wizard_list_to_toml PASSED 167s tests/unit/test_wizard_mixins.py::test_toml_wizard_for_branch_coverage PASSED 167s tests/unit/utils/test_lazy_loader.py::test_lazy_loader_when_module_not_found PASSED 167s tests/unit/utils/test_lazy_loader.py::test_lazy_loader_with_warning PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[device_type-deviceType0] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[io_error-ioError] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[isACamelCasedWORD-isACamelCasedWORD] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[ATitledWordToTESTWith-aTitledWordToTESTWith] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[not-a-tester-notATester] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[device_type-deviceType1] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[helloworld-helloworld] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[A-a] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[TESTing_if_thisWorks-tESTingIfThisWorks] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[a_B_Cde_fG_hi-aBCdeFGHi] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[ALL_CAPS-aLLCAPS] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[WoRd-woRd] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[HIThereHOWIsItGoinG-hIThereHOWIsItGoinG] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[How_-Are-_YoUDoing__TeST-howAreYoUDoingTeST] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[thisIsWithANumber42ToTEST-thisIsWithANumber42ToTEST] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_camel_case[Number 42 With spaces-number42WithSpaces] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[device_type-DeviceType0] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[io_error-IoError] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[isACamelCasedWORD-IsACamelCasedWORD] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[ATitledWordToTESTWith-ATitledWordToTESTWith] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[not-a-tester-NotATester] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[device_type-DeviceType1] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[helloworld-Helloworld] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[A-A] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[TESTing_if_thisWorks-TESTingIfThisWorks] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[a_B_Cde_fG_hi-ABCdeFGHi] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[ALL_CAPS-ALLCAPS] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[WoRd-WoRd] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[HIThereHOWIsItGoinG-HIThereHOWIsItGoinG] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[How_-Are-_YoUDoing__TeST-HowAreYoUDoingTeST] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[thisIsWithANumber42ToTEST-ThisIsWithANumber42ToTEST] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_pascal_case[Number 42 With spaces-Number42WithSpaces] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[device_type-device-type] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[IO_Error-io-error] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[isACamelCasedWORD-is-a-camel-cased-word] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[ATitledWordToTESTWith-a-titled-word-to-test-with] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[not-a-tester-not-a-tester] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[helloworld-helloworld] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[A-a] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[TESTing_if_thisWorks-tes-ting-if-this-works] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[a_B_Cde_fG_hi-a-b-cde-f-g-hi] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[ALL_CAPS-all-caps] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[WoRd-wo-rd] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[HIThereHOWIsItGoinG-hi-there-how-is-it-goin-g] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[How_-Are-_YoUDoing__TeST-how-are-yo-u-doing-te-st] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[thisIsWithANumber42ToTEST-this-is-with-a-number42-to-test] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_lisp_case[Number 42 With spaces-number-42-with-spaces] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[device_type-device_type] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[IO_Error-io_error] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[isACamelCasedWORD-is_a_camel_cased_word] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[ATitledWordToTESTWith-a_titled_word_to_test_with] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[not-a-tester-not_a_tester] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[helloworld-helloworld] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[A-a] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[TESTing_if_thisWorks-tes_ting_if_this_works] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[a_B_Cde_fG_hi-a_b_cde_f_g_hi] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[ALL_CAPS-all_caps] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[WoRd-wo_rd] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[HIThereHOWIsItGoinG-hi_there_how_is_it_goin_g] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[How_-Are-_YoUDoing__TeST-how_are_yo_u_doing_te_st] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[thisIsWithANumber42ToTEST-this_is_with_a_number42_to_test] PASSED 167s tests/unit/utils/test_string_conv.py::test_to_snake_case[Number 42 With spaces-number_42_with_spaces] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[Literal-Literal] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[int-int] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[ClassVar-ClassVar] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[Generic-Generic0] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[Generic-Generic1] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[Union-Union] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_origin[List-list] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_args[Dict-expected0] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_args[int-expected1] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_args[Callable-expected2] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_args[Union-expected3] PASSED 167s tests/unit/utils/test_typing_compat.py::test_get_args[Union-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_missing_fields_is_raised PASSED 167s tests/unit/v1/test_loaders.py::test_auto_key_casing PASSED 167s tests/unit/v1/test_loaders.py::test_auto_key_casing_with_optional_fields PASSED 167s tests/unit/v1/test_loaders.py::test_alias_mapping PASSED 167s tests/unit/v1/test_loaders.py::test_alias_mapping_with_load_or_dump PASSED 167s tests/unit/v1/test_loaders.py::test_alias_with_multiple_mappings PASSED 167s tests/unit/v1/test_loaders.py::test_fromdict PASSED 167s tests/unit/v1/test_loaders.py::test_fromdict_raises_on_unknown_json_fields PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_raises_on_unknown_keys_nested PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_raises_on_unknown_keys_with_key_case_auto PASSED 167s tests/unit/v1/test_loaders.py::test_fromdict_with_key_case_auto PASSED 167s tests/unit/v1/test_loaders.py::test_fromdict_with_nested_dataclass PASSED 167s tests/unit/v1/test_loaders.py::test_invalid_types_with_debug_mode_enabled PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_called_with_incorrect_type PASSED 167s tests/unit/v1/test_loaders.py::test_date_times_with_custom_pattern PASSED 167s tests/unit/v1/test_loaders.py::test_date_times_with_subclass_of_time_and_plus_or_minus_in_pattern PASSED 167s tests/unit/v1/test_loaders.py::test_date_times_with_custom_pattern_when_input_is_invalid PASSED 167s tests/unit/v1/test_loaders.py::test_date_times_with_custom_pattern_when_annotation_is_invalid PASSED 167s tests/unit/v1/test_loaders.py::test_aware_and_utc_date_times_with_custom_pattern PASSED 167s tests/unit/v1/test_loaders.py::test_tag_field_is_used_in_load_process PASSED 167s tests/unit/v1/test_loaders.py::test_e2e_process_with_init_only_fields PASSED 167s tests/unit/v1/test_loaders.py::test_bool[True-True] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[TrUe-True] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[y-True] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[T-True] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[1-True] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[False-False0] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[False-False1] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[testing-False] PASSED 167s tests/unit/v1/test_loaders.py::test_bool[0-False] PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_handles_identical_cased_keys PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_with_missing_fields PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_with_missing_fields_with_resolution PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_key_transform_with_multiple_alias PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_key_transform_with_alias PASSED 167s tests/unit/v1/test_loaders.py::test_set[input0-expected0-expectation0] PASSED 167s tests/unit/v1/test_loaders.py::test_set[TrUe-True-expectation1] PASSED 167s tests/unit/v1/test_loaders.py::test_set[input2-expected2-expectation2] PASSED 167s tests/unit/v1/test_loaders.py::test_set[input3-expected3-expectation3] PASSED 167s tests/unit/v1/test_loaders.py::test_frozenset[input0-expected0-expectation0] PASSED 167s tests/unit/v1/test_loaders.py::test_frozenset[TrUe-True-expectation1] PASSED 167s tests/unit/v1/test_loaders.py::test_frozenset[input2-expected2-expectation2] PASSED 167s tests/unit/v1/test_loaders.py::test_frozenset[input3-expected3-expectation3] PASSED 167s tests/unit/v1/test_loaders.py::test_literal[testing-expectation0] PASSED 167s tests/unit/v1/test_loaders.py::test_literal[e1-expectation1] PASSED 167s tests/unit/v1/test_loaders.py::test_literal[0-expectation2] PASSED 167s tests/unit/v1/test_loaders.py::test_literal_recursive PASSED 167s tests/unit/v1/test_loaders.py::test_union_recursive PASSED 167s tests/unit/v1/test_loaders.py::test_multiple_union PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[True-True] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[None-None] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[TrUe-True] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[y-True] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[T-True] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[F-False] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[On-True] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[OFF-False] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[1-True] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[False-False] PASSED 167s tests/unit/v1/test_loaders.py::test_annotated[0-False] PASSED 167s tests/unit/v1/test_loaders.py::test_uuid[12345678-1234-1234-1234-1234567abcde] PASSED 167s tests/unit/v1/test_loaders.py::test_uuid[{12345678-1234-5678-1234-567812345678}] PASSED 167s tests/unit/v1/test_loaders.py::test_uuid[12345678123456781234567812345678] PASSED 167s tests/unit/v1/test_loaders.py::test_uuid[urn:uuid:12345678-1234-5678-1234-567812345678] PASSED 167s tests/unit/v1/test_loaders.py::test_optional[testing-expectation0-testing] PASSED 167s tests/unit/v1/test_loaders.py::test_optional[False-expectation1-False] PASSED 167s tests/unit/v1/test_loaders.py::test_optional[0-expectation2-0] PASSED 167s tests/unit/v1/test_loaders.py::test_optional[None-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_union[testing-expectation0-testing] PASSED 167s tests/unit/v1/test_loaders.py::test_union[False-expectation1-False] PASSED 167s tests/unit/v1/test_loaders.py::test_union[0-expectation2-0] PASSED 167s tests/unit/v1/test_loaders.py::test_union[None-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_union[1.2-expectation4-1.2] PASSED 167s tests/unit/v1/test_loaders.py::test_forward_refs_are_resolved PASSED 167s tests/unit/v1/test_loaders.py::test_datetime[testing-expectation0] PASSED 167s tests/unit/v1/test_loaders.py::test_datetime[2020-01-02T01:02:03Z-expectation1] PASSED 167s tests/unit/v1/test_loaders.py::test_datetime[2010-12-31 23:59:59-04:00-expectation2] PASSED 167s tests/unit/v1/test_loaders.py::test_datetime[123456789-expectation3] PASSED 167s tests/unit/v1/test_loaders.py::test_datetime[True-expectation4] PASSED 167s tests/unit/v1/test_loaders.py::test_datetime[input5-expectation5] PASSED 167s tests/unit/v1/test_loaders.py::test_date[testing-expectation0] PASSED 167s tests/unit/v1/test_loaders.py::test_date[2020-01-02-expectation1] PASSED 167s tests/unit/v1/test_loaders.py::test_date[2010-12-31-expectation2] PASSED 167s tests/unit/v1/test_loaders.py::test_date[123456789-expectation3] PASSED 167s tests/unit/v1/test_loaders.py::test_date[True-expectation4] PASSED 167s tests/unit/v1/test_loaders.py::test_date[input5-expectation5] PASSED 167s tests/unit/v1/test_loaders.py::test_time[testing-expectation0] PASSED 167s tests/unit/v1/test_loaders.py::test_time[01:02:03Z-expectation1] PASSED 167s tests/unit/v1/test_loaders.py::test_time[23:59:59-04:00-expectation2] PASSED 167s tests/unit/v1/test_loaders.py::test_time[123456789-expectation3] PASSED 167s tests/unit/v1/test_loaders.py::test_time[True-expectation4] PASSED 167s tests/unit/v1/test_loaders.py::test_time[input5-expectation5] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[testing-expectation0-ValueError] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[23:59:59-04:00-expectation1-ValueError] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[32-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[32.7-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[32m-expectation4-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[2h32m-expectation5-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[4:13-expectation6-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[5hr34m56s-expectation7-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[1.2 minutes-expectation8-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[12345-expectation9-None] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[True-expectation10-TypeError] PASSED 167s tests/unit/v1/test_loaders.py::test_timedelta[input11-expectation11-None] PASSED 167s tests/unit/v1/test_loaders.py::test_list[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_list[input1-expectation1-None] PASSED 167s tests/unit/v1/test_loaders.py::test_list[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_list[input3-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_list[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_list[testing-expectation5-None] PASSED 167s tests/unit/v1/test_loaders.py::test_deque[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_deque[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input0-expectation0-expected0] PASSED 167s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_list_without_type_hinting[testing-expectation5-expected5] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple[input1-expectation1-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple[testing-expectation4-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input1-expectation1-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input3-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[input5-expectation5-expected5] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_optional_args[testing-expectation6-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input0-expectation0-expected0] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_without_type_hinting[testing-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input3-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input5-expectation5-expected5] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input6-expectation6-None] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[input7-expectation7-expected7] PASSED 167s tests/unit/v1/test_loaders.py::test_tuple_with_variadic_args[testing-expectation8-None] PASSED 167s tests/unit/v1/test_loaders.py::test_dict[None-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_dict[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_dict[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_dict[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_dict[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_dict[input5-expectation5-None] PASSED 167s tests/unit/v1/test_loaders.py::test_default_dict[None-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_default_dict[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_default_dict[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_default_dict[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_default_dict[input4-expectation4-None] PASSED 167s tests/unit/v1/test_loaders.py::test_default_dict[input5-expectation5-None] PASSED 167s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[None-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_dict_without_type_hinting[input5-expectation5-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input3-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input4-expectation4-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input5-expectation5-expected5] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict[input6-expectation6-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input0-expectation0-expected0] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_all_fields_optional[input5-expectation5-expected5] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input3-expectation3-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input4-expectation4-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input5-expectation5-expected5] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input6-expectation6-expected6] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_not_required[input7-expectation7-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input2-expectation2-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input3-expectation3-expected3] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input4-expectation4-expected4] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input5-expectation5-None] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input6-expectation6-expected6] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_with_one_field_required[input7-expectation7-expected7] PASSED 167s tests/unit/v1/test_loaders.py::test_typed_dict_recursive test_typed_dict_recursive..MyContainer(test1={'key_one': 'S1', 'key_two': {'key_one': 'S2', 'key_two': None}, 'key_four': [{'key_one': 'test', 'key_two': {'key_one': 'S5', 'key_two': {'key_one': 'S6', 'key_two': None}}}], 'key_three': {123: [{'key_one': 'S3', 'key_two': {'key_one': 'S4', 'key_two': None}, 'key_three': {}}]}}) 167s PASSED 167s tests/unit/v1/test_loaders.py::test_named_tuple[input0-expectation0-None] PASSED 167s tests/unit/v1/test_loaders.py::test_named_tuple[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input0-expectation0-None] SKIPPED 167s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input1-expectation1-expected1] SKIPPED 167s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input2-expectation2-None] SKIPPED 167s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input3-expectation3-None] SKIPPED 167s tests/unit/v1/test_loaders.py::test_named_tuple_with_input_dict[input4-expectation4-expected4] SKIPPED 167s tests/unit/v1/test_loaders.py::test_named_tuple_recursive test_named_tuple_recursive..MyContainer(test1=NT(field_one='S1', field_two=NT(field_one='S2', field_two=None, field_three={}, field_four=[]), field_three={123: [NT(field_one='S3', field_two=NT(field_one='S4', field_two=None, field_three={}, field_four=[]), field_three={}, field_four=[])]}, field_four=[NT(field_one='test', field_two=NT(field_one='S5', field_two=NT(field_one='S6', field_two=None, field_three={}, field_four=[]), field_three={}, field_four=[]), field_three={}, field_four=[])])) 167s PASSED 167s tests/unit/v1/test_loaders.py::test_named_tuple_without_type_hinting[input0-expectation0-expected0] PASSED 167s tests/unit/v1/test_loaders.py::test_named_tuple_without_type_hinting[input1-expectation1-expected1] PASSED 167s tests/unit/v1/test_loaders.py::test_named_tuple_without_type_hinting[input2-expectation2-expected2] PASSED 167s tests/unit/v1/test_loaders.py::test_load_with_inner_model_when_data_is_null PASSED 167s tests/unit/v1/test_loaders.py::test_load_with_inner_model_when_data_is_wrong_type PASSED 167s tests/unit/v1/test_loaders.py::test_load_with_python_3_11_regression PASSED 167s tests/unit/v1/test_loaders.py::test_with_self_referential_dataclasses_1 PASSED 167s tests/unit/v1/test_loaders.py::test_with_self_referential_dataclasses_2 PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path_with_skip_defaults PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_with_nested_object_alias_path_with_dump_alias_and_skip PASSED 167s tests/unit/v1/test_loaders.py::test_from_dict_with_multiple_nested_object_alias_paths PASSED 167s tests/unit/v1/test_loaders.py::test_auto_assign_tags_and_raise_on_unknown_keys PASSED 167s tests/unit/v1/test_loaders.py::test_auto_assign_tags_and_catch_all PASSED 167s tests/unit/v1/test_loaders.py::test_skip_if PASSED 167s tests/unit/v1/test_loaders.py::test_skip_defaults_if PASSED 167s tests/unit/v1/test_loaders.py::test_per_field_skip_if PASSED 167s tests/unit/v1/test_loaders.py::test_is_truthy_and_is_falsy_conditions PASSED 167s tests/unit/v1/test_loaders.py::test_skip_if_truthy_or_falsy PASSED 167s tests/unit/v1/test_loaders.py::test_invalid_condition_annotation_raises_error PASSED 167s tests/unit/v1/test_loaders.py::test_dataclass_in_union_when_tag_key_is_field PASSED 167s tests/unit/v1/test_loaders.py::test_sequence_and_mutable_sequence_are_supported PASSED 167s tests/unit/v1/test_loaders.py::test_dataclass_decorator_is_automatically_applied SKIPPED 167s tests/unit/v1/test_loaders.py::test_bytes_and_bytes_array_are_supported PASSED 167s tests/unit/v1/test_loaders.py::test_literal_string PASSED 167s tests/unit/v1/test_loaders.py::test_decimal PASSED 167s tests/unit/v1/test_loaders.py::test_path 167s -------------------------------- live log call --------------------------------- 167s dataclass_wizard.dumpers - [WARNING] Using default dumper, object=PosixPath('a/b/c'), type= 167s PASSED 167s tests/unit/v1/test_loaders.py::test_none PASSED 167s tests/unit/v1/test_loaders.py::test_enum PASSED 167s tests/unit/v1/test_loaders.py::test_str_and_int_enum PASSED 167s tests/unit/v1/test_union_as_type_alias_recursive.py::test_union_as_type_alias_recursive PASSED 167s 167s =============================== warnings summary =============================== 167s tests/unit/test_load.py:2581 167s /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/tests/unit/test_load.py:2581: SyntaxWarning: invalid escape sequence '\.' 167s with pytest.raises(TypeError, match=".*Test\.__init__\(\) missing 1 required positional argument: 'my_field'"): 167s 167s tests/unit/v1/test_loaders.py:3653 167s /tmp/autopkgtest.z9v3sm/autopkgtest_tmp/build/tests/unit/v1/test_loaders.py:3653: SyntaxWarning: invalid escape sequence '\.' 167s with pytest.raises(TypeError, match=".*Test\.__init__\(\) missing 1 required positional argument: 'my_field'"): 167s 167s tests/unit/test_bases_meta.py: 6 warnings 167s tests/unit/test_dump.py: 20 warnings 167s tests/unit/test_load.py: 54 warnings 167s tests/unit/test_load_with_future_import.py: 28 warnings 167s tests/unit/test_wizard_mixins.py: 5 warnings 167s tests/unit/v1/test_loaders.py: 264 warnings 167s tests/unit/v1/test_union_as_type_alias_recursive.py: 1 warning 167s /usr/lib/python3/dist-packages/dataclass_wizard/bases_meta.py:135: DeprecationWarning: Deprecated Meta setting debug_enabled (Use `v1_debug` instead). 167s show_deprecation_warning( 167s 167s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 167s = 656 passed, 8 skipped, 11 deselected, 6 xfailed, 4 xpassed, 380 warnings in 1.40s = 167s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 167s make: *** [/tmp/_46NkNZSLo/run:4: pybuild-autopkgtest] Error 25 167s pybuild-autopkgtest: error: /tmp/_46NkNZSLo/run pybuild-autopkgtest returned exit code 2 168s autopkgtest [12:23:02]: test pybuild-autopkgtest: -----------------------] 168s autopkgtest [12:23:02]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 168s pybuild-autopkgtest FAIL non-zero exit status 25 169s autopkgtest [12:23:03]: @@@@@@@@@@@@@@@@@@@@ summary 169s pybuild-autopkgtest FAIL non-zero exit status 25