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