0s autopkgtest [01:31:25]: starting date and time: 2026-01-23 01:31:25+0000 0s autopkgtest [01:31:25]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [01:31:25]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.4jscfped/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-arm64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-arm64-3.secgroup --name adt-resolute-arm64-python-djantic-20260123-013125-juju-7f2275-prod-proposed-migration-environment-20-ac1f61ad-2026-4ba8-89f7-7b9ad8542d8d --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-arm64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-python-djantic-20260123-013125-juju-7f2275-prod-proposed-migration-environment-20-ac1f61ad-2026-4ba8-89f7-7b9ad8542d8d from image adt/ubuntu-resolute-arm64-server-20260122.img (UUID ed27afc7-5f46-4e8b-ad73-864280a0ddbb)... 85s autopkgtest [01:32:50]: testbed dpkg architecture: arm64 85s autopkgtest [01:32:50]: testbed apt version: 3.1.12 85s autopkgtest [01:32:50]: @@@@@@@@@@@@@@@@@@@@ test bed setup 85s autopkgtest [01:32:50]: testbed release detected to be: None 86s autopkgtest [01:32:51]: updating testbed package index (apt update) 86s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 87s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 87s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 87s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 87s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [23.5 kB] 87s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 87s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1020 kB] 87s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [87.5 kB] 87s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [105 kB] 87s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3424 B] 87s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [7876 B] 87s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [304 B] 87s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [757 kB] 87s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [18.1 kB] 87s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [7156 B] 87s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [332 B] 89s Fetched 2157 kB in 1s (3015 kB/s) 90s Reading package lists... 92s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 92s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 92s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 92s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 93s Reading package lists... 93s Reading package lists... 93s Building dependency tree... 93s Reading state information... 93s Calculating upgrade... 94s The following packages were automatically installed and are no longer required: 94s python3.13 python3.13-minimal 94s Use 'sudo apt autoremove' to remove them. 94s The following NEW packages will be installed: 94s libpython3.14-minimal libpython3.14-stdlib python3.14 python3.14-minimal 94s The following packages will be upgraded: 94s apt libapt-pkg7.0 libplymouth5 libpython3-stdlib plymouth 94s plymouth-theme-ubuntu-text python3 python3-gdbm python3-minimal 94s 9 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 94s Need to get 9472 kB of archives. 94s After this operation, 26.0 MB of additional disk space will be used. 94s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.2-1 [917 kB] 94s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.2-1 [2548 kB] 94s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-gdbm arm64 3.14.2-1 [11.1 kB] 94s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.14.2-1 [28.2 kB] 94s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.14.2-1 [22.9 kB] 94s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.2-1 [2351 kB] 95s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.2-1 [816 kB] 95s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.14.2-1 [10.9 kB] 95s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libapt-pkg7.0 arm64 3.1.13 [1067 kB] 95s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 apt arm64 3.1.13 [1412 kB] 95s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libplymouth5 arm64 24.004.60+git20250831.4a3c171d-0ubuntu4 [141 kB] 95s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 plymouth-theme-ubuntu-text arm64 24.004.60+git20250831.4a3c171d-0ubuntu4 [10.0 kB] 95s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 plymouth arm64 24.004.60+git20250831.4a3c171d-0ubuntu4 [138 kB] 95s dpkg-preconfigure: unable to re-open stdin: No such file or directory 95s Fetched 9472 kB in 1s (10.9 MB/s) 95s Selecting previously unselected package libpython3.14-minimal:arm64. 95s (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 ... 135223 files and directories currently installed.) 95s Preparing to unpack .../libpython3.14-minimal_3.14.2-1_arm64.deb ... 95s Unpacking libpython3.14-minimal:arm64 (3.14.2-1) ... 95s Selecting previously unselected package python3.14-minimal. 96s Preparing to unpack .../python3.14-minimal_3.14.2-1_arm64.deb ... 96s Unpacking python3.14-minimal (3.14.2-1) ... 96s Preparing to unpack .../python3-gdbm_3.14.2-1_arm64.deb ... 96s Unpacking python3-gdbm (3.14.2-1) over (3.13.9-1) ... 96s Setting up libpython3.14-minimal:arm64 (3.14.2-1) ... 96s Setting up python3.14-minimal (3.14.2-1) ... 97s (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 ... 135565 files and directories currently installed.) 97s Preparing to unpack .../python3-minimal_3.14.2-1_arm64.deb ... 97s Unpacking python3-minimal (3.14.2-1) over (3.13.7-1) ... 97s Setting up python3-minimal (3.14.2-1) ... 97s (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 ... 135565 files and directories currently installed.) 97s Preparing to unpack .../0-python3_3.14.2-1_arm64.deb ... 97s running python pre-rtupdate hooks for python3.14... 97s Unpacking python3 (3.14.2-1) over (3.13.7-1) ... 97s Selecting previously unselected package libpython3.14-stdlib:arm64. 97s Preparing to unpack .../1-libpython3.14-stdlib_3.14.2-1_arm64.deb ... 97s Unpacking libpython3.14-stdlib:arm64 (3.14.2-1) ... 98s Selecting previously unselected package python3.14. 98s Preparing to unpack .../2-python3.14_3.14.2-1_arm64.deb ... 98s Unpacking python3.14 (3.14.2-1) ... 98s Preparing to unpack .../3-libpython3-stdlib_3.14.2-1_arm64.deb ... 98s Unpacking libpython3-stdlib:arm64 (3.14.2-1) over (3.13.7-1) ... 98s Preparing to unpack .../4-libapt-pkg7.0_3.1.13_arm64.deb ... 98s Unpacking libapt-pkg7.0:arm64 (3.1.13) over (3.1.12) ... 98s Preparing to unpack .../5-apt_3.1.13_arm64.deb ... 98s Unpacking apt (3.1.13) over (3.1.12) ... 98s Preparing to unpack .../6-libplymouth5_24.004.60+git20250831.4a3c171d-0ubuntu4_arm64.deb ... 98s Unpacking libplymouth5:arm64 (24.004.60+git20250831.4a3c171d-0ubuntu4) over (24.004.60+git20250831.4a3c171d-0ubuntu3) ... 98s Preparing to unpack .../7-plymouth-theme-ubuntu-text_24.004.60+git20250831.4a3c171d-0ubuntu4_arm64.deb ... 98s Unpacking plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu4) over (24.004.60+git20250831.4a3c171d-0ubuntu3) ... 98s Preparing to unpack .../8-plymouth_24.004.60+git20250831.4a3c171d-0ubuntu4_arm64.deb ... 98s Unpacking plymouth (24.004.60+git20250831.4a3c171d-0ubuntu4) over (24.004.60+git20250831.4a3c171d-0ubuntu3) ... 98s Setting up libpython3.14-stdlib:arm64 (3.14.2-1) ... 98s Setting up libplymouth5:arm64 (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 98s Setting up libapt-pkg7.0:arm64 (3.1.13) ... 98s Setting up python3.14 (3.14.2-1) ... 100s Setting up libpython3-stdlib:arm64 (3.14.2-1) ... 100s Setting up apt (3.1.13) ... 100s Setting up python3-gdbm (3.14.2-1) ... 100s Setting up plymouth (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 100s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 101s update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults 101s Setting up python3 (3.14.2-1) ... 101s running python rtupdate hooks for python3.14... 101s running python post-rtupdate hooks for python3.14... 101s Processing triggers for libc-bin (2.42-2ubuntu4) ... 101s Processing triggers for systemd (259-1ubuntu2) ... 101s Processing triggers for man-db (2.13.1-1) ... 103s Processing triggers for initramfs-tools (0.150ubuntu7) ... 103s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 119s System running in EFI mode, skipping. 119s Setting up plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu4) ... 119s Processing triggers for initramfs-tools (0.150ubuntu7) ... 119s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 133s System running in EFI mode, skipping. 133s autopkgtest [01:33:38]: upgrading testbed (apt dist-upgrade and autopurge) 134s Reading package lists... 134s Building dependency tree... 134s Reading state information... 134s Calculating upgrade... 135s The following packages were automatically installed and are no longer required: 135s python3.13 python3.13-minimal 135s Use 'sudo apt autoremove' to remove them. 135s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 135s Reading package lists... 135s Building dependency tree... 135s Reading state information... 135s Solving dependencies... 136s The following packages will be REMOVED: 136s python3.13* python3.13-minimal* 136s 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 136s After this operation, 7766 kB disk space will be freed. 136s (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 ... 135995 files and directories currently installed.) 136s Removing python3.13 (3.13.11-1) ... 136s Removing python3.13-minimal (3.13.11-1) ... 137s Processing triggers for man-db (2.13.1-1) ... 137s Processing triggers for systemd (259-1ubuntu2) ... 138s (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 ... 135968 files and directories currently installed.) 138s Purging configuration files for python3.13-minimal (3.13.11-1) ... 138s autopkgtest [01:33:43]: rebooting testbed after setup commands that affected boot 176s autopkgtest [01:34:21]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:41:39 UTC 2026 178s autopkgtest [01:34:23]: @@@@@@@@@@@@@@@@@@@@ apt-source python-djantic 181s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (dsc) [2588 B] 181s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (tar) [54.6 kB] 181s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (diff) [4336 B] 181s gpgv: Signature made Thu Feb 20 07:32:29 2025 UTC 181s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 181s gpgv: issuer "tchet@debian.org" 181s gpgv: Can't check signature: No public key 181s dpkg-source: warning: cannot verify inline signature for ./python-djantic_0.7.0-6.dsc: no acceptable signature found 181s autopkgtest [01:34:26]: testing package python-djantic version 0.7.0-6 182s autopkgtest [01:34:27]: build not needed 182s autopkgtest [01:34:27]: test upstream: preparing testbed 182s Reading package lists... 182s Building dependency tree... 182s Reading state information... 182s Solving dependencies... 183s The following NEW packages will be installed: 183s libdeflate0 libgomp1 libgraphite2-3 libharfbuzz0b libimagequant0 libjbig0 183s libjpeg-turbo8 libjpeg8 liblcms2-2 liblerc4 libopenjp2-7 libpq5 libraqm0 183s libsharpyuv0 libtiff6 libwebp7 libwebpdemux2 libwebpmux3 python-djantic-doc 183s python3-all python3-annotated-types python3-asgiref python3-django 183s python3-djantic python3-dnspython python3-email-validator 183s python3-factory-boy python3-fake-factory python3-iniconfig python3-pil 183s python3-pluggy python3-psycopg2 python3-pydantic python3-pydantic-core 183s python3-pytest python3-pytest-django python3-sqlparse 183s python3-typing-inspection python3.13 python3.13-minimal 183s 0 upgraded, 40 newly installed, 0 to remove and 0 not upgraded. 183s Need to get 14.0 MB of archives. 183s After this operation, 72.9 MB of additional disk space will be used. 183s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13-minimal arm64 3.13.11-1 [2346 kB] 183s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.13 arm64 3.13.11-1 [758 kB] 183s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libdeflate0 arm64 1.23-2 [46.4 kB] 183s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-11ubuntu1 [147 kB] 183s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 libgraphite2-3 arm64 1.3.14-11ubuntu1 [72.1 kB] 183s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libharfbuzz0b arm64 12.3.0-4 [518 kB] 183s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libimagequant0 arm64 2.18.0-1build1 [37.1 kB] 183s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libjpeg-turbo8 arm64 2.1.5-4ubuntu2 [165 kB] 183s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libjpeg8 arm64 8c-2ubuntu11 [2148 B] 183s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 liblcms2-2 arm64 2.17-1 [170 kB] 183s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 liblerc4 arm64 4.0.0+ds-5ubuntu2 [174 kB] 183s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 libpq5 arm64 18.1-2 [151 kB] 183s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 libraqm0 arm64 0.10.3-1 [15.0 kB] 183s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libsharpyuv0 arm64 1.5.0-0.1build1 [16.7 kB] 183s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 libjbig0 arm64 2.1-6.1ubuntu3 [29.2 kB] 183s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libwebp7 arm64 1.5.0-0.1build1 [205 kB] 183s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 libtiff6 arm64 4.7.0-3ubuntu3 [196 kB] 183s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 libwebpdemux2 arm64 1.5.0-0.1build1 [12.5 kB] 183s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libwebpmux3 arm64 1.5.0-0.1build1 [25.2 kB] 183s Get:20 http://ftpmaster.internal/ubuntu resolute/universe arm64 python-djantic-doc all 0.7.0-6 [492 kB] 183s Get:21 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-all arm64 3.14.2-1 [888 B] 183s Get:22 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-annotated-types all 0.7.0-1 [19.4 kB] 183s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-asgiref all 3.11.0-1 [25.2 kB] 183s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-sqlparse all 0.5.4-1 [34.3 kB] 184s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-django all 3:5.2.9-0ubuntu2 [3038 kB] 184s Get:26 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pydantic-core arm64 2.41.5-2 [2170 kB] 184s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-typing-inspection all 0.4.2-1 [13.1 kB] 184s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 184s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-email-validator all 2.2.0-1 [28.5 kB] 184s Get:30 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pydantic arm64 2.12.5-2 [312 kB] 184s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-djantic all 0.7.0-6 [9454 B] 184s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 libopenjp2-7 arm64 2.5.4-1 [180 kB] 184s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pil arm64 12.0.0-1ubuntu1 [486 kB] 184s Get:34 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-fake-factory all 39.0.0-1 [1455 kB] 184s Get:35 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-factory-boy all 3.3.3-1build1 [35.9 kB] 184s Get:36 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-2 [6962 B] 184s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-2 [21.1 kB] 184s Get:38 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-psycopg2 arm64 2.9.11-1 [164 kB] 184s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 9.0.2-2 [277 kB] 184s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest-django all 4.11.1-2 [21.8 kB] 184s Fetched 14.0 MB in 1s (15.7 MB/s) 184s Selecting previously unselected package python3.13-minimal. 184s (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 ... 135970 files and directories currently installed.) 184s Preparing to unpack .../00-python3.13-minimal_3.13.11-1_arm64.deb ... 184s Unpacking python3.13-minimal (3.13.11-1) ... 185s Selecting previously unselected package python3.13. 185s Preparing to unpack .../01-python3.13_3.13.11-1_arm64.deb ... 185s Unpacking python3.13 (3.13.11-1) ... 185s Selecting previously unselected package libdeflate0:arm64. 185s Preparing to unpack .../02-libdeflate0_1.23-2_arm64.deb ... 185s Unpacking libdeflate0:arm64 (1.23-2) ... 185s Selecting previously unselected package libgomp1:arm64. 185s Preparing to unpack .../03-libgomp1_15.2.0-11ubuntu1_arm64.deb ... 185s Unpacking libgomp1:arm64 (15.2.0-11ubuntu1) ... 185s Selecting previously unselected package libgraphite2-3:arm64. 185s Preparing to unpack .../04-libgraphite2-3_1.3.14-11ubuntu1_arm64.deb ... 185s Unpacking libgraphite2-3:arm64 (1.3.14-11ubuntu1) ... 185s Selecting previously unselected package libharfbuzz0b:arm64. 185s Preparing to unpack .../05-libharfbuzz0b_12.3.0-4_arm64.deb ... 185s Unpacking libharfbuzz0b:arm64 (12.3.0-4) ... 185s Selecting previously unselected package libimagequant0:arm64. 185s Preparing to unpack .../06-libimagequant0_2.18.0-1build1_arm64.deb ... 185s Unpacking libimagequant0:arm64 (2.18.0-1build1) ... 185s Selecting previously unselected package libjpeg-turbo8:arm64. 185s Preparing to unpack .../07-libjpeg-turbo8_2.1.5-4ubuntu2_arm64.deb ... 185s Unpacking libjpeg-turbo8:arm64 (2.1.5-4ubuntu2) ... 185s Selecting previously unselected package libjpeg8:arm64. 185s Preparing to unpack .../08-libjpeg8_8c-2ubuntu11_arm64.deb ... 185s Unpacking libjpeg8:arm64 (8c-2ubuntu11) ... 185s Selecting previously unselected package liblcms2-2:arm64. 185s Preparing to unpack .../09-liblcms2-2_2.17-1_arm64.deb ... 185s Unpacking liblcms2-2:arm64 (2.17-1) ... 185s Selecting previously unselected package liblerc4:arm64. 185s Preparing to unpack .../10-liblerc4_4.0.0+ds-5ubuntu2_arm64.deb ... 185s Unpacking liblerc4:arm64 (4.0.0+ds-5ubuntu2) ... 185s Selecting previously unselected package libpq5:arm64. 185s Preparing to unpack .../11-libpq5_18.1-2_arm64.deb ... 185s Unpacking libpq5:arm64 (18.1-2) ... 185s Selecting previously unselected package libraqm0:arm64. 185s Preparing to unpack .../12-libraqm0_0.10.3-1_arm64.deb ... 185s Unpacking libraqm0:arm64 (0.10.3-1) ... 185s Selecting previously unselected package libsharpyuv0:arm64. 185s Preparing to unpack .../13-libsharpyuv0_1.5.0-0.1build1_arm64.deb ... 185s Unpacking libsharpyuv0:arm64 (1.5.0-0.1build1) ... 185s Selecting previously unselected package libjbig0:arm64. 185s Preparing to unpack .../14-libjbig0_2.1-6.1ubuntu3_arm64.deb ... 185s Unpacking libjbig0:arm64 (2.1-6.1ubuntu3) ... 185s Selecting previously unselected package libwebp7:arm64. 185s Preparing to unpack .../15-libwebp7_1.5.0-0.1build1_arm64.deb ... 185s Unpacking libwebp7:arm64 (1.5.0-0.1build1) ... 185s Selecting previously unselected package libtiff6:arm64. 185s Preparing to unpack .../16-libtiff6_4.7.0-3ubuntu3_arm64.deb ... 185s Unpacking libtiff6:arm64 (4.7.0-3ubuntu3) ... 185s Selecting previously unselected package libwebpdemux2:arm64. 185s Preparing to unpack .../17-libwebpdemux2_1.5.0-0.1build1_arm64.deb ... 185s Unpacking libwebpdemux2:arm64 (1.5.0-0.1build1) ... 185s Selecting previously unselected package libwebpmux3:arm64. 185s Preparing to unpack .../18-libwebpmux3_1.5.0-0.1build1_arm64.deb ... 185s Unpacking libwebpmux3:arm64 (1.5.0-0.1build1) ... 185s Selecting previously unselected package python-djantic-doc. 185s Preparing to unpack .../19-python-djantic-doc_0.7.0-6_all.deb ... 185s Unpacking python-djantic-doc (0.7.0-6) ... 185s Selecting previously unselected package python3-all. 185s Preparing to unpack .../20-python3-all_3.14.2-1_arm64.deb ... 185s Unpacking python3-all (3.14.2-1) ... 185s Selecting previously unselected package python3-annotated-types. 186s Preparing to unpack .../21-python3-annotated-types_0.7.0-1_all.deb ... 186s Unpacking python3-annotated-types (0.7.0-1) ... 186s Selecting previously unselected package python3-asgiref. 186s Preparing to unpack .../22-python3-asgiref_3.11.0-1_all.deb ... 186s Unpacking python3-asgiref (3.11.0-1) ... 186s Selecting previously unselected package python3-sqlparse. 186s Preparing to unpack .../23-python3-sqlparse_0.5.4-1_all.deb ... 186s Unpacking python3-sqlparse (0.5.4-1) ... 186s Selecting previously unselected package python3-django. 186s Preparing to unpack .../24-python3-django_3%3a5.2.9-0ubuntu2_all.deb ... 186s Unpacking python3-django (3:5.2.9-0ubuntu2) ... 186s Selecting previously unselected package python3-pydantic-core. 186s Preparing to unpack .../25-python3-pydantic-core_2.41.5-2_arm64.deb ... 186s Unpacking python3-pydantic-core (2.41.5-2) ... 186s Selecting previously unselected package python3-typing-inspection. 186s Preparing to unpack .../26-python3-typing-inspection_0.4.2-1_all.deb ... 186s Unpacking python3-typing-inspection (0.4.2-1) ... 186s Selecting previously unselected package python3-dnspython. 186s Preparing to unpack .../27-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 186s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 186s Selecting previously unselected package python3-email-validator. 186s Preparing to unpack .../28-python3-email-validator_2.2.0-1_all.deb ... 186s Unpacking python3-email-validator (2.2.0-1) ... 186s Selecting previously unselected package python3-pydantic. 186s Preparing to unpack .../29-python3-pydantic_2.12.5-2_arm64.deb ... 186s Unpacking python3-pydantic (2.12.5-2) ... 186s Selecting previously unselected package python3-djantic. 186s Preparing to unpack .../30-python3-djantic_0.7.0-6_all.deb ... 186s Unpacking python3-djantic (0.7.0-6) ... 186s Selecting previously unselected package libopenjp2-7:arm64. 186s Preparing to unpack .../31-libopenjp2-7_2.5.4-1_arm64.deb ... 186s Unpacking libopenjp2-7:arm64 (2.5.4-1) ... 186s Selecting previously unselected package python3-pil:arm64. 186s Preparing to unpack .../32-python3-pil_12.0.0-1ubuntu1_arm64.deb ... 186s Unpacking python3-pil:arm64 (12.0.0-1ubuntu1) ... 186s Selecting previously unselected package python3-fake-factory. 186s Preparing to unpack .../33-python3-fake-factory_39.0.0-1_all.deb ... 186s Unpacking python3-fake-factory (39.0.0-1) ... 187s Selecting previously unselected package python3-factory-boy. 187s Preparing to unpack .../34-python3-factory-boy_3.3.3-1build1_all.deb ... 187s Unpacking python3-factory-boy (3.3.3-1build1) ... 187s Selecting previously unselected package python3-iniconfig. 187s Preparing to unpack .../35-python3-iniconfig_2.1.0-2_all.deb ... 187s Unpacking python3-iniconfig (2.1.0-2) ... 187s Selecting previously unselected package python3-pluggy. 187s Preparing to unpack .../36-python3-pluggy_1.6.0-2_all.deb ... 187s Unpacking python3-pluggy (1.6.0-2) ... 187s Selecting previously unselected package python3-psycopg2. 187s Preparing to unpack .../37-python3-psycopg2_2.9.11-1_arm64.deb ... 187s Unpacking python3-psycopg2 (2.9.11-1) ... 187s Selecting previously unselected package python3-pytest. 187s Preparing to unpack .../38-python3-pytest_9.0.2-2_all.deb ... 187s Unpacking python3-pytest (9.0.2-2) ... 187s Selecting previously unselected package python3-pytest-django. 187s Preparing to unpack .../39-python3-pytest-django_4.11.1-2_all.deb ... 187s Unpacking python3-pytest-django (4.11.1-2) ... 187s Setting up libgraphite2-3:arm64 (1.3.14-11ubuntu1) ... 187s Setting up liblcms2-2:arm64 (2.17-1) ... 187s Setting up python3-iniconfig (2.1.0-2) ... 187s Setting up libsharpyuv0:arm64 (1.5.0-0.1build1) ... 187s Setting up python3-pydantic-core (2.41.5-2) ... 187s Setting up liblerc4:arm64 (4.0.0+ds-5ubuntu2) ... 187s Setting up python3-typing-inspection (0.4.2-1) ... 188s Setting up python-djantic-doc (0.7.0-6) ... 188s Setting up libpq5:arm64 (18.1-2) ... 188s Setting up libdeflate0:arm64 (1.23-2) ... 188s Setting up libgomp1:arm64 (15.2.0-11ubuntu1) ... 188s Setting up libjbig0:arm64 (2.1-6.1ubuntu3) ... 188s Setting up python3-annotated-types (0.7.0-1) ... 188s Setting up python3-sqlparse (0.5.4-1) ... 188s Setting up libimagequant0:arm64 (2.18.0-1build1) ... 188s Setting up python3-psycopg2 (2.9.11-1) ... 188s Setting up libjpeg-turbo8:arm64 (2.1.5-4ubuntu2) ... 188s Setting up python3-pluggy (1.6.0-2) ... 189s Setting up libwebp7:arm64 (1.5.0-0.1build1) ... 189s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 189s Setting up libopenjp2-7:arm64 (2.5.4-1) ... 189s Setting up python3.13-minimal (3.13.11-1) ... 190s Setting up libharfbuzz0b:arm64 (12.3.0-4) ... 190s Setting up python3-email-validator (2.2.0-1) ... 190s Setting up libwebpmux3:arm64 (1.5.0-0.1build1) ... 190s Setting up python3-asgiref (3.11.0-1) ... 190s Setting up libjpeg8:arm64 (8c-2ubuntu11) ... 190s Setting up python3-django (3:5.2.9-0ubuntu2) ... 193s Setting up python3.13 (3.13.11-1) ... 194s Setting up python3-pytest (9.0.2-2) ... 195s Setting up libwebpdemux2:arm64 (1.5.0-0.1build1) ... 195s Setting up python3-all (3.14.2-1) ... 195s Setting up python3-pytest-django (4.11.1-2) ... 195s Setting up python3-pydantic (2.12.5-2) ... 196s Setting up libraqm0:arm64 (0.10.3-1) ... 196s Setting up libtiff6:arm64 (4.7.0-3ubuntu3) ... 196s Setting up python3-djantic (0.7.0-6) ... 196s Setting up python3-pil:arm64 (12.0.0-1ubuntu1) ... 197s Setting up python3-fake-factory (39.0.0-1) ... 200s Setting up python3-factory-boy (3.3.3-1build1) ... 200s Processing triggers for systemd (259-1ubuntu2) ... 200s Processing triggers for man-db (2.13.1-1) ... 201s Processing triggers for libc-bin (2.42-2ubuntu4) ... 202s autopkgtest [01:34:47]: test upstream: [----------------------- 203s ============================= test session starts ============================== 203s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 203s cachedir: .pytest_cache 203s django: version: 5.2.9, settings: tests.testapp.settings (from ini) 203s rootdir: /tmp/autopkgtest.q7o3PB/autopkgtest_tmp 203s configfile: setup.cfg 203s plugins: typeguard-4.4.4, django-4.11.1, Faker-39.0.0 203s collecting ... collected 32 items / 4 deselected / 28 selected 203s 203s tests/test_fields.py::test_unhandled_field_type Creating test database for alias 'default'... 203s is currently unhandled, defaulting to str. 203s PASSED 203s tests/test_fields.py::test_custom_field PASSED 203s tests/test_fields.py::test_postgres_json_field PASSED 203s tests/test_fields.py::test_lazy_choice_field PASSED 203s tests/test_fields.py::test_enum_choices PASSED 203s tests/test_fields.py::test_enum_choices_generates_unique_enums PASSED 203s tests/test_fields.py::test_listing PASSED 203s tests/test_files.py::test_image_field_schema PASSED 203s tests/test_main.py::test_config_errors PASSED 203s tests/test_main.py::test_get_field_names PASSED 203s tests/test_queries.py::test_get_instance PASSED 203s tests/test_queries.py::test_get_instance_with_generic_foreign_key PASSED 203s tests/test_queries.py::test_get_queryset_with_reverse_one_to_one PASSED 203s tests/test_queries.py::test_get_queryset_with_foreign_key PASSED 203s tests/test_queries.py::test_get_queryset_with_reverse_foreign_key PASSED 203s tests/test_queries.py::test_get_queryset_with_generic_foreign_key PASSED 203s tests/test_relations.py::test_m2m PASSED 203s tests/test_relations.py::test_foreign_key PASSED 203s tests/test_relations.py::test_one_to_one PASSED 203s tests/test_relations.py::test_one_to_one_reverse PASSED 203s tests/test_relations.py::test_generic_relation PASSED 203s tests/test_relations.py::test_m2m_reverse PASSED 203s tests/test_schemas.py::test_description PASSED 203s tests/test_schemas.py::test_cache PASSED 203s tests/test_schemas.py::test_include_exclude PASSED 203s tests/test_schemas.py::test_json PASSED 203s tests/test_schemas.py::test_include_from_annotations PASSED 204s tests/test_schemas.py::test_by_alias_generator PASSED 204s 204s ============================= slowest 10 durations ============================= 204s 0.27s setup tests/test_fields.py::test_unhandled_field_type 204s 0.01s call tests/test_relations.py::test_m2m_reverse 204s 0.01s call tests/test_queries.py::test_get_queryset_with_reverse_one_to_one 204s 0.01s call tests/test_relations.py::test_m2m 204s 0.01s call tests/test_queries.py::test_get_queryset_with_reverse_foreign_key 204s 0.01s call tests/test_queries.py::test_get_instance_with_generic_foreign_key 204s 0.01s call tests/test_schemas.py::test_include_exclude 204s 0.01s call tests/test_relations.py::test_generic_relation 204s 204s (2 durations < 0.005s hidden. Use -vv to show these durations.) 204s ======================= 28 passed, 4 deselected in 0.75s ======================= 204s Destroying test database for alias 'default'... 205s ============================= test session starts ============================== 205s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 205s cachedir: .pytest_cache 205s django: version: 5.2.9, settings: tests.testapp.settings (from ini) 205s rootdir: /tmp/autopkgtest.q7o3PB/autopkgtest_tmp 205s configfile: setup.cfg 205s plugins: typeguard-4.4.4, django-4.11.1, Faker-39.0.0 205s collecting ... collected 32 items / 4 deselected / 28 selected 205s 205s tests/test_fields.py::test_unhandled_field_type Creating test database for alias 'default'... 205s is currently unhandled, defaulting to str. 205s PASSED 205s tests/test_fields.py::test_custom_field PASSED 205s tests/test_fields.py::test_postgres_json_field PASSED 205s tests/test_fields.py::test_lazy_choice_field PASSED 205s tests/test_fields.py::test_enum_choices PASSED 205s tests/test_fields.py::test_enum_choices_generates_unique_enums PASSED 205s tests/test_fields.py::test_listing PASSED 205s tests/test_files.py::test_image_field_schema PASSED 205s tests/test_main.py::test_config_errors PASSED 205s tests/test_main.py::test_get_field_names PASSED 205s tests/test_queries.py::test_get_instance PASSED 205s tests/test_queries.py::test_get_instance_with_generic_foreign_key FAILED 205s tests/test_queries.py::test_get_queryset_with_reverse_one_to_one FAILED 205s tests/test_queries.py::test_get_queryset_with_foreign_key FAILED 205s tests/test_queries.py::test_get_queryset_with_reverse_foreign_key FAILED 205s tests/test_queries.py::test_get_queryset_with_generic_foreign_key PASSED 205s tests/test_relations.py::test_m2m FAILED 205s tests/test_relations.py::test_foreign_key FAILED 205s tests/test_relations.py::test_one_to_one FAILED 205s tests/test_relations.py::test_one_to_one_reverse FAILED 205s tests/test_relations.py::test_generic_relation FAILED 205s tests/test_relations.py::test_m2m_reverse FAILED 205s tests/test_schemas.py::test_description PASSED 205s tests/test_schemas.py::test_cache PASSED 205s tests/test_schemas.py::test_include_exclude PASSED 205s tests/test_schemas.py::test_json PASSED 205s tests/test_schemas.py::test_include_from_annotations FAILEDDestroying test database for alias 'default'... 205s 206s tests/test_schemas.py::test_by_alias_generator PASSED 206s 206s =================================== FAILURES =================================== 206s __________________ test_get_instance_with_generic_foreign_key __________________ 206s 206s @pytest.mark.django_db 206s def test_get_instance_with_generic_foreign_key(): 206s 206s bookmark = Bookmark.objects.create(url="https://www.djangoproject.com/") 206s Tagged.objects.create(content_object=bookmark, slug="django") 206s 206s class TaggedSchema(ModelSchema): 206s class Config: 206s model = Tagged 206s 206s class BookmarkWithTaggedSchema(ModelSchema): 206s 206s tags: List[TaggedSchema] 206s 206s class Config: 206s model = Bookmark 206s 206s bookmark_with_tagged_schema = BookmarkWithTaggedSchema.from_django(bookmark) 206s 206s > assert bookmark_with_tagged_schema.dict() == { 206s "id": 1, 206s "tags": [ 206s { 206s 'content_object': 1, 206s "content_type": 20, 206s "id": 1, 206s "object_id": 1, 206s "slug": "django", 206s } 206s ], 206s "url": "https://www.djangoproject.com/", 206s } 206s E AssertionError: assert {'id': 1, 'ta...project.com/'} == {'id': 1, 'ta...project.com/'} 206s E 206s E Omitting 2 identical items, use -vv to show 206s E Differing items: 206s E {'tags': [{'id': 1}]} != {'tags': [{'content_object': 1, 'content_type': 20, 'id': 1, 'object_id': 1, ...}]} 206s E 206s E Full diff: 206s E {... 206s E 206s E ...Full output truncated (12 lines hidden), use '-vv' to show 206s 206s tests/test_queries.py:46: AssertionError 206s __________________ test_get_queryset_with_reverse_one_to_one ___________________ 206s 206s @pytest.mark.django_db 206s def test_get_queryset_with_reverse_one_to_one(): 206s """ 206s Test retrieving a Django queryset with reverse one-to-one relationships. 206s """ 206s user_data = [ 206s {"first_name": "Jordan", "email": "jordan@eremieff.com"}, 206s {"first_name": "Sara", "email": "sara@example.com"}, 206s ] 206s for kwargs in user_data: 206s user = User.objects.create(**kwargs) 206s Profile.objects.create(user=user, location="Australia") 206s 206s class UserSchema(ModelSchema): 206s class Config: 206s model = User 206s include = ["id", "email", "first_name", "profile"] 206s 206s users = User.objects.all() 206s user_schema_qs = UserSchema.from_django(users, many=True) 206s assert user_schema_qs == [ 206s { 206s "email": "jordan@eremieff.com", 206s "first_name": "Jordan", 206s "id": 1, 206s "profile": 1, 206s }, 206s {"email": "sara@example.com", "first_name": "Sara", "id": 2, "profile": 2}, 206s ] 206s 206s # Test when using a declared sub-model 206s class ProfileSchema(ModelSchema): 206s class Config: 206s model = Profile 206s include = ["id", "location"] 206s 206s class UserWithProfileSchema(ModelSchema): 206s 206s profile: ProfileSchema 206s 206s class Config: 206s model = User 206s exclude = ["created_at", "updated_at", "last_name"] 206s 206s users = User.objects.all() 206s 206s user_with_profile_schema_qs = UserWithProfileSchema.from_django(users, many=True) 206s > assert user_with_profile_schema_qs == [ 206s { 206s "email": "jordan@eremieff.com", 206s "first_name": "Jordan", 206s "id": 1, 206s "profile": {"id": 1, "location": "Australia"}, 206s }, 206s { 206s "email": "sara@example.com", 206s "first_name": "Sara", 206s "id": 2, 206s "profile": {"id": 2, "location": "Australia"}, 206s }, 206s ] 206s E AssertionError: assert [UserWithProf...example.com')] == [{'email': 'j...'Australia'}}] 206s E 206s 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'}} 206s E 206s E Full diff: 206s E [ 206s E + UserWithProfileSchema(profile=1, id=1, first_name='Jordan', email='jordan@eremieff.com'), 206s E + UserWithProfileSchema(profile=2, id=2, first_name='Sara', email='sara@example.com'),... 206s E 206s E ...Full output truncated (19 lines hidden), use '-vv' to show 206s 206s tests/test_queries.py:108: AssertionError 206s ______________________ test_get_queryset_with_foreign_key ______________________ 206s 206s @pytest.mark.django_db 206s def test_get_queryset_with_foreign_key(): 206s """ 206s Test retrieving a Django queryset with foreign-key relationships. 206s """ 206s 206s thread = Thread.objects.create(title="My thread topic") 206s thread2 = Thread.objects.create(title="Another topic") 206s for content in ("I agree.", "I disagree!", "lol"): 206s message_one = Message.objects.create(content=content, thread=thread) 206s Message.objects.create(content=content, thread=thread2) 206s 206s class MessageSchema(ModelSchema): 206s class Config: 206s model = Message 206s exclude = ["created_at"] 206s 206s schema = MessageSchema.from_django(message_one) 206s assert schema.dict() == {"id": 5, "content": "lol", "thread": 1} 206s 206s class ThreadSchema(ModelSchema): 206s class Config: 206s model = Thread 206s exclude = ["created_at"] 206s 206s class MessageWithThreadSchema(ModelSchema): 206s thread: ThreadSchema 206s 206s class Config: 206s model = Message 206s exclude = ["created_at"] 206s 206s schema = MessageWithThreadSchema.from_django(message_one) 206s > assert schema.dict() == { 206s "id": 5, 206s "content": "lol", 206s "thread": { 206s "messages": [{"id": 1}, {"id": 3}, {"id": 5}], 206s "id": 1, 206s "title": "My thread topic", 206s }, 206s } 206s E AssertionError: assert {'content': '..., 'thread': 1} == {'content': '...hread topic'}} 206s E 206s E Omitting 2 identical items, use -vv to show 206s E Differing items: 206s E {'thread': 1} != {'thread': {'id': 1, 'messages': [{'id': 1}, {'id': 3}, {'id': 5}], 'title': 'My thread topic'}} 206s E 206s E Full diff: 206s E {... 206s E 206s E ...Full output truncated (21 lines hidden), use '-vv' to show 206s 206s tests/test_queries.py:157: AssertionError 206s __________________ test_get_queryset_with_reverse_foreign_key __________________ 206s 206s @pytest.mark.django_db 206s def test_get_queryset_with_reverse_foreign_key(): 206s """ 206s Test retrieving a Django queryset with reverse foreign-key relationships. 206s """ 206s 206s thread = Thread.objects.create(title="My thread topic") 206s thread2 = Thread.objects.create(title="Another topic") 206s for content in ("I agree.", "I disagree!", "lol"): 206s Message.objects.create(content=content, thread=thread) 206s Message.objects.create(content=content, thread=thread2) 206s 206s threads = Thread.objects.all() 206s 206s class MessageSchema(ModelSchema): 206s class Config: 206s model = Message 206s include = ["id", "content"] 206s 206s class ThreadSchema(ModelSchema): 206s class Config: 206s model = Thread 206s 206s thread_schema_qs = ThreadSchema.from_django(threads, many=True) 206s thread_schemas = [t.dict() for t in thread_schema_qs] 206s assert thread_schemas == [ 206s { 206s "messages": [{"id": 2}, {"id": 4}, {"id": 6}], 206s "id": 2, 206s "title": "Another topic", 206s }, 206s { 206s "messages": [{"id": 1}, {"id": 3}, {"id": 5}], 206s "id": 1, 206s "title": "My thread topic", 206s }, 206s ] 206s 206s # Test when using a declared sub-model 206s class ThreadWithMessageListSchema(ModelSchema): 206s messages: List[MessageSchema] 206s 206s class Config: 206s model = Thread 206s exclude = ["created_at", "updated_at"] 206s 206s thread_with_message_list_schema_qs = ThreadWithMessageListSchema.from_django( 206s threads, many=True 206s ) 206s 206s > assert thread_with_message_list_schema_qs == [ 206s { 206s "messages": [ 206s {"id": 2, "content": "I agree."}, 206s {"id": 4, "content": "I disagree!"}, 206s {"id": 6, "content": "lol"}, 206s ], 206s "id": 2, 206s "title": "Another topic", 206s }, 206s { 206s "messages": [ 206s {"id": 1, "content": "I agree."}, 206s {"id": 3, "content": "I disagree!"}, 206s {"id": 5, "content": "lol"}, 206s ], 206s "id": 1, 206s "title": "My thread topic", 206s }, 206s ] 206s E AssertionError: assert [ThreadWithMe...hread topic')] == [{'id': 2, 'm...hread topic'}] 206s E 206s 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'} 206s E 206s E Full diff: 206s E [ 206s E + ThreadWithMessageListSchema(messages=[{'id': 2}, {'id': 4}, {'id': 6}], id=2, title='Another topic'), 206s E + ThreadWithMessageListSchema(messages=[{'id': 1}, {'id': 3}, {'id': 5}], id=1, title='My thread topic'),... 206s E 206s E ...Full output truncated (37 lines hidden), use '-vv' to show 206s 206s tests/test_queries.py:218: AssertionError 206s ___________________________________ test_m2m ___________________________________ 206s 206s @pytest.mark.django_db 206s def test_m2m(): 206s """ 206s Test forward m2m relationships. 206s """ 206s 206s class ArticleSchema(ModelSchema): 206s class Config: 206s model = Article 206s 206s assert ArticleSchema.schema() == { 206s "title": "ArticleSchema", 206s "description": "A news article.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "headline": { 206s "title": "Headline", 206s "description": "headline", 206s "maxLength": 100, 206s "type": "string", 206s }, 206s "pub_date": { 206s "title": "Pub Date", 206s "description": "pub_date", 206s "type": "string", 206s "format": "date", 206s }, 206s "publications": { 206s "title": "Publications", 206s "description": "id", 206s "type": "array", 206s "items": { 206s "type": "object", 206s "additionalProperties": {"type": "integer"}, 206s }, 206s }, 206s }, 206s "required": ["headline", "pub_date", "publications"], 206s } 206s 206s class PublicationSchema(ModelSchema): 206s class Config: 206s model = Publication 206s 206s class ArticleWithPublicationListSchema(ModelSchema): 206s publications: List[PublicationSchema] 206s 206s class Config: 206s model = Article 206s 206s > assert ArticleWithPublicationListSchema.schema() == { 206s "title": "ArticleWithPublicationListSchema", 206s "description": "A news article.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "headline": { 206s "title": "Headline", 206s "description": "headline", 206s "maxLength": 100, 206s "type": "string", 206s }, 206s "pub_date": { 206s "title": "Pub Date", 206s "description": "pub_date", 206s "type": "string", 206s "format": "date", 206s }, 206s "publications": { 206s "title": "Publications", 206s "type": "array", 206s "items": {"$ref": "#/definitions/PublicationSchema"}, 206s }, 206s }, 206s "required": ["headline", "pub_date", "publications"], 206s "definitions": { 206s "PublicationSchema": { 206s "title": "PublicationSchema", 206s "description": "A news publication.", 206s "type": "object", 206s "properties": { 206s "article_set": { 206s "title": "Article Set", 206s "description": "id", 206s "type": "array", 206s "items": { 206s "type": "object", 206s "additionalProperties": {"type": "integer"}, 206s }, 206s }, 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "title": { 206s "title": "Title", 206s "description": "title", 206s "maxLength": 30, 206s "type": "string", 206s }, 206s }, 206s "required": ["title"], 206s } 206s }, 206s } 206s E AssertionError: assert {'description...tSchema', ...} == {'definitions...ations'], ...} 206s E 206s E Omitting 4 identical items, use -vv to show 206s E Differing items: 206s 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'}}} 206s E Right contains 1 more item: 206s E {'defi... 206s E 206s E ...Full output truncated (94 lines hidden), use '-vv' to show 206s 206s tests/test_relations.py:74: AssertionError 206s _______________________________ test_foreign_key _______________________________ 206s 206s @pytest.mark.django_db 206s def test_foreign_key(): 206s """ 206s Test forward foreign-key relationships. 206s """ 206s 206s class ThreadSchema(ModelSchema): 206s class Config: 206s model = Thread 206s 206s class MessageSchema(ModelSchema): 206s class Config: 206s model = Message 206s 206s assert MessageSchema.schema() == { 206s "title": "MessageSchema", 206s "description": "A message posted in a thread.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "content": {"title": "Content", "description": "content", "type": "string"}, 206s "created_at": { 206s "title": "Created At", 206s "description": "created_at", 206s "type": "string", 206s "format": "date-time", 206s }, 206s "thread": {"title": "Thread", "description": "id", "type": "integer"}, 206s }, 206s "required": ["content", "created_at", "thread"], 206s } 206s 206s class MessageWithThreadSchema(ModelSchema): 206s 206s thread: ThreadSchema 206s 206s class Config: 206s model = Message 206s 206s > assert MessageWithThreadSchema.schema() == { 206s "title": "MessageWithThreadSchema", 206s "description": "A message posted in a thread.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "content": {"title": "Content", "description": "content", "type": "string"}, 206s "created_at": { 206s "title": "Created At", 206s "description": "created_at", 206s "type": "string", 206s "format": "date-time", 206s }, 206s "thread": {"$ref": "#/definitions/ThreadSchema"}, 206s }, 206s "required": ["content", "created_at", "thread"], 206s "definitions": { 206s "ThreadSchema": { 206s "title": "ThreadSchema", 206s "description": "A thread of messages.", 206s "type": "object", 206s "properties": { 206s "messages": { 206s "title": "Messages", 206s "description": "id", 206s "type": "array", 206s "items": { 206s "type": "object", 206s "additionalProperties": {"type": "integer"}, 206s }, 206s }, 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "title": { 206s "title": "Title", 206s "description": "title", 206s "maxLength": 30, 206s "type": "string", 206s }, 206s }, 206s "required": ["title"], 206s } 206s }, 206s } 206s E AssertionError: assert {'description...dSchema', ...} == {'definitions...thread'], ...} 206s E 206s E Omitting 4 identical items, use -vv to show 206s E Differing items: 206s 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'}}} 206s E Right contains 1 more item: 206s E {'defi... 206s E 206s E ...Full output truncated (86 lines hidden), use '-vv' to show 206s 206s tests/test_relations.py:181: AssertionError 206s _______________________________ test_one_to_one ________________________________ 206s 206s @pytest.mark.django_db 206s def test_one_to_one(): 206s """ 206s Test forward one-to-one relationships. 206s """ 206s 206s class UserSchema(ModelSchema): 206s class Config: 206s model = User 206s 206s class ProfileSchema(ModelSchema): 206s class Config: 206s model = Profile 206s 206s assert ProfileSchema.schema() == { 206s "title": "ProfileSchema", 206s "description": "A user's profile.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "user": {"title": "User", "description": "id", "type": "integer"}, 206s "website": { 206s "title": "Website", 206s "description": "website", 206s "default": "", 206s "maxLength": 200, 206s "type": "string", 206s }, 206s "location": { 206s "title": "Location", 206s "description": "location", 206s "default": "", 206s "maxLength": 100, 206s "type": "string", 206s }, 206s }, 206s "required": ["user"], 206s } 206s 206s class ProfileWithUserSchema(ModelSchema): 206s user: UserSchema 206s 206s class Config: 206s model = Profile 206s 206s > assert ProfileWithUserSchema.schema() == { 206s "title": "ProfileWithUserSchema", 206s "description": "A user's profile.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "user": {"$ref": "#/definitions/UserSchema"}, 206s "website": { 206s "title": "Website", 206s "description": "website", 206s "default": "", 206s "maxLength": 200, 206s "type": "string", 206s }, 206s "location": { 206s "title": "Location", 206s "description": "location", 206s "default": "", 206s "maxLength": 100, 206s "type": "string", 206s }, 206s }, 206s "required": ["user"], 206s "definitions": { 206s "UserSchema": { 206s "title": "UserSchema", 206s "description": "A user of the application.", 206s "type": "object", 206s "properties": { 206s "profile": { 206s "title": "Profile", 206s "description": "id", 206s "type": "integer", 206s }, 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "first_name": { 206s "title": "First Name", 206s "description": "first_name", 206s "maxLength": 50, 206s "type": "string", 206s }, 206s "last_name": { 206s "title": "Last Name", 206s "description": "last_name", 206s "maxLength": 50, 206s "type": "string", 206s }, 206s "email": { 206s "title": "Email", 206s "description": "email", 206s "maxLength": 254, 206s "type": "string", 206s }, 206s "created_at": { 206s "title": "Created At", 206s "description": "created_at", 206s "type": "string", 206s "format": "date-time", 206s }, 206s "updated_at": { 206s "title": "Updated At", 206s "description": "updated_at", 206s "type": "string", 206s "format": "date-time", 206s }, 206s }, 206s "required": ["first_name", "email", "created_at", "updated_at"], 206s } 206s }, 206s } 206s E AssertionError: assert {'description...rSchema', ...} == {'definitions...['user'], ...} 206s E 206s E Omitting 4 identical items, use -vv to show 206s E Differing items: 206s 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', ...}}} 206s E Right contains 1 more item: 206s E {'defi... 206s E 206s E ...Full output truncated (129 lines hidden), use '-vv' to show 206s 206s tests/test_relations.py:325: AssertionError 206s ___________________________ test_one_to_one_reverse ____________________________ 206s 206s @pytest.mark.django_db 206s def test_one_to_one_reverse(): 206s """ 206s Test reverse one-to-one relationships. 206s """ 206s 206s class ProfileSchema(ModelSchema): 206s class Config: 206s model = Profile 206s 206s class UserSchema(ModelSchema): 206s class Config: 206s model = User 206s 206s assert ProfileSchema.schema() == { 206s "title": "ProfileSchema", 206s "description": "A user's profile.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "user": {"title": "User", "description": "id", "type": "integer"}, 206s "website": { 206s "title": "Website", 206s "description": "website", 206s "default": "", 206s "maxLength": 200, 206s "type": "string", 206s }, 206s "location": { 206s "title": "Location", 206s "description": "location", 206s "default": "", 206s "maxLength": 100, 206s "type": "string", 206s }, 206s }, 206s "required": ["user"], 206s } 206s 206s class UserWithProfileSchema(ModelSchema): 206s profile: ProfileSchema 206s 206s class Config: 206s model = User 206s 206s > assert UserWithProfileSchema.schema() == { 206s "title": "UserWithProfileSchema", 206s "description": "A user of the application.", 206s "type": "object", 206s "properties": { 206s "profile": {"$ref": "#/definitions/ProfileSchema"}, 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "first_name": { 206s "title": "First Name", 206s "description": "first_name", 206s "maxLength": 50, 206s "type": "string", 206s }, 206s "last_name": { 206s "title": "Last Name", 206s "description": "last_name", 206s "maxLength": 50, 206s "type": "string", 206s }, 206s "email": { 206s "title": "Email", 206s "description": "email", 206s "maxLength": 254, 206s "type": "string", 206s }, 206s "created_at": { 206s "title": "Created At", 206s "description": "created_at", 206s "type": "string", 206s "format": "date-time", 206s }, 206s "updated_at": { 206s "title": "Updated At", 206s "description": "updated_at", 206s "type": "string", 206s "format": "date-time", 206s }, 206s }, 206s "required": ["profile", "first_name", "email", "created_at", "updated_at"], 206s "definitions": { 206s "ProfileSchema": { 206s "title": "ProfileSchema", 206s "description": "A user's profile.", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "user": {"title": "User", "description": "id", "type": "integer"}, 206s "website": { 206s "title": "Website", 206s "description": "website", 206s "default": "", 206s "maxLength": 200, 206s "type": "string", 206s }, 206s "location": { 206s "title": "Location", 206s "description": "location", 206s "default": "", 206s "maxLength": 100, 206s "type": "string", 206s }, 206s }, 206s "required": ["user"], 206s } 206s }, 206s } 206s E AssertionError: assert {'description...eSchema', ...} == {'definitions...ted_at'], ...} 206s E 206s E Omitting 3 identical items, use -vv to show 206s E Differing items: 206s E {'required': ['first_name', 'email', 'created_at', 'updated_at']} != {'required': ['profile', 'first_name', 'email', 'created_at', 'updated_at']} 206s 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... 206s E 206s E ...Full output truncated (115 lines hidden), use '-vv' to show 206s 206s tests/test_relations.py:442: AssertionError 206s ____________________________ test_generic_relation _____________________________ 206s 206s @pytest.mark.django_db 206s def test_generic_relation(): 206s """ 206s Test generic foreign-key relationships. 206s """ 206s 206s class TaggedSchema(ModelSchema): 206s class Config: 206s model = Tagged 206s 206s assert TaggedSchema.schema() == { 206s "title": "TaggedSchema", 206s "description": "Tagged(id, slug, content_type, object_id)", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "slug": { 206s "title": "Slug", 206s "description": "slug", 206s "maxLength": 50, 206s "type": "string", 206s }, 206s "content_type": { 206s "title": "Content Type", 206s "description": "id", 206s "type": "integer", 206s }, 206s "object_id": { 206s "title": "Object Id", 206s "description": "object_id", 206s "type": "integer", 206s }, 206s "content_object": { 206s "title": "Content Object", 206s "description": "content_object", 206s "type": "integer", 206s }, 206s }, 206s "required": ["slug", "content_type", "object_id", "content_object"], 206s } 206s 206s > class BookmarkSchema(ModelSchema): 206s 206s tests/test_relations.py:551: 206s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 206s /usr/lib/python3/dist-packages/djantic/main.py:45: in __new__ 206s cls = super().__new__(mcs, name, bases, namespace) 206s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 206s /usr/lib/python3/dist-packages/pydantic/v1/main.py:221: in __new__ 206s inferred = ModelField.infer( 206s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:504: in infer 206s return cls( 206s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:434: in __init__ 206s self.prepare() 206s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:544: in prepare 206s self._set_default_and_type() 206s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 206s 206s self = ModelField(name='tags', type=UndefinedType, required=False, default=None) 206s 206s def _set_default_and_type(self) -> None: 206s """ 206s Set the default value, infer the type if needed and check if `None` value is valid. 206s """ 206s if self.default_factory is not None: 206s if self.type_ is Undefined: 206s raise errors_.ConfigError( 206s f'you need to set the type of field {self.name!r} when using `default_factory`' 206s ) 206s return 206s 206s default_value = self.get_default() 206s 206s if default_value is not None and self.type_ is Undefined: 206s self.type_ = default_value.__class__ 206s self.outer_type_ = self.type_ 206s self.annotation = self.type_ 206s 206s if self.type_ is Undefined: 206s > raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"') 206s E pydantic.v1.errors.ConfigError: unable to infer type for attribute "tags" 206s 206s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:576: ConfigError 206s _______________________________ test_m2m_reverse _______________________________ 206s 206s @pytest.mark.django_db 206s def test_m2m_reverse(): 206s class ExpertSchema(ModelSchema): 206s class Config: 206s model = Expert 206s 206s class CaseSchema(ModelSchema): 206s class Config: 206s model = Case 206s 206s assert ExpertSchema.schema() == { 206s "title": "ExpertSchema", 206s "description": "Expert(id, name)", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "name": { 206s "title": "Name", 206s "description": "name", 206s "maxLength": 128, 206s "type": "string", 206s }, 206s "cases": { 206s "title": "Cases", 206s "description": "id", 206s "type": "array", 206s "items": { 206s "type": "object", 206s "additionalProperties": {"type": "integer"}, 206s }, 206s }, 206s }, 206s "required": ["name", "cases"], 206s } 206s 206s assert CaseSchema.schema() == { 206s "title": "CaseSchema", 206s "description": "Case(id, name, details)", 206s "type": "object", 206s "properties": { 206s "related_experts": { 206s "title": "Related Experts", 206s "description": "id", 206s "type": "array", 206s "items": { 206s "type": "object", 206s "additionalProperties": {"type": "integer"}, 206s }, 206s }, 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "name": { 206s "title": "Name", 206s "description": "name", 206s "maxLength": 128, 206s "type": "string", 206s }, 206s "details": {"title": "Details", "description": "details", "type": "string"}, 206s }, 206s "required": ["name", "details"], 206s } 206s case = Case.objects.create(name="My Case", details="Some text data.") 206s expert = Expert.objects.create(name="My Expert") 206s case_schema = CaseSchema.from_django(case) 206s expert_schema = ExpertSchema.from_django(expert) 206s assert case_schema.dict() == { 206s "related_experts": [], 206s "id": 1, 206s "name": "My Case", 206s "details": "Some text data.", 206s } 206s assert expert_schema.dict() == {"id": 1, "name": "My Expert", "cases": []} 206s 206s expert.cases.add(case) 206s case_schema = CaseSchema.from_django(case) 206s expert_schema = ExpertSchema.from_django(expert) 206s assert case_schema.dict() == { 206s "related_experts": [{"id": 1}], 206s "id": 1, 206s "name": "My Case", 206s "details": "Some text data.", 206s } 206s assert expert_schema.dict() == {"id": 1, "name": "My Expert", "cases": [{"id": 1}]} 206s 206s class CustomExpertSchema(ModelSchema): 206s """Custom schema""" 206s 206s name: Optional[str] 206s 206s class Config: 206s model = Expert 206s 206s class CaseSchema(ModelSchema): 206s related_experts: List[CustomExpertSchema] 206s 206s class Config: 206s model = Case 206s 206s > assert CaseSchema.schema() == { 206s "title": "CaseSchema", 206s "description": "Case(id, name, details)", 206s "type": "object", 206s "properties": { 206s "related_experts": { 206s "title": "Related Experts", 206s "type": "array", 206s "items": {"$ref": "#/definitions/CustomExpertSchema"}, 206s }, 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "name": { 206s "title": "Name", 206s "description": "name", 206s "maxLength": 128, 206s "type": "string", 206s }, 206s "details": {"title": "Details", "description": "details", "type": "string"}, 206s }, 206s "required": ["related_experts", "name", "details"], 206s "definitions": { 206s "CustomExpertSchema": { 206s "title": "CustomExpertSchema", 206s "description": "Custom schema", 206s "type": "object", 206s "properties": { 206s "id": {"title": "Id", "description": "id", "type": "integer"}, 206s "name": {"title": "Name", "type": "string"}, 206s "cases": { 206s "title": "Cases", 206s "description": "id", 206s "type": "array", 206s "items": { 206s "type": "object", 206s "additionalProperties": {"type": "integer"}, 206s }, 206s }, 206s }, 206s "required": ["cases"], 206s } 206s }, 206s } 206s E AssertionError: assert {'description...eSchema', ...} == {'definitions...etails'], ...} 206s E 206s E Omitting 3 identical items, use -vv to show 206s E Differing items: 206s E {'required': ['name', 'details']} != {'required': ['related_experts', 'name', 'details']} 206s 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... 206s E 206s E ...Full output truncated (90 lines hidden), use '-vv' to show 206s 206s tests/test_relations.py:807: AssertionError 206s ________________________ test_include_from_annotations _________________________ 206s 206s @pytest.mark.django_db 206s def test_include_from_annotations(): 206s """ 206s Test include="__annotations__" config. 206s """ 206s 206s class ProfileSchema(ModelSchema): 206s website: str 206s 206s class Config: 206s model = Profile 206s include = "__annotations__" 206s 206s > assert ProfileSchema.schema() == { 206s "title": "ProfileSchema", 206s "description": "A user's profile.", 206s "type": "object", 206s "properties": { 206s "website": { 206s "title": "Website", 206s "type": "string" 206s } 206s }, 206s "required": [ 206s "website" 206s ] 206s } 206s E AssertionError: assert {'description...eSchema', ...} == {'description...eSchema', ...} 206s E 206s E Omitting 3 identical items, use -vv to show 206s E Differing items: 206s E {'required': ['user']} != {'required': ['website']} 206s 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'}}} 206s E 206s E Full diff:... 206s E 206s E ...Full output truncated (35 lines hidden), use '-vv' to show 206s 206s tests/test_schemas.py:398: AssertionError 206s =============================== warnings summary =============================== 206s ../../../usr/lib/python3/dist-packages/djantic/main.py:12 206s /usr/lib/python3/dist-packages/djantic/main.py:12: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater. 206s from pydantic.v1 import BaseModel, ConfigError, create_model 206s 206s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 206s ============================= slowest 10 durations ============================= 206s 0.28s setup tests/test_fields.py::test_unhandled_field_type 206s 0.01s call tests/test_relations.py::test_m2m_reverse 206s 0.01s call tests/test_queries.py::test_get_queryset_with_reverse_one_to_one 206s 0.01s call tests/test_queries.py::test_get_queryset_with_reverse_foreign_key 206s 0.01s call tests/test_relations.py::test_one_to_one_reverse 206s 0.01s call tests/test_relations.py::test_one_to_one 206s 0.01s call tests/test_schemas.py::test_include_exclude 206s 0.01s call tests/test_relations.py::test_m2m 206s 0.01s call tests/test_schemas.py::test_description 206s 0.01s call tests/test_queries.py::test_get_instance_with_generic_foreign_key 206s =========================== short test summary info ============================ 206s FAILED tests/test_queries.py::test_get_instance_with_generic_foreign_key - As... 206s FAILED tests/test_queries.py::test_get_queryset_with_reverse_one_to_one - Ass... 206s FAILED tests/test_queries.py::test_get_queryset_with_foreign_key - AssertionE... 206s FAILED tests/test_queries.py::test_get_queryset_with_reverse_foreign_key - As... 206s FAILED tests/test_relations.py::test_m2m - AssertionError: assert {'descripti... 206s FAILED tests/test_relations.py::test_foreign_key - AssertionError: assert {'d... 206s FAILED tests/test_relations.py::test_one_to_one - AssertionError: assert {'de... 206s FAILED tests/test_relations.py::test_one_to_one_reverse - AssertionError: ass... 206s FAILED tests/test_relations.py::test_generic_relation - pydantic.v1.errors.Co... 206s FAILED tests/test_relations.py::test_m2m_reverse - AssertionError: assert {'d... 206s FAILED tests/test_schemas.py::test_include_from_annotations - AssertionError:... 206s ============ 11 failed, 17 passed, 4 deselected, 1 warning in 0.90s ============ 206s autopkgtest [01:34:51]: test upstream: -----------------------] 207s upstream FAIL non-zero exit status 1 207s autopkgtest [01:34:52]: test upstream: - - - - - - - - - - results - - - - - - - - - - 207s autopkgtest [01:34:52]: @@@@@@@@@@@@@@@@@@@@ summary 207s upstream FAIL non-zero exit status 1