0s autopkgtest [18:36:45]: starting date and time: 2026-01-23 18:36:45+0000 0s autopkgtest [18:36:45]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [18:36:45]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.bf64c2b0/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade python-djantic --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.14.2-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-s390x-7.secgroup --name adt-resolute-s390x-python-djantic-20260123-183645-juju-7f2275-prod-proposed-migration-environment-15-5f93126b-c0fd-4b63-9b70-f44c68663094 --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-s390x-python-djantic-20260123-183645-juju-7f2275-prod-proposed-migration-environment-15-5f93126b-c0fd-4b63-9b70-f44c68663094 from image adt/ubuntu-resolute-s390x-server-20260123.img (UUID 5f2e306c-5dfc-4ef6-8be2-414f657c7562)... 146s autopkgtest [18:39:11]: testbed dpkg architecture: s390x 146s autopkgtest [18:39:11]: testbed apt version: 3.1.13 147s autopkgtest [18:39:12]: @@@@@@@@@@@@@@@@@@@@ test bed setup 147s autopkgtest [18:39:12]: testbed release detected to be: None 149s autopkgtest [18:39:14]: updating testbed package index (apt update) 149s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 149s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 149s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 149s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 149s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [96.9 kB] 149s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1011 kB] 150s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 150s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.6 kB] 150s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [113 kB] 150s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [833 kB] 150s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [9152 B] 151s Fetched 2214 kB in 2s (1244 kB/s) 155s Reading package lists... 157s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 157s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 157s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 157s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 161s Reading package lists... 161s Reading package lists... 163s Building dependency tree... 163s Reading state information... 164s Calculating upgrade... 165s The following packages were automatically installed and are no longer required: 165s python3.13 python3.13-minimal 165s Use 'sudo apt autoremove' to remove them. 165s The following NEW packages will be installed: 165s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 165s The following packages will be upgraded: 165s libplymouth5 libpython3-stdlib libtasn1-6 plymouth 165s plymouth-theme-ubuntu-text python3 python3-gdbm python3-jaraco.context 165s python3-minimal 166s 9 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 166s Need to get 7066 kB of archives. 166s After this operation, 24.3 MB of additional disk space will be used. 166s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-minimal s390x 3.14.2-1 [917 kB] 166s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.2-1 [2510 kB] 166s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-minimal s390x 3.14.2-1 [28.2 kB] 166s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3 s390x 3.14.2-1 [22.9 kB] 166s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x libpython3.14-stdlib s390x 3.14.2-1 [2373 kB] 166s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.2-1 [816 kB] 166s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x libpython3-stdlib s390x 3.14.2-1 [10.9 kB] 166s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x libtasn1-6 s390x 4.21.0-2 [48.6 kB] 166s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libplymouth5 s390x 24.004.60+git20250831.4a3c171d-0ubuntu5 [159 kB] 166s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x plymouth-theme-ubuntu-text s390x 24.004.60+git20250831.4a3c171d-0ubuntu5 [10.2 kB] 166s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x plymouth s390x 24.004.60+git20250831.4a3c171d-0ubuntu5 [152 kB] 166s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-gdbm s390x 3.14.2-1 [11.1 kB] 166s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x python3-jaraco.context all 6.0.1-2 [8198 B] 169s dpkg-preconfigure: unable to re-open stdin: No such file or directory 169s Fetched 7066 kB in 1s (6329 kB/s) 170s Selecting previously unselected package libpython3.14-minimal:s390x. 174s (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 ... 87685 files and directories currently installed.) 174s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_s390x.deb ... 174s Unpacking libpython3.14-minimal:s390x (3.14.2-1) ... 176s Selecting previously unselected package python3.14-minimal. 176s Preparing to unpack .../python3.14-minimal_3.14.2-1_s390x.deb ... 176s Unpacking python3.14-minimal (3.14.2-1) ... 177s Setting up libpython3.14-minimal:s390x (3.14.2-1) ... 177s Setting up python3.14-minimal (3.14.2-1) ... 183s (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 ... 88027 files and directories currently installed.) 183s Preparing to unpack .../python3-minimal_3.14.2-1_s390x.deb ... 184s Unpacking python3-minimal (3.14.2-1) over (3.13.9-3) ... 185s Setting up python3-minimal (3.14.2-1) ... 186s (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 ... 88027 files and directories currently installed.) 186s Preparing to unpack .../0-python3_3.14.2-1_s390x.deb ... 187s running python pre-rtupdate hooks for python3.14... 187s Unpacking python3 (3.14.2-1) over (3.13.9-3) ... 188s Selecting previously unselected package libpython3.14-stdlib:s390x. 188s Preparing to unpack .../1-libpython3.14-stdlib_3.14.2-1_s390x.deb ... 188s Unpacking libpython3.14-stdlib:s390x (3.14.2-1) ... 191s Selecting previously unselected package python3.14. 191s Preparing to unpack .../2-python3.14_3.14.2-1_s390x.deb ... 191s Unpacking python3.14 (3.14.2-1) ... 192s Preparing to unpack .../3-libpython3-stdlib_3.14.2-1_s390x.deb ... 192s Unpacking libpython3-stdlib:s390x (3.14.2-1) over (3.13.9-3) ... 193s Preparing to unpack .../4-libtasn1-6_4.21.0-2_s390x.deb ... 194s Unpacking libtasn1-6:s390x (4.21.0-2) over (4.20.0-2ubuntu1) ... 195s Preparing to unpack .../5-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu5_s390x.deb ... 195s Unpacking libplymouth5:s390x (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 196s Preparing to unpack .../6-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu5_s390x.deb ... 197s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 198s Preparing to unpack .../7-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu5_s390x.deb ... 198s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) over (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 201s Preparing to unpack .../8-python3-gdbm_3.14.2-1_s390x.deb ... 201s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-3) ... 201s Preparing to unpack .../9-python3-jaraco.context_6.0.1-2_all.deb ... 202s Unpacking python3-jaraco.context (6.0.1-2) over (6.0.1-1build1) ... 203s Setting up libpython3.14-stdlib:s390x (3.14.2-1) ... 203s Setting up libplymouth5:s390x (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 203s Setting up libtasn1-6:s390x (4.21.0-2) ... 203s Setting up python3.14 (3.14.2-1) ... 209s Setting up libpython3-stdlib:s390x (3.14.2-1) ... 210s Setting up python3-gdbm (3.14.2-1) ... 210s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 210s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 211s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 213s Setting up python3 (3.14.2-1) ... 214s running python rtupdate hooks for python3.14... 214s running python post-rtupdate hooks for python3.14... 214s Setting up python3-jaraco.context (6.0.1-2) ... 216s Processing triggers for libc-bin (2.42-2ubuntu4) ... 216s Processing triggers for systemd (259-1ubuntu2) ... 216s Processing triggers for man-db (2.13.1-1) ... 228s Processing triggers for initramfs-tools (0.150ubuntu7) ... 228s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 257s Using config file '/etc/zipl.conf' 257s Building bootmap in '/boot' 257s Adding IPL section 'ubuntu' (default) 258s Preparing boot device: vda. 258s Done. 258s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu5) ... 259s Processing triggers for initramfs-tools (0.150ubuntu7) ... 259s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 278s Using config file '/etc/zipl.conf' 278s Building bootmap in '/boot' 278s Adding IPL section 'ubuntu' (default) 278s Preparing boot device: vda. 278s Done. 279s autopkgtest [18:41:24]: upgrading testbed (apt dist-upgrade and autopurge) 279s Reading package lists... 280s Building dependency tree... 280s Reading state information... 281s Calculating upgrade... 281s The following packages were automatically installed and are no longer required: 281s python3.13 python3.13-minimal 281s Use 'sudo apt autoremove' to remove them. 282s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 282s Reading package lists... 282s Building dependency tree... 282s Reading state information... 283s Solving dependencies... 284s The following packages will be REMOVED: 284s python3.13* python3.13-minimal* 285s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 285s After this operation, 8012 kB disk space will be freed. 285s (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 ... 88454 files and directories currently installed.) 285s Removing python3.13 (3.13.11-1) ... 286s Removing python3.13-minimal (3.13.11-1) ... 291s Processing triggers for man-db (2.13.1-1) ... 293s Processing triggers for systemd (259-1ubuntu2) ... 293s (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 ... 88427 files and directories currently installed.) 293s Purging configuration files for python3.13-minimal (3.13.11-1) ... 294s autopkgtest [18:41:39]: rebooting testbed after setup commands that affected boot 350s autopkgtest [18:42:35]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP Mon Jan 12 15:39:23 UTC 2026 354s autopkgtest [18:42:39]: @@@@@@@@@@@@@@@@@@@@ apt-source python-djantic 358s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (dsc) [2588 B] 358s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (tar) [54.6 kB] 358s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (diff) [4336 B] 360s gpgv: Signature made Thu Feb 20 07:32:29 2025 UTC 360s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 360s gpgv: issuer "tchet@debian.org" 360s gpgv: Can't check signature: No public key 360s dpkg-source: warning: cannot verify inline signature for ./python-djantic_0.7.0-6.dsc: no acceptable signature found 360s autopkgtest [18:42:45]: testing package python-djantic version 0.7.0-6 361s autopkgtest [18:42:46]: build not needed 361s autopkgtest [18:42:46]: test upstream: preparing testbed 362s Reading package lists... 363s Building dependency tree... 363s Reading state information... 363s Solving dependencies... 365s The following NEW packages will be installed: 365s libdeflate0 libfreetype6 libgomp1 libgraphite2-3 libharfbuzz0b 365s libimagequant0 libjbig0 libjpeg-turbo8 libjpeg8 liblcms2-2 libopenjp2-7 365s libpq5 libraqm0 libsharpyuv0 libtiff6 libwebp7 libwebpdemux2 libwebpmux3 365s python-djantic-doc python3-all python3-annotated-types python3-asgiref 365s python3-django python3-djantic python3-dnspython python3-email-validator 365s python3-factory-boy python3-fake-factory python3-iniconfig python3-pil 365s python3-pluggy python3-psycopg2 python3-pydantic python3-pydantic-core 365s python3-pytest python3-pytest-django python3-sqlparse 365s python3-typing-inspection python3.13 python3.13-minimal 365s 0 upgraded, 40 newly installed, 0 to remove and 0 not upgraded. 365s Need to get 15.0 MB of archives. 365s After this operation, 75.7 MB of additional disk space will be used. 365s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x python3.13-minimal s390x 3.13.11-1 [2405 kB] 365s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x python3.13 s390x 3.13.11-1 [758 kB] 366s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libdeflate0 s390x 1.23-2 [46.0 kB] 366s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libfreetype6 s390x 2.14.1+dfsg-2 [443 kB] 366s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-11ubuntu1 [154 kB] 366s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x libgraphite2-3 s390x 1.3.14-11ubuntu1 [80.5 kB] 366s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x libharfbuzz0b s390x 12.3.0-4 [569 kB] 366s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x libimagequant0 s390x 2.18.0-1build1 [43.3 kB] 366s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libjpeg-turbo8 s390x 2.1.5-4ubuntu2 [147 kB] 366s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x libjpeg8 s390x 8c-2ubuntu11 [2146 B] 366s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x liblcms2-2 s390x 2.17-1 [176 kB] 366s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x libpq5 s390x 18.1-2 [157 kB] 366s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x libraqm0 s390x 0.10.3-1 [15.6 kB] 366s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x libsharpyuv0 s390x 1.5.0-0.1build1 [16.6 kB] 366s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x libjbig0 s390x 2.1-6.1ubuntu3 [32.8 kB] 366s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x libwebp7 s390x 1.5.0-0.1build1 [227 kB] 366s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x libtiff6 s390x 4.7.0-3ubuntu3 [222 kB] 366s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x libwebpdemux2 s390x 1.5.0-0.1build1 [12.5 kB] 366s Get:19 http://ftpmaster.internal/ubuntu resolute/main s390x libwebpmux3 s390x 1.5.0-0.1build1 [25.7 kB] 366s Get:20 http://ftpmaster.internal/ubuntu resolute/universe s390x python-djantic-doc all 0.7.0-6 [492 kB] 366s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-all s390x 3.14.2-1 [890 B] 366s Get:22 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-annotated-types all 0.7.0-1 [19.4 kB] 366s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x python3-asgiref all 3.11.0-1 [25.2 kB] 366s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x python3-sqlparse all 0.5.4-1 [34.3 kB] 366s Get:25 http://ftpmaster.internal/ubuntu resolute/main s390x python3-django all 3:5.2.9-0ubuntu2 [3038 kB] 366s Get:26 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pydantic-core s390x 2.41.5-2 [2593 kB] 367s Get:27 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-typing-inspection all 0.4.2-1 [13.1 kB] 367s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 367s Get:29 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-email-validator all 2.2.0-1 [28.5 kB] 367s Get:30 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pydantic s390x 2.12.5-2 [312 kB] 367s Get:31 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-djantic all 0.7.0-6 [9454 B] 367s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x libopenjp2-7 s390x 2.5.4-1 [208 kB] 367s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x python3-pil s390x 12.0.0-1ubuntu1 [540 kB] 367s Get:34 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-fake-factory all 39.0.0-1 [1455 kB] 367s Get:35 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-factory-boy all 3.3.3-1build1 [35.9 kB] 367s Get:36 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-2 [6962 B] 367s Get:37 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-2 [21.1 kB] 367s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x python3-psycopg2 s390x 2.9.11-1 [177 kB] 367s Get:39 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 9.0.2-2 [277 kB] 367s Get:40 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest-django all 4.11.1-2 [21.8 kB] 369s Fetched 15.0 MB in 2s (7223 kB/s) 369s Selecting previously unselected package python3.13-minimal. 372s (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 ... 88429 files and directories currently installed.) 372s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_s390x.deb ... 372s Unpacking python3.13-minimal (3.13.11-1) ... 372s Selecting previously unselected package python3.13. 372s Preparing to unpack .../01-python3.13_3.13.11-1_s390x.deb ... 372s Unpacking python3.13 (3.13.11-1) ... 372s Selecting previously unselected package libdeflate0:s390x. 372s Preparing to unpack .../02-libdeflate0_1.23-2_s390x.deb ... 372s Unpacking libdeflate0:s390x (1.23-2) ... 372s Selecting previously unselected package libfreetype6:s390x. 372s Preparing to unpack .../03-libfreetype6_2.14.1+dfsg-2_s390x.deb ... 372s Unpacking libfreetype6:s390x (2.14.1+dfsg-2) ... 372s Selecting previously unselected package libgomp1:s390x. 372s Preparing to unpack .../04-libgomp1_15.2.0-11ubuntu1_s390x.deb ... 372s Unpacking libgomp1:s390x (15.2.0-11ubuntu1) ... 372s Selecting previously unselected package libgraphite2-3:s390x. 372s Preparing to unpack .../05-libgraphite2-3_1.3.14-11ubuntu1_s390x.deb ... 372s Unpacking libgraphite2-3:s390x (1.3.14-11ubuntu1) ... 373s Selecting previously unselected package libharfbuzz0b:s390x. 373s Preparing to unpack .../06-libharfbuzz0b_12.3.0-4_s390x.deb ... 373s Unpacking libharfbuzz0b:s390x (12.3.0-4) ... 373s Selecting previously unselected package libimagequant0:s390x. 373s Preparing to unpack .../07-libimagequant0_2.18.0-1build1_s390x.deb ... 373s Unpacking libimagequant0:s390x (2.18.0-1build1) ... 373s Selecting previously unselected package libjpeg-turbo8:s390x. 373s Preparing to unpack .../08-libjpeg-turbo8_2.1.5-4ubuntu2_s390x.deb ... 373s Unpacking libjpeg-turbo8:s390x (2.1.5-4ubuntu2) ... 373s Selecting previously unselected package libjpeg8:s390x. 373s Preparing to unpack .../09-libjpeg8_8c-2ubuntu11_s390x.deb ... 373s Unpacking libjpeg8:s390x (8c-2ubuntu11) ... 373s Selecting previously unselected package liblcms2-2:s390x. 373s Preparing to unpack .../10-liblcms2-2_2.17-1_s390x.deb ... 373s Unpacking liblcms2-2:s390x (2.17-1) ... 373s Selecting previously unselected package libpq5:s390x. 373s Preparing to unpack .../11-libpq5_18.1-2_s390x.deb ... 373s Unpacking libpq5:s390x (18.1-2) ... 373s Selecting previously unselected package libraqm0:s390x. 373s Preparing to unpack .../12-libraqm0_0.10.3-1_s390x.deb ... 373s Unpacking libraqm0:s390x (0.10.3-1) ... 373s Selecting previously unselected package libsharpyuv0:s390x. 373s Preparing to unpack .../13-libsharpyuv0_1.5.0-0.1build1_s390x.deb ... 373s Unpacking libsharpyuv0:s390x (1.5.0-0.1build1) ... 373s Selecting previously unselected package libjbig0:s390x. 373s Preparing to unpack .../14-libjbig0_2.1-6.1ubuntu3_s390x.deb ... 373s Unpacking libjbig0:s390x (2.1-6.1ubuntu3) ... 373s Selecting previously unselected package libwebp7:s390x. 373s Preparing to unpack .../15-libwebp7_1.5.0-0.1build1_s390x.deb ... 373s Unpacking libwebp7:s390x (1.5.0-0.1build1) ... 374s Selecting previously unselected package libtiff6:s390x. 374s Preparing to unpack .../16-libtiff6_4.7.0-3ubuntu3_s390x.deb ... 374s Unpacking libtiff6:s390x (4.7.0-3ubuntu3) ... 374s Selecting previously unselected package libwebpdemux2:s390x. 374s Preparing to unpack .../17-libwebpdemux2_1.5.0-0.1build1_s390x.deb ... 374s Unpacking libwebpdemux2:s390x (1.5.0-0.1build1) ... 374s Selecting previously unselected package libwebpmux3:s390x. 374s Preparing to unpack .../18-libwebpmux3_1.5.0-0.1build1_s390x.deb ... 374s Unpacking libwebpmux3:s390x (1.5.0-0.1build1) ... 374s Selecting previously unselected package python-djantic-doc. 374s Preparing to unpack .../19-python-djantic-doc_0.7.0-6_all.deb ... 374s Unpacking python-djantic-doc (0.7.0-6) ... 374s Selecting previously unselected package python3-all. 375s Preparing to unpack .../20-python3-all_3.14.2-1_s390x.deb ... 375s Unpacking python3-all (3.14.2-1) ... 375s Selecting previously unselected package python3-annotated-types. 375s Preparing to unpack .../21-python3-annotated-types_0.7.0-1_all.deb ... 375s Unpacking python3-annotated-types (0.7.0-1) ... 375s Selecting previously unselected package python3-asgiref. 375s Preparing to unpack .../22-python3-asgiref_3.11.0-1_all.deb ... 375s Unpacking python3-asgiref (3.11.0-1) ... 375s Selecting previously unselected package python3-sqlparse. 375s Preparing to unpack .../23-python3-sqlparse_0.5.4-1_all.deb ... 375s Unpacking python3-sqlparse (0.5.4-1) ... 375s Selecting previously unselected package python3-django. 375s Preparing to unpack .../24-python3-django_3%3a5.2.9-0ubuntu2_all.deb ... 375s Unpacking python3-django (3:5.2.9-0ubuntu2) ... 378s Selecting previously unselected package python3-pydantic-core. 378s Preparing to unpack .../25-python3-pydantic-core_2.41.5-2_s390x.deb ... 378s Unpacking python3-pydantic-core (2.41.5-2) ... 378s Selecting previously unselected package python3-typing-inspection. 378s Preparing to unpack .../26-python3-typing-inspection_0.4.2-1_all.deb ... 378s Unpacking python3-typing-inspection (0.4.2-1) ... 379s Selecting previously unselected package python3-dnspython. 379s Preparing to unpack .../27-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 379s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 379s Selecting previously unselected package python3-email-validator. 379s Preparing to unpack .../28-python3-email-validator_2.2.0-1_all.deb ... 379s Unpacking python3-email-validator (2.2.0-1) ... 379s Selecting previously unselected package python3-pydantic. 379s Preparing to unpack .../29-python3-pydantic_2.12.5-2_s390x.deb ... 379s Unpacking python3-pydantic (2.12.5-2) ... 379s Selecting previously unselected package python3-djantic. 379s Preparing to unpack .../30-python3-djantic_0.7.0-6_all.deb ... 379s Unpacking python3-djantic (0.7.0-6) ... 379s Selecting previously unselected package libopenjp2-7:s390x. 379s Preparing to unpack .../31-libopenjp2-7_2.5.4-1_s390x.deb ... 379s Unpacking libopenjp2-7:s390x (2.5.4-1) ... 379s Selecting previously unselected package python3-pil:s390x. 379s Preparing to unpack .../32-python3-pil_12.0.0-1ubuntu1_s390x.deb ... 379s Unpacking python3-pil:s390x (12.0.0-1ubuntu1) ... 380s Selecting previously unselected package python3-fake-factory. 380s Preparing to unpack .../33-python3-fake-factory_39.0.0-1_all.deb ... 380s Unpacking python3-fake-factory (39.0.0-1) ... 381s Selecting previously unselected package python3-factory-boy. 381s Preparing to unpack .../34-python3-factory-boy_3.3.3-1build1_all.deb ... 381s Unpacking python3-factory-boy (3.3.3-1build1) ... 381s Selecting previously unselected package python3-iniconfig. 381s Preparing to unpack .../35-python3-iniconfig_2.1.0-2_all.deb ... 381s Unpacking python3-iniconfig (2.1.0-2) ... 381s Selecting previously unselected package python3-pluggy. 381s Preparing to unpack .../36-python3-pluggy_1.6.0-2_all.deb ... 381s Unpacking python3-pluggy (1.6.0-2) ... 381s Selecting previously unselected package python3-psycopg2. 381s Preparing to unpack .../37-python3-psycopg2_2.9.11-1_s390x.deb ... 381s Unpacking python3-psycopg2 (2.9.11-1) ... 381s Selecting previously unselected package python3-pytest. 381s Preparing to unpack .../38-python3-pytest_9.0.2-2_all.deb ... 381s Unpacking python3-pytest (9.0.2-2) ... 382s Selecting previously unselected package python3-pytest-django. 382s Preparing to unpack .../39-python3-pytest-django_4.11.1-2_all.deb ... 382s Unpacking python3-pytest-django (4.11.1-2) ... 382s Setting up libgraphite2-3:s390x (1.3.14-11ubuntu1) ... 382s Setting up liblcms2-2:s390x (2.17-1) ... 382s Setting up python3-iniconfig (2.1.0-2) ... 383s Setting up libsharpyuv0:s390x (1.5.0-0.1build1) ... 383s Setting up python3-pydantic-core (2.41.5-2) ... 384s Setting up python3-typing-inspection (0.4.2-1) ... 385s Setting up python-djantic-doc (0.7.0-6) ... 385s Setting up libpq5:s390x (18.1-2) ... 385s Setting up libdeflate0:s390x (1.23-2) ... 385s Setting up libgomp1:s390x (15.2.0-11ubuntu1) ... 385s Setting up libjbig0:s390x (2.1-6.1ubuntu3) ... 385s Setting up python3-annotated-types (0.7.0-1) ... 386s Setting up python3-sqlparse (0.5.4-1) ... 387s Setting up libfreetype6:s390x (2.14.1+dfsg-2) ... 387s Setting up libimagequant0:s390x (2.18.0-1build1) ... 387s Setting up python3-psycopg2 (2.9.11-1) ... 388s Setting up libjpeg-turbo8:s390x (2.1.5-4ubuntu2) ... 388s Setting up python3-pluggy (1.6.0-2) ... 388s Setting up libwebp7:s390x (1.5.0-0.1build1) ... 388s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 391s Setting up libopenjp2-7:s390x (2.5.4-1) ... 391s Setting up python3.13-minimal (3.13.11-1) ... 395s Setting up libharfbuzz0b:s390x (12.3.0-4) ... 395s Setting up python3-email-validator (2.2.0-1) ... 395s Setting up libwebpmux3:s390x (1.5.0-0.1build1) ... 395s Setting up python3-asgiref (3.11.0-1) ... 397s Setting up libjpeg8:s390x (8c-2ubuntu11) ... 397s Setting up python3-django (3:5.2.9-0ubuntu2) ... 408s Setting up python3.13 (3.13.11-1) ... 414s Setting up python3-pytest (9.0.2-2) ... 417s Setting up libwebpdemux2:s390x (1.5.0-0.1build1) ... 417s Setting up python3-all (3.14.2-1) ... 417s Setting up python3-pytest-django (4.11.1-2) ... 418s Setting up python3-pydantic (2.12.5-2) ... 422s Setting up libraqm0:s390x (0.10.3-1) ... 422s Setting up libtiff6:s390x (4.7.0-3ubuntu3) ... 422s Setting up python3-djantic (0.7.0-6) ... 422s Setting up python3-pil:s390x (12.0.0-1ubuntu1) ... 425s Setting up python3-fake-factory (39.0.0-1) ... 438s Setting up python3-factory-boy (3.3.3-1build1) ... 439s Processing triggers for systemd (259-1ubuntu2) ... 439s Processing triggers for man-db (2.13.1-1) ... 443s Processing triggers for libc-bin (2.42-2ubuntu4) ... 445s autopkgtest [18:44:10]: test upstream: [----------------------- 449s ============================= test session starts ============================== 449s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 449s cachedir: .pytest_cache 449s django: version: 5.2.9, settings: tests.testapp.settings (from ini) 449s rootdir: /tmp/autopkgtest.EyrkUn/autopkgtest_tmp 449s configfile: setup.cfg 449s plugins: typeguard-4.4.4, Faker-39.0.0, django-4.11.1 451s collecting ... collected 32 items / 4 deselected / 28 selected 451s 451s tests/test_fields.py::test_unhandled_field_type Creating test database for alias 'default'... 452s is currently unhandled, defaulting to str. 452s PASSED 452s tests/test_fields.py::test_custom_field PASSED 452s tests/test_fields.py::test_postgres_json_field PASSED 452s tests/test_fields.py::test_lazy_choice_field PASSED 452s tests/test_fields.py::test_enum_choices PASSED 452s tests/test_fields.py::test_enum_choices_generates_unique_enums PASSED 452s tests/test_fields.py::test_listing PASSED 452s tests/test_files.py::test_image_field_schema PASSED 452s tests/test_main.py::test_config_errors PASSED 452s tests/test_main.py::test_get_field_names PASSED 452s tests/test_queries.py::test_get_instance PASSED 452s tests/test_queries.py::test_get_instance_with_generic_foreign_key PASSED 452s tests/test_queries.py::test_get_queryset_with_reverse_one_to_one PASSED 452s tests/test_queries.py::test_get_queryset_with_foreign_key PASSED 452s tests/test_queries.py::test_get_queryset_with_reverse_foreign_key PASSED 452s tests/test_queries.py::test_get_queryset_with_generic_foreign_key PASSED 452s tests/test_relations.py::test_m2m PASSED 452s tests/test_relations.py::test_foreign_key PASSED 453s tests/test_relations.py::test_one_to_one PASSED 453s tests/test_relations.py::test_one_to_one_reverse PASSED 453s tests/test_relations.py::test_generic_relation PASSED 453s tests/test_relations.py::test_m2m_reverse PASSED 453s tests/test_schemas.py::test_description PASSED 453s tests/test_schemas.py::test_cache PASSED 453s tests/test_schemas.py::test_include_exclude PASSED 453s tests/test_schemas.py::test_json PASSED 453s tests/test_schemas.py::test_include_from_annotations PASSED 453s tests/test_schemas.py::test_by_alias_generator PASSEDDestroying test database for alias 'default'... 453s 453s 453s ============================= slowest 10 durations ============================= 453s 1.31s setup tests/test_fields.py::test_unhandled_field_type 453s 0.01s teardown tests/test_relations.py::test_generic_relation 453s 0.01s call tests/test_relations.py::test_m2m_reverse 453s 0.01s call tests/test_relations.py::test_m2m 453s 0.01s call tests/test_queries.py::test_get_queryset_with_reverse_foreign_key 453s 0.01s call tests/test_queries.py::test_get_queryset_with_reverse_one_to_one 453s 453s (4 durations < 0.005s hidden. Use -vv to show these durations.) 453s ======================= 28 passed, 4 deselected in 3.22s ======================= 457s ============================= test session starts ============================== 457s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 457s cachedir: .pytest_cache 457s django: version: 5.2.9, settings: tests.testapp.settings (from ini) 457s rootdir: /tmp/autopkgtest.EyrkUn/autopkgtest_tmp 457s configfile: setup.cfg 457s plugins: typeguard-4.4.4, Faker-39.0.0, django-4.11.1 459s collecting ... collected 32 items / 4 deselected / 28 selected 459s 459s tests/test_fields.py::test_unhandled_field_type Creating test database for alias 'default'... 460s is currently unhandled, defaulting to str. 460s PASSED 460s tests/test_fields.py::test_custom_field PASSED 460s tests/test_fields.py::test_postgres_json_field PASSED 460s tests/test_fields.py::test_lazy_choice_field PASSED 460s tests/test_fields.py::test_enum_choices PASSED 460s tests/test_fields.py::test_enum_choices_generates_unique_enums PASSED 460s tests/test_fields.py::test_listing PASSED 460s tests/test_files.py::test_image_field_schema PASSED 460s tests/test_main.py::test_config_errors PASSED 460s tests/test_main.py::test_get_field_names PASSED 460s tests/test_queries.py::test_get_instance PASSED 461s tests/test_queries.py::test_get_instance_with_generic_foreign_key FAILED 461s tests/test_queries.py::test_get_queryset_with_reverse_one_to_one FAILED 461s tests/test_queries.py::test_get_queryset_with_foreign_key FAILED 461s tests/test_queries.py::test_get_queryset_with_reverse_foreign_key FAILED 461s tests/test_queries.py::test_get_queryset_with_generic_foreign_key PASSED 461s tests/test_relations.py::test_m2m FAILED 461s tests/test_relations.py::test_foreign_key FAILED 461s tests/test_relations.py::test_one_to_one FAILED 461s tests/test_relations.py::test_one_to_one_reverse FAILED 462s tests/test_relations.py::test_generic_relation FAILED 463s tests/test_relations.py::test_m2m_reverse FAILED 463s tests/test_schemas.py::test_description PASSED 463s tests/test_schemas.py::test_cache PASSED 463s tests/test_schemas.py::test_include_exclude PASSED 463s tests/test_schemas.py::test_json PASSED 463s tests/test_schemas.py::test_include_from_annotations FAILED 463s tests/test_schemas.py::test_by_alias_generator PASSED 463s 463s =================================== FAILURES =================================== 463s __________________ test_get_instance_with_generic_foreign_key __________________ 463s 463s @pytest.mark.django_db 463s def test_get_instance_with_generic_foreign_key(): 463s 463s bookmark = Bookmark.objects.create(url="https://www.djangoproject.com/") 463s Tagged.objects.create(content_object=bookmark, slug="django") 463s 463s class TaggedSchema(ModelSchema): 463s class Config: 463s model = Tagged 463s 463s class BookmarkWithTaggedSchema(ModelSchema): 463s 463s tags: List[TaggedSchema] 463s 463s class Config: 463s model = Bookmark 463s 463s bookmark_with_tagged_schema = BookmarkWithTaggedSchema.from_django(bookmark) 463s 463s > assert bookmark_with_tagged_schema.dict() == { 463s "id": 1, 463s "tags": [ 463s { 463s 'content_object': 1, 463s "content_type": 20, 463s "id": 1, 463s "object_id": 1, 463s "slug": "django", 463s } 463s ], 463s "url": "https://www.djangoproject.com/", 463s } 463s E AssertionError: assert {'id': 1, 'ta...project.com/'} == {'id': 1, 'ta...project.com/'} 463s E 463s E Omitting 2 identical items, use -vv to show 463s E Differing items: 463s E {'tags': [{'id': 1}]} != {'tags': [{'content_object': 1, 'content_type': 20, 'id': 1, 'object_id': 1, ...}]} 463s E 463s E Full diff: 463s E {... 463s E 463s E ...Full output truncated (12 lines hidden), use '-vv' to show 463s 463s tests/test_queries.py:46: AssertionError 463s __________________ test_get_queryset_with_reverse_one_to_one ___________________ 463s 463s @pytest.mark.django_db 463s def test_get_queryset_with_reverse_one_to_one(): 463s """ 463s Test retrieving a Django queryset with reverse one-to-one relationships. 463s """ 463s user_data = [ 463s {"first_name": "Jordan", "email": "jordan@eremieff.com"}, 463s {"first_name": "Sara", "email": "sara@example.com"}, 463s ] 463s for kwargs in user_data: 463s user = User.objects.create(**kwargs) 463s Profile.objects.create(user=user, location="Australia") 463s 463s class UserSchema(ModelSchema): 463s class Config: 463s model = User 463s include = ["id", "email", "first_name", "profile"] 463s 463s users = User.objects.all() 463s user_schema_qs = UserSchema.from_django(users, many=True) 463s assert user_schema_qs == [ 463s { 463s "email": "jordan@eremieff.com", 463s "first_name": "Jordan", 463s "id": 1, 463s "profile": 1, 463s }, 463s {"email": "sara@example.com", "first_name": "Sara", "id": 2, "profile": 2}, 463s ] 463s 463s # Test when using a declared sub-model 463s class ProfileSchema(ModelSchema): 463s class Config: 463s model = Profile 463s include = ["id", "location"] 463s 463s class UserWithProfileSchema(ModelSchema): 463s 463s profile: ProfileSchema 463s 463s class Config: 463s model = User 463s exclude = ["created_at", "updated_at", "last_name"] 463s 463s users = User.objects.all() 463s 463s user_with_profile_schema_qs = UserWithProfileSchema.from_django(users, many=True) 463s > assert user_with_profile_schema_qs == [ 463s { 463s "email": "jordan@eremieff.com", 463s "first_name": "Jordan", 463s "id": 1, 463s "profile": {"id": 1, "location": "Australia"}, 463s }, 463s { 463s "email": "sara@example.com", 463s "first_name": "Sara", 463s "id": 2, 463s "profile": {"id": 2, "location": "Australia"}, 463s }, 463s ] 463s E AssertionError: assert [UserWithProf...example.com')] == [{'email': 'j...'Australia'}}] 463s E 463s E At index 0 diff: UserWithProfileSchema(profile=1, id=1, first_name='Jordan', email='jordan@eremieff.com') != {'email': 'jordan@eremieff.com', 'first_name': 'Jordan', 'id': 1, 'profile': {'id': 1, 'location': 'Australia'}} 463s E 463s E Full diff: 463s E [ 463s E + UserWithProfileSchema(profile=1, id=1, first_name='Jordan', email='jordan@eremieff.com'), 463s E + UserWithProfileSchema(profile=2, id=2, first_name='Sara', email='sara@example.com'),... 463s E 463s E ...Full output truncated (19 lines hidden), use '-vv' to show 463s 463s tests/test_queries.py:108: AssertionError 463s ______________________ test_get_queryset_with_foreign_key ______________________ 463s 463s @pytest.mark.django_db 463s def test_get_queryset_with_foreign_key(): 463s """ 463s Test retrieving a Django queryset with foreign-key relationships. 463s """ 463s 463s thread = Thread.objects.create(title="My thread topic") 463s thread2 = Thread.objects.create(title="Another topic") 463s for content in ("I agree.", "I disagree!", "lol"): 463s message_one = Message.objects.create(content=content, thread=thread) 463s Message.objects.create(content=content, thread=thread2) 463s 463s class MessageSchema(ModelSchema): 463s class Config: 463s model = Message 463s exclude = ["created_at"] 463s 463s schema = MessageSchema.from_django(message_one) 463s assert schema.dict() == {"id": 5, "content": "lol", "thread": 1} 463s 463s class ThreadSchema(ModelSchema): 463s class Config: 463s model = Thread 463s exclude = ["created_at"] 463s 463s class MessageWithThreadSchema(ModelSchema): 463s thread: ThreadSchema 463s 463s class Config: 463s model = Message 463s exclude = ["created_at"] 463s 463s schema = MessageWithThreadSchema.from_django(message_one) 463s > assert schema.dict() == { 463s "id": 5, 463s "content": "lol", 463s "thread": { 463s "messages": [{"id": 1}, {"id": 3}, {"id": 5}], 463s "id": 1, 463s "title": "My thread topic", 463s }, 463s } 463s E AssertionError: assert {'content': '..., 'thread': 1} == {'content': '...hread topic'}} 463s E 463s E Omitting 2 identical items, use -vv to show 463s E Differing items: 463s E {'thread': 1} != {'thread': {'id': 1, 'messages': [{'id': 1}, {'id': 3}, {'id': 5}], 'title': 'My thread topic'}} 463s E 463s E Full diff: 463s E {... 463s E 463s E ...Full output truncated (21 lines hidden), use '-vv' to show 463s 463s tests/test_queries.py:157: AssertionError 463s __________________ test_get_queryset_with_reverse_foreign_key __________________ 463s 463s @pytest.mark.django_db 463s def test_get_queryset_with_reverse_foreign_key(): 463s """ 463s Test retrieving a Django queryset with reverse foreign-key relationships. 463s """ 463s 463s thread = Thread.objects.create(title="My thread topic") 463s thread2 = Thread.objects.create(title="Another topic") 463s for content in ("I agree.", "I disagree!", "lol"): 463s Message.objects.create(content=content, thread=thread) 463s Message.objects.create(content=content, thread=thread2) 463s 463s threads = Thread.objects.all() 463s 463s class MessageSchema(ModelSchema): 463s class Config: 463s model = Message 463s include = ["id", "content"] 463s 463s class ThreadSchema(ModelSchema): 463s class Config: 463s model = Thread 463s 463s thread_schema_qs = ThreadSchema.from_django(threads, many=True) 463s thread_schemas = [t.dict() for t in thread_schema_qs] 463s assert thread_schemas == [ 463s { 463s "messages": [{"id": 2}, {"id": 4}, {"id": 6}], 463s "id": 2, 463s "title": "Another topic", 463s }, 463s { 463s "messages": [{"id": 1}, {"id": 3}, {"id": 5}], 463s "id": 1, 463s "title": "My thread topic", 463s }, 463s ] 463s 463s # Test when using a declared sub-model 463s class ThreadWithMessageListSchema(ModelSchema): 463s messages: List[MessageSchema] 463s 463s class Config: 463s model = Thread 463s exclude = ["created_at", "updated_at"] 463s 463s thread_with_message_list_schema_qs = ThreadWithMessageListSchema.from_django( 463s threads, many=True 463s ) 463s 463s > assert thread_with_message_list_schema_qs == [ 463s { 463s "messages": [ 463s {"id": 2, "content": "I agree."}, 463s {"id": 4, "content": "I disagree!"}, 463s {"id": 6, "content": "lol"}, 463s ], 463s "id": 2, 463s "title": "Another topic", 463s }, 463s { 463s "messages": [ 463s {"id": 1, "content": "I agree."}, 463s {"id": 3, "content": "I disagree!"}, 463s {"id": 5, "content": "lol"}, 463s ], 463s "id": 1, 463s "title": "My thread topic", 463s }, 463s ] 463s E AssertionError: assert [ThreadWithMe...hread topic')] == [{'id': 2, 'm...hread topic'}] 463s E 463s E At index 0 diff: ThreadWithMessageListSchema(messages=[{'id': 2}, {'id': 4}, {'id': 6}], id=2, title='Another topic') != {'messages': [{'id': 2, 'content': 'I agree.'}, {'id': 4, 'content': 'I disagree!'}, {'id': 6, 'content': 'lol'}], 'id': 2, 'title': 'Another topic'} 463s E 463s E Full diff: 463s E [ 463s E + ThreadWithMessageListSchema(messages=[{'id': 2}, {'id': 4}, {'id': 6}], id=2, title='Another topic'), 463s E + ThreadWithMessageListSchema(messages=[{'id': 1}, {'id': 3}, {'id': 5}], id=1, title='My thread topic'),... 463s E 463s E ...Full output truncated (37 lines hidden), use '-vv' to show 463s 463s tests/test_queries.py:218: AssertionError 463s ___________________________________ test_m2m ___________________________________ 463s 463s @pytest.mark.django_db 463s def test_m2m(): 463s """ 463s Test forward m2m relationships. 463s """ 463s 463s class ArticleSchema(ModelSchema): 463s class Config: 463s model = Article 463s 463s assert ArticleSchema.schema() == { 463s "title": "ArticleSchema", 463s "description": "A news article.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "headline": { 463s "title": "Headline", 463s "description": "headline", 463s "maxLength": 100, 463s "type": "string", 463s }, 463s "pub_date": { 463s "title": "Pub Date", 463s "description": "pub_date", 463s "type": "string", 463s "format": "date", 463s }, 463s "publications": { 463s "title": "Publications", 463s "description": "id", 463s "type": "array", 463s "items": { 463s "type": "object", 463s "additionalProperties": {"type": "integer"}, 463s }, 463s }, 463s }, 463s "required": ["headline", "pub_date", "publications"], 463s } 463s 463s class PublicationSchema(ModelSchema): 463s class Config: 463s model = Publication 463s 463s class ArticleWithPublicationListSchema(ModelSchema): 463s publications: List[PublicationSchema] 463s 463s class Config: 463s model = Article 463s 463s > assert ArticleWithPublicationListSchema.schema() == { 463s "title": "ArticleWithPublicationListSchema", 463s "description": "A news article.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "headline": { 463s "title": "Headline", 463s "description": "headline", 463s "maxLength": 100, 463s "type": "string", 463s }, 463s "pub_date": { 463s "title": "Pub Date", 463s "description": "pub_date", 463s "type": "string", 463s "format": "date", 463s }, 463s "publications": { 463s "title": "Publications", 463s "type": "array", 463s "items": {"$ref": "#/definitions/PublicationSchema"}, 463s }, 463s }, 463s "required": ["headline", "pub_date", "publications"], 463s "definitions": { 463s "PublicationSchema": { 463s "title": "PublicationSchema", 463s "description": "A news publication.", 463s "type": "object", 463s "properties": { 463s "article_set": { 463s "title": "Article Set", 463s "description": "id", 463s "type": "array", 463s "items": { 463s "type": "object", 463s "additionalProperties": {"type": "integer"}, 463s }, 463s }, 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "title": { 463s "title": "Title", 463s "description": "title", 463s "maxLength": 30, 463s "type": "string", 463s }, 463s }, 463s "required": ["title"], 463s } 463s }, 463s } 463s E AssertionError: assert {'description...tSchema', ...} == {'definitions...ations'], ...} 463s E 463s E Omitting 4 identical items, use -vv to show 463s E Differing items: 463s E {'properties': {'headline': {'description': 'headline', 'maxLength': 100, 'title': 'Headline', 'type': 'string'}, 'id'..., 'items': {'additionalProperties': {'type': 'integer'}, 'type': 'object'}, 'title': 'Publications', 'type': 'array'}}} != {'properties': {'headline': {'description': 'headline', 'maxLength': 100, 'title': 'Headline', 'type': 'string'}, 'id'...g'}, 'publications': {'items': {'$ref': '#/definitions/PublicationSchema'}, 'title': 'Publications', 'type': 'array'}}} 463s E Right contains 1 more item: 463s E {'defi... 463s E 463s E ...Full output truncated (94 lines hidden), use '-vv' to show 463s 463s tests/test_relations.py:74: AssertionError 463s _______________________________ test_foreign_key _______________________________ 463s 463s @pytest.mark.django_db 463s def test_foreign_key(): 463s """ 463s Test forward foreign-key relationships. 463s """ 463s 463s class ThreadSchema(ModelSchema): 463s class Config: 463s model = Thread 463s 463s class MessageSchema(ModelSchema): 463s class Config: 463s model = Message 463s 463s assert MessageSchema.schema() == { 463s "title": "MessageSchema", 463s "description": "A message posted in a thread.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "content": {"title": "Content", "description": "content", "type": "string"}, 463s "created_at": { 463s "title": "Created At", 463s "description": "created_at", 463s "type": "string", 463s "format": "date-time", 463s }, 463s "thread": {"title": "Thread", "description": "id", "type": "integer"}, 463s }, 463s "required": ["content", "created_at", "thread"], 463s } 463s 463s class MessageWithThreadSchema(ModelSchema): 463s 463s thread: ThreadSchema 463s 463s class Config: 463s model = Message 463s 463s > assert MessageWithThreadSchema.schema() == { 463s "title": "MessageWithThreadSchema", 463s "description": "A message posted in a thread.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "content": {"title": "Content", "description": "content", "type": "string"}, 463s "created_at": { 463s "title": "Created At", 463s "description": "created_at", 463s "type": "string", 463s "format": "date-time", 463s }, 463s "thread": {"$ref": "#/definitions/ThreadSchema"}, 463s }, 463s "required": ["content", "created_at", "thread"], 463s "definitions": { 463s "ThreadSchema": { 463s "title": "ThreadSchema", 463s "description": "A thread of messages.", 463s "type": "object", 463s "properties": { 463s "messages": { 463s "title": "Messages", 463s "description": "id", 463s "type": "array", 463s "items": { 463s "type": "object", 463s "additionalProperties": {"type": "integer"}, 463s }, 463s }, 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "title": { 463s "title": "Title", 463s "description": "title", 463s "maxLength": 30, 463s "type": "string", 463s }, 463s }, 463s "required": ["title"], 463s } 463s }, 463s } 463s E AssertionError: assert {'description...dSchema', ...} == {'definitions...thread'], ...} 463s E 463s E Omitting 4 identical items, use -vv to show 463s E Differing items: 463s E {'properties': {'content': {'description': 'content', 'title': 'Content', 'type': 'string'}, 'created_at': {'descripti...tion': 'id', 'title': 'Id', 'type': 'integer'}, 'thread': {'description': 'id', 'title': 'Thread', 'type': 'integer'}}} != {'properties': {'content': {'description': 'content', 'title': 'Content', 'type': 'string'}, 'created_at': {'descripti...ng'}, 'id': {'description': 'id', 'title': 'Id', 'type': 'integer'}, 'thread': {'$ref': '#/definitions/ThreadSchema'}}} 463s E Right contains 1 more item: 463s E {'defi... 463s E 463s E ...Full output truncated (86 lines hidden), use '-vv' to show 463s 463s tests/test_relations.py:181: AssertionError 463s _______________________________ test_one_to_one ________________________________ 463s 463s @pytest.mark.django_db 463s def test_one_to_one(): 463s """ 463s Test forward one-to-one relationships. 463s """ 463s 463s class UserSchema(ModelSchema): 463s class Config: 463s model = User 463s 463s class ProfileSchema(ModelSchema): 463s class Config: 463s model = Profile 463s 463s assert ProfileSchema.schema() == { 463s "title": "ProfileSchema", 463s "description": "A user's profile.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "user": {"title": "User", "description": "id", "type": "integer"}, 463s "website": { 463s "title": "Website", 463s "description": "website", 463s "default": "", 463s "maxLength": 200, 463s "type": "string", 463s }, 463s "location": { 463s "title": "Location", 463s "description": "location", 463s "default": "", 463s "maxLength": 100, 463s "type": "string", 463s }, 463s }, 463s "required": ["user"], 463s } 463s 463s class ProfileWithUserSchema(ModelSchema): 463s user: UserSchema 463s 463s class Config: 463s model = Profile 463s 463s > assert ProfileWithUserSchema.schema() == { 463s "title": "ProfileWithUserSchema", 463s "description": "A user's profile.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "user": {"$ref": "#/definitions/UserSchema"}, 463s "website": { 463s "title": "Website", 463s "description": "website", 463s "default": "", 463s "maxLength": 200, 463s "type": "string", 463s }, 463s "location": { 463s "title": "Location", 463s "description": "location", 463s "default": "", 463s "maxLength": 100, 463s "type": "string", 463s }, 463s }, 463s "required": ["user"], 463s "definitions": { 463s "UserSchema": { 463s "title": "UserSchema", 463s "description": "A user of the application.", 463s "type": "object", 463s "properties": { 463s "profile": { 463s "title": "Profile", 463s "description": "id", 463s "type": "integer", 463s }, 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "first_name": { 463s "title": "First Name", 463s "description": "first_name", 463s "maxLength": 50, 463s "type": "string", 463s }, 463s "last_name": { 463s "title": "Last Name", 463s "description": "last_name", 463s "maxLength": 50, 463s "type": "string", 463s }, 463s "email": { 463s "title": "Email", 463s "description": "email", 463s "maxLength": 254, 463s "type": "string", 463s }, 463s "created_at": { 463s "title": "Created At", 463s "description": "created_at", 463s "type": "string", 463s "format": "date-time", 463s }, 463s "updated_at": { 463s "title": "Updated At", 463s "description": "updated_at", 463s "type": "string", 463s "format": "date-time", 463s }, 463s }, 463s "required": ["first_name", "email", "created_at", "updated_at"], 463s } 463s }, 463s } 463s E AssertionError: assert {'description...rSchema', ...} == {'definitions...['user'], ...} 463s E 463s E Omitting 4 identical items, use -vv to show 463s E Differing items: 463s E {'properties': {'id': {'description': 'id', 'title': 'Id', 'type': 'integer'}, 'location': {'default': '', 'descriptio..., 'type': 'integer'}, 'website': {'default': '', 'description': 'website', 'maxLength': 200, 'title': 'Website', ...}}} != {'properties': {'id': {'description': 'id', 'title': 'Id', 'type': 'integer'}, 'location': {'default': '', 'descriptio...nitions/UserSchema'}, 'website': {'default': '', 'description': 'website', 'maxLength': 200, 'title': 'Website', ...}}} 463s E Right contains 1 more item: 463s E {'defi... 463s E 463s E ...Full output truncated (129 lines hidden), use '-vv' to show 463s 463s tests/test_relations.py:325: AssertionError 463s ___________________________ test_one_to_one_reverse ____________________________ 463s 463s @pytest.mark.django_db 463s def test_one_to_one_reverse(): 463s """ 463s Test reverse one-to-one relationships. 463s """ 463s 463s class ProfileSchema(ModelSchema): 463s class Config: 463s model = Profile 463s 463s class UserSchema(ModelSchema): 463s class Config: 463s model = User 463s 463s assert ProfileSchema.schema() == { 463s "title": "ProfileSchema", 463s "description": "A user's profile.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "user": {"title": "User", "description": "id", "type": "integer"}, 463s "website": { 463s "title": "Website", 463s "description": "website", 463s "default": "", 463s "maxLength": 200, 463s "type": "string", 463s }, 463s "location": { 463s "title": "Location", 463s "description": "location", 463s "default": "", 463s "maxLength": 100, 463s "type": "string", 463s }, 463s }, 463s "required": ["user"], 463s } 463s 463s class UserWithProfileSchema(ModelSchema): 463s profile: ProfileSchema 463s 463s class Config: 463s model = User 463s 463s > assert UserWithProfileSchema.schema() == { 463s "title": "UserWithProfileSchema", 463s "description": "A user of the application.", 463s "type": "object", 463s "properties": { 463s "profile": {"$ref": "#/definitions/ProfileSchema"}, 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "first_name": { 463s "title": "First Name", 463s "description": "first_name", 463s "maxLength": 50, 463s "type": "string", 463s }, 463s "last_name": { 463s "title": "Last Name", 463s "description": "last_name", 463s "maxLength": 50, 463s "type": "string", 463s }, 463s "email": { 463s "title": "Email", 463s "description": "email", 463s "maxLength": 254, 463s "type": "string", 463s }, 463s "created_at": { 463s "title": "Created At", 463s "description": "created_at", 463s "type": "string", 463s "format": "date-time", 463s }, 463s "updated_at": { 463s "title": "Updated At", 463s "description": "updated_at", 463s "type": "string", 463s "format": "date-time", 463s }, 463s }, 463s "required": ["profile", "first_name", "email", "created_at", "updated_at"], 463s "definitions": { 463s "ProfileSchema": { 463s "title": "ProfileSchema", 463s "description": "A user's profile.", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "user": {"title": "User", "description": "id", "type": "integer"}, 463s "website": { 463s "title": "Website", 463s "description": "website", 463s "default": "", 463s "maxLength": 200, 463s "type": "string", 463s }, 463s "location": { 463s "title": "Location", 463s "description": "location", 463s "default": "", 463s "maxLength": 100, 463s "type": "string", 463s }, 463s }, 463s "required": ["user"], 463s } 463s }, 463s } 463s E AssertionError: assert {'description...eSchema', ...} == {'definitions...ted_at'], ...} 463s E 463s E Omitting 3 identical items, use -vv to show 463s E Differing items: 463s E {'required': ['first_name', 'email', 'created_at', 'updated_at']} != {'required': ['profile', 'first_name', 'email', 'created_at', 'updated_at']} 463s E {'properties': {'created_at': {'description': 'created_at', 'format': 'date-time', 'title': 'Created At', 'type': 'str...th': 50, 'title': 'First Name', 'type': 'string'}, 'id': {'description': 'id', 'title': 'Id', 'type': 'integer'}, ...}} != {'properties': {'created_at': {'description': 'created_at', 'format': 'date-time', 'title': 'Created At', 'type': 'str...th': 50... 463s E 463s E ...Full output truncated (115 lines hidden), use '-vv' to show 463s 463s tests/test_relations.py:442: AssertionError 463s ____________________________ test_generic_relation _____________________________ 463s 463s @pytest.mark.django_db 463s def test_generic_relation(): 463s """ 463s Test generic foreign-key relationships. 463s """ 463s 463s class TaggedSchema(ModelSchema): 463s class Config: 463s model = Tagged 463s 463s assert TaggedSchema.schema() == { 463s "title": "TaggedSchema", 463s "description": "Tagged(id, slug, content_type, object_id)", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "slug": { 463s "title": "Slug", 463s "description": "slug", 463s "maxLength": 50, 463s "type": "string", 463s }, 463s "content_type": { 463s "title": "Content Type", 463s "description": "id", 463s "type": "integer", 463s }, 463s "object_id": { 463s "title": "Object Id", 463s "description": "object_id", 463s "type": "integer", 463s }, 463s "content_object": { 463s "title": "Content Object", 463s "description": "content_object", 463s "type": "integer", 463s }, 463s }, 463s "required": ["slug", "content_type", "object_id", "content_object"], 463s } 463s 463s > class BookmarkSchema(ModelSchema): 463s 463s tests/test_relations.py:551: 463s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 463s /usr/lib/python3/dist-packages/djantic/main.py:45: in __new__ 463s cls = super().__new__(mcs, name, bases, namespace) 463s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 463s /usr/lib/python3/dist-packages/pydantic/v1/main.py:221: in __new__ 463s inferred = ModelField.infer( 463s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:504: in infer 463s return cls( 463s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:434: in __init__ 463s self.prepare() 463s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:544: in prepare 463s self._set_default_and_type() 463s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 463s 463s self = ModelField(name='tags', type=UndefinedType, required=False, default=None) 463s 463s def _set_default_and_type(self) -> None: 463s """ 463s Set the default value, infer the type if needed and check if `None` value is valid. 463s """ 463s if self.default_factory is not None: 463s if self.type_ is Undefined: 463s raise errors_.ConfigError( 463s f'you need to set the type of field {self.name!r} when using `default_factory`' 463s ) 463s return 463s 463s default_value = self.get_default() 463s 463s if default_value is not None and self.type_ is Undefined: 463s self.type_ = default_value.__class__ 463s self.outer_type_ = self.type_ 463s self.annotation = self.type_ 463s 463s if self.type_ is Undefined: 463s > raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"') 463s E pydantic.v1.errors.ConfigError: unable to infer type for attribute "tags" 463s 463s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:576: ConfigError 463s _______________________________ test_m2m_reverse _______________________________ 463s 463s @pytest.mark.django_db 463s def test_m2m_reverse(): 463s class ExpertSchema(ModelSchema): 463s class Config: 463s model = Expert 463s 463s class CaseSchema(ModelSchema): 463s class Config: 463s model = Case 463s 463s assert ExpertSchema.schema() == { 463s "title": "ExpertSchema", 463s "description": "Expert(id, name)", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "name": { 463s "title": "Name", 463s "description": "name", 463s "maxLength": 128, 463s "type": "string", 463s }, 463s "cases": { 463s "title": "Cases", 463s "description": "id", 463s "type": "array", 463s "items": { 463s "type": "object", 463s "additionalProperties": {"type": "integer"}, 463s }, 463s }, 463s }, 463s "required": ["name", "cases"], 463s } 463s 463s assert CaseSchema.schema() == { 463s "title": "CaseSchema", 463s "description": "Case(id, name, details)", 463s "type": "object", 463s "properties": { 463s "related_experts": { 463s "title": "Related Experts", 463s "description": "id", 463s "type": "array", 463s "items": { 463s "type": "object", 463s "additionalProperties": {"type": "integer"}, 463s }, 463s }, 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "name": { 463s "title": "Name", 463s "description": "name", 463s "maxLength": 128, 463s "type": "string", 463s }, 463s "details": {"title": "Details", "description": "details", "type": "string"}, 463s }, 463s "required": ["name", "details"], 463s } 463s case = Case.objects.create(name="My Case", details="Some text data.") 463s expert = Expert.objects.create(name="My Expert") 463s case_schema = CaseSchema.from_django(case) 463s expert_schema = ExpertSchema.from_django(expert) 463s assert case_schema.dict() == { 463s "related_experts": [], 463s "id": 1, 463s "name": "My Case", 463s "details": "Some text data.", 463s } 463s assert expert_schema.dict() == {"id": 1, "name": "My Expert", "cases": []} 463s 463s expert.cases.add(case) 463s case_schema = CaseSchema.from_django(case) 463s expert_schema = ExpertSchema.from_django(expert) 463s assert case_schema.dict() == { 463s "related_experts": [{"id": 1}], 463s "id": 1, 463s "name": "My Case", 463s "details": "Some text data.", 463s } 463s assert expert_schema.dict() == {"id": 1, "name": "My Expert", "cases": [{"id": 1}]} 463s 463s class CustomExpertSchema(ModelSchema): 463s """Custom schema""" 463s 463s name: Optional[str] 463s 463s class Config: 463s model = Expert 463s 463s class CaseSchema(ModelSchema): 463s related_experts: List[CustomExpertSchema] 463s 463s class Config: 463s model = Case 463s 463s > assert CaseSchema.schema() == { 463s "title": "CaseSchema", 463s "description": "Case(id, name, details)", 463s "type": "object", 463s "properties": { 463s "related_experts": { 463s "title": "Related Experts", 463s "type": "array", 463s "items": {"$ref": "#/definitions/CustomExpertSchema"}, 463s }, 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "name": { 463s "title": "Name", 463s "description": "name", 463s "maxLength": 128, 463s "type": "string", 463s }, 463s "details": {"title": "Details", "description": "details", "type": "string"}, 463s }, 463s "required": ["related_experts", "name", "details"], 463s "definitions": { 463s "CustomExpertSchema": { 463s "title": "CustomExpertSchema", 463s "description": "Custom schema", 463s "type": "object", 463s "properties": { 463s "id": {"title": "Id", "description": "id", "type": "integer"}, 463s "name": {"title": "Name", "type": "string"}, 463s "cases": { 463s "title": "Cases", 463s "description": "id", 463s "type": "array", 463s "items": { 463s "type": "object", 463s "additionalProperties": {"type": "integer"}, 463s }, 463s }, 463s }, 463s "required": ["cases"], 463s } 463s }, 463s } 463s E AssertionError: assert {'description...eSchema', ...} == {'definitions...etails'], ...} 463s E 463s E Omitting 3 identical items, use -vv to show 463s E Differing items: 463s E {'required': ['name', 'details']} != {'required': ['related_experts', 'name', 'details']} 463s E {'properties': {'details': {'description': 'details', 'title': 'Details', 'type': 'string'}, 'id': {'description': 'id...items': {'additionalProperties': {'type': 'integer'}, 'type': 'object'}, 'title': 'Related Experts', 'type': 'array'}}} != {'properties': {'details': {'description': 'details', 'title': 'Details', 'type': 'string'}, 'id': {'description': 'id...elated_experts': {'items': {'$ref': '#/definitions/CustomExpert... 463s E 463s E ...Full output truncated (90 lines hidden), use '-vv' to show 463s 463s tests/test_relations.py:807: AssertionError 463s ________________________ test_include_from_annotations _________________________ 463s 463s @pytest.mark.django_db 463s def test_include_from_annotations(): 463s """ 463s Test include="__annotations__" config. 463s """ 463s 463s class ProfileSchema(ModelSchema): 463s website: str 463s 463s class Config: 463s model = Profile 463s include = "__annotations__" 463s 463s > assert ProfileSchema.schema() == { 463s "title": "ProfileSchema", 463s "description": "A user's profile.", 463s "type": "object", 463s "properties": { 463s "website": { 463s "title": "Website", 463s "type": "string" 463s } 463s }, 463s "required": [ 463s "website" 463s ] 463s } 463s E AssertionError: assert {'description...eSchema', ...} == {'description...eSchema', ...} 463s E 463s E Omitting 3 identical items, use -vv to show 463s E Differing items: 463s E {'required': ['user']} != {'required': ['website']} 463s E {'properties': {'id': {'description': 'id', 'title': 'Id', 'type': 'integer'}, 'location': {'default': '', 'descriptio..., 'type': 'integer'}, 'website': {'default': '', 'description': 'website', 'maxLength': 200, 'title': 'Website', ...}}} != {'properties': {'website': {'title': 'Website', 'type': 'string'}}} 463s E 463s E Full diff:... 463s E 463s E ...Full output truncated (35 lines hidden), use '-vv' to show 463s 463s tests/test_schemas.py:398: AssertionError 463s =============================== warnings summary =============================== 463s ../../../usr/lib/python3/dist-packages/djantic/main.py:12 463s /usr/lib/python3/dist-packages/djantic/main.py:12: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater. 463s from pydantic.v1 import BaseModel, ConfigError, create_model 463s 463s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 463s ============================= slowest 10 durations ============================= 463s 1.41s setup tests/test_fields.py::test_unhandled_field_type 463s 0.12s setup tests/test_relations.py::test_foreign_key 463s 0.09s call tests/test_queries.py::test_get_queryset_with_reverse_foreign_key 463s 0.05s call tests/test_relations.py::test_m2m 463s 0.03s call tests/test_relations.py::test_m2m_reverse 463s 0.03s call tests/test_files.py::test_image_field_schema 463s 0.03s call tests/test_relations.py::test_foreign_key 463s 0.02s call tests/test_fields.py::test_unhandled_field_type 463s 0.01s setup tests/test_relations.py::test_m2m_reverse 463s 0.01s teardown tests/test_relations.py::test_one_to_one_reverse 463s =========================== short test summary info ============================ 463s FAILED tests/test_queries.py::test_get_instance_with_generic_foreign_key - As... 463s FAILED tests/test_queries.py::test_get_queryset_with_reverse_one_to_one - Ass... 463s FAILED tests/test_queries.py::test_get_queryset_with_foreign_key - AssertionE... 463s FAILED tests/test_queries.py::test_get_queryset_with_reverse_foreign_key - As... 463s FAILED tests/test_relations.py::test_m2m - AssertionError: assert {'descripti... 463s FAILED tests/test_relations.py::test_foreign_key - AssertionError: assert {'d... 463s FAILED tests/test_relations.py::test_one_to_one - AssertionError: assert {'de... 463s FAILED tests/test_relations.py::test_one_to_one_reverse - AssertionError: ass... 463s FAILED tests/test_relations.py::test_generic_relation - pydantic.v1.errors.Co... 463s FAILED tests/test_relations.py::test_m2m_reverse - AssertionError: assert {'d... 463s FAILED tests/test_schemas.py::test_include_from_annotations - AssertionError:... 463s ============ 11 failed, 17 passed, 4 deselected, 1 warning in 4.85s ============ 463s Destroying test database for alias 'default'... 463s autopkgtest [18:44:28]: test upstream: -----------------------] 463s upstream FAIL non-zero exit status 1 463s autopkgtest [18:44:28]: test upstream: - - - - - - - - - - results - - - - - - - - - - 464s autopkgtest [18:44:29]: @@@@@@@@@@@@@@@@@@@@ summary 464s upstream FAIL non-zero exit status 1