0s autopkgtest [07:39:03]: starting date and time: 2026-02-09 07:39:03+0000 0s autopkgtest [07:39:03]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [07:39:03]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.d0rvkgoo/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python-django,src:pyinstaller,src:python-django-debug-toolbar --apt-upgrade python-djantic --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=python-django/3:5.2.9-0ubuntu3 pyinstaller/6.18.0+ds-1 python-django-debug-toolbar/1:6.2.0-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-21.secgroup --name adt-resolute-s390x-python-djantic-20260209-073903-juju-7f2275-prod-proposed-migration-environment-15-665b68ba-b4f0-4642-ace9-4fb37bf62f28 --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-20260209-073903-juju-7f2275-prod-proposed-migration-environment-15-665b68ba-b4f0-4642-ace9-4fb37bf62f28 from image adt/ubuntu-resolute-s390x-server-20260209.img (UUID 9cc437fa-9eb6-47c5-b3be-2034f91c6244)... 150s autopkgtest [07:41:33]: testbed dpkg architecture: s390x 150s autopkgtest [07:41:33]: testbed apt version: 3.1.15 151s autopkgtest [07:41:34]: @@@@@@@@@@@@@@@@@@@@ test bed setup 152s autopkgtest [07:41:35]: testbed release detected to be: None 153s autopkgtest [07:41:36]: updating testbed package index (apt update) 154s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 154s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 155s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 155s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 155s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [29.4 kB] 155s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1605 kB] 155s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [165 kB] 155s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [243 kB] 155s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [1452 kB] 155s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [7636 B] 158s Fetched 3626 kB in 3s (1136 kB/s) 164s Reading package lists... 166s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 167s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 167s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 167s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 173s Reading package lists... 173s Reading package lists... 175s Building dependency tree... 175s Reading state information... 176s Calculating upgrade... 177s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 178s autopkgtest [07:42:01]: upgrading testbed (apt dist-upgrade and autopurge) 179s Reading package lists... 180s Building dependency tree... 180s Reading state information... 181s Calculating upgrade... 182s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 183s Reading package lists... 184s Building dependency tree... 184s Reading state information... 184s Solving dependencies... 185s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 191s autopkgtest [07:42:14]: testbed running kernel: Linux 6.19.0-3-generic #3-Ubuntu SMP Fri Jan 23 19:02:49 UTC 2026 192s autopkgtest [07:42:15]: @@@@@@@@@@@@@@@@@@@@ apt-source python-djantic 199s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (dsc) [2588 B] 199s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (tar) [54.6 kB] 199s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-djantic 0.7.0-6 (diff) [4336 B] 203s gpgv: Signature made Thu Feb 20 07:32:29 2025 UTC 203s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 203s gpgv: issuer "tchet@debian.org" 203s gpgv: Can't check signature: No public key 203s dpkg-source: warning: cannot verify inline signature for ./python-djantic_0.7.0-6.dsc: no acceptable signature found 203s autopkgtest [07:42:26]: testing package python-djantic version 0.7.0-6 204s autopkgtest [07:42:27]: build not needed 204s autopkgtest [07:42:27]: test upstream: preparing testbed 205s Reading package lists... 207s Building dependency tree... 207s Reading state information... 207s Solving dependencies... 209s The following NEW packages will be installed: 209s libdeflate0 libfreetype6 libgomp1 libgraphite2-3 libharfbuzz0b 209s libimagequant0 libjbig0 libjpeg-turbo8 libjpeg8 liblcms2-2 libopenjp2-7 209s libpq5 libraqm0 libsharpyuv0 libtiff6 libwebp7 libwebpdemux2 libwebpmux3 209s python-djantic-doc python3-all python3-annotated-types python3-asgiref 209s python3-django python3-djantic python3-dnspython python3-email-validator 209s python3-factory-boy python3-fake-factory python3-iniconfig python3-pil 209s python3-pluggy python3-psycopg2 python3-pydantic python3-pydantic-core 209s python3-pytest python3-pytest-django python3-sqlparse 209s python3-typing-inspection python3.14 python3.14-minimal 209s 0 upgraded, 40 newly installed, 0 to remove and 0 not upgraded. 209s Need to get 15.2 MB of archives. 209s After this operation, 76.2 MB of additional disk space will be used. 209s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.2-1 [2510 kB] 210s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libdeflate0 s390x 1.23-2build1 [45.9 kB] 210s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libfreetype6 s390x 2.14.1+dfsg-2 [443 kB] 210s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-12ubuntu1 [154 kB] 210s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x libgraphite2-3 s390x 1.3.14-11ubuntu1 [80.5 kB] 210s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x libharfbuzz0b s390x 12.3.2-1 [562 kB] 210s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x libimagequant0 s390x 2.18.0-1build1 [43.3 kB] 210s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x libjpeg-turbo8 s390x 2.1.5-4ubuntu3 [156 kB] 210s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x libjpeg8 s390x 8c-2ubuntu11 [2146 B] 210s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x liblcms2-2 s390x 2.17-1 [176 kB] 210s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x libpq5 s390x 18.1-2 [157 kB] 210s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x libraqm0 s390x 0.10.4-1 [15.7 kB] 210s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x libsharpyuv0 s390x 1.5.0-0.1build1 [16.6 kB] 210s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x libjbig0 s390x 2.1-6.1ubuntu3 [32.8 kB] 210s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x libwebp7 s390x 1.5.0-0.1build1 [227 kB] 210s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x libtiff6 s390x 4.7.0-3ubuntu3 [222 kB] 210s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x libwebpdemux2 s390x 1.5.0-0.1build1 [12.5 kB] 210s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x libwebpmux3 s390x 1.5.0-0.1build1 [25.7 kB] 210s Get:19 http://ftpmaster.internal/ubuntu resolute/universe s390x python-djantic-doc all 0.7.0-6 [492 kB] 210s Get:20 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.2-1 [816 kB] 210s Get:21 http://ftpmaster.internal/ubuntu resolute/main s390x python3-all s390x 3.13.9-3 [890 B] 210s Get:22 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-annotated-types all 0.7.0-1 [19.4 kB] 210s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x python3-asgiref all 3.11.0-1 [25.2 kB] 210s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x python3-sqlparse all 0.5.4-1 [34.3 kB] 210s Get:25 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-django all 3:5.2.9-0ubuntu3 [3040 kB] 210s Get:26 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pydantic-core s390x 2.41.5-2 [2593 kB] 211s Get:27 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-typing-inspection all 0.4.2-1 [13.1 kB] 211s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x python3-dnspython all 2.7.0-1ubuntu2 [167 kB] 211s Get:29 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-email-validator all 2.2.0-1 [28.5 kB] 211s Get:30 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pydantic s390x 2.12.5-2 [312 kB] 211s Get:31 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-djantic all 0.7.0-6 [9454 B] 211s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x libopenjp2-7 s390x 2.5.4-1 [208 kB] 211s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x python3-pil s390x 12.0.0-1ubuntu1 [540 kB] 211s Get:34 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-fake-factory all 39.0.0-1 [1455 kB] 211s Get:35 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-factory-boy all 3.3.3-1build1 [35.9 kB] 211s Get:36 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-2 [6962 B] 211s Get:37 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-2 [21.1 kB] 211s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x python3-psycopg2 s390x 2.9.11-1 [177 kB] 211s Get:39 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 9.0.2-2 [277 kB] 211s Get:40 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest-django all 4.11.1-2 [21.8 kB] 216s Fetched 15.2 MB in 3s (5740 kB/s) 216s Selecting previously unselected package python3.14-minimal. 225s (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 ... 88641 files and directories currently installed.) 225s Preparing to unpack .../00-python3.14-minimal_3.14.2-1_s390x.deb ... 225s Unpacking python3.14-minimal (3.14.2-1) ... 226s Selecting previously unselected package libdeflate0:s390x. 226s Preparing to unpack .../01-libdeflate0_1.23-2build1_s390x.deb ... 226s Unpacking libdeflate0:s390x (1.23-2build1) ... 226s Selecting previously unselected package libfreetype6:s390x. 226s Preparing to unpack .../02-libfreetype6_2.14.1+dfsg-2_s390x.deb ... 226s Unpacking libfreetype6:s390x (2.14.1+dfsg-2) ... 226s Selecting previously unselected package libgomp1:s390x. 226s Preparing to unpack .../03-libgomp1_15.2.0-12ubuntu1_s390x.deb ... 226s Unpacking libgomp1:s390x (15.2.0-12ubuntu1) ... 226s Selecting previously unselected package libgraphite2-3:s390x. 226s Preparing to unpack .../04-libgraphite2-3_1.3.14-11ubuntu1_s390x.deb ... 226s Unpacking libgraphite2-3:s390x (1.3.14-11ubuntu1) ... 226s Selecting previously unselected package libharfbuzz0b:s390x. 226s Preparing to unpack .../05-libharfbuzz0b_12.3.2-1_s390x.deb ... 226s Unpacking libharfbuzz0b:s390x (12.3.2-1) ... 226s Selecting previously unselected package libimagequant0:s390x. 226s Preparing to unpack .../06-libimagequant0_2.18.0-1build1_s390x.deb ... 226s Unpacking libimagequant0:s390x (2.18.0-1build1) ... 227s Selecting previously unselected package libjpeg-turbo8:s390x. 227s Preparing to unpack .../07-libjpeg-turbo8_2.1.5-4ubuntu3_s390x.deb ... 227s Unpacking libjpeg-turbo8:s390x (2.1.5-4ubuntu3) ... 227s Selecting previously unselected package libjpeg8:s390x. 227s Preparing to unpack .../08-libjpeg8_8c-2ubuntu11_s390x.deb ... 227s Unpacking libjpeg8:s390x (8c-2ubuntu11) ... 227s Selecting previously unselected package liblcms2-2:s390x. 227s Preparing to unpack .../09-liblcms2-2_2.17-1_s390x.deb ... 227s Unpacking liblcms2-2:s390x (2.17-1) ... 227s Selecting previously unselected package libpq5:s390x. 227s Preparing to unpack .../10-libpq5_18.1-2_s390x.deb ... 227s Unpacking libpq5:s390x (18.1-2) ... 227s Selecting previously unselected package libraqm0:s390x. 227s Preparing to unpack .../11-libraqm0_0.10.4-1_s390x.deb ... 227s Unpacking libraqm0:s390x (0.10.4-1) ... 227s Selecting previously unselected package libsharpyuv0:s390x. 227s Preparing to unpack .../12-libsharpyuv0_1.5.0-0.1build1_s390x.deb ... 227s Unpacking libsharpyuv0:s390x (1.5.0-0.1build1) ... 228s Selecting previously unselected package libjbig0:s390x. 228s Preparing to unpack .../13-libjbig0_2.1-6.1ubuntu3_s390x.deb ... 228s Unpacking libjbig0:s390x (2.1-6.1ubuntu3) ... 228s Selecting previously unselected package libwebp7:s390x. 228s Preparing to unpack .../14-libwebp7_1.5.0-0.1build1_s390x.deb ... 228s Unpacking libwebp7:s390x (1.5.0-0.1build1) ... 228s Selecting previously unselected package libtiff6:s390x. 228s Preparing to unpack .../15-libtiff6_4.7.0-3ubuntu3_s390x.deb ... 228s Unpacking libtiff6:s390x (4.7.0-3ubuntu3) ... 228s Selecting previously unselected package libwebpdemux2:s390x. 228s Preparing to unpack .../16-libwebpdemux2_1.5.0-0.1build1_s390x.deb ... 228s Unpacking libwebpdemux2:s390x (1.5.0-0.1build1) ... 229s Selecting previously unselected package libwebpmux3:s390x. 229s Preparing to unpack .../17-libwebpmux3_1.5.0-0.1build1_s390x.deb ... 229s Unpacking libwebpmux3:s390x (1.5.0-0.1build1) ... 229s Selecting previously unselected package python-djantic-doc. 229s Preparing to unpack .../18-python-djantic-doc_0.7.0-6_all.deb ... 229s Unpacking python-djantic-doc (0.7.0-6) ... 229s Selecting previously unselected package python3.14. 229s Preparing to unpack .../19-python3.14_3.14.2-1_s390x.deb ... 229s Unpacking python3.14 (3.14.2-1) ... 230s Selecting previously unselected package python3-all. 230s Preparing to unpack .../20-python3-all_3.13.9-3_s390x.deb ... 230s Unpacking python3-all (3.13.9-3) ... 230s Selecting previously unselected package python3-annotated-types. 230s Preparing to unpack .../21-python3-annotated-types_0.7.0-1_all.deb ... 230s Unpacking python3-annotated-types (0.7.0-1) ... 230s Selecting previously unselected package python3-asgiref. 230s Preparing to unpack .../22-python3-asgiref_3.11.0-1_all.deb ... 230s Unpacking python3-asgiref (3.11.0-1) ... 230s Selecting previously unselected package python3-sqlparse. 230s Preparing to unpack .../23-python3-sqlparse_0.5.4-1_all.deb ... 230s Unpacking python3-sqlparse (0.5.4-1) ... 230s Selecting previously unselected package python3-django. 230s Preparing to unpack .../24-python3-django_3%3a5.2.9-0ubuntu3_all.deb ... 230s Unpacking python3-django (3:5.2.9-0ubuntu3) ... 234s Selecting previously unselected package python3-pydantic-core. 234s Preparing to unpack .../25-python3-pydantic-core_2.41.5-2_s390x.deb ... 234s Unpacking python3-pydantic-core (2.41.5-2) ... 235s Selecting previously unselected package python3-typing-inspection. 235s Preparing to unpack .../26-python3-typing-inspection_0.4.2-1_all.deb ... 235s Unpacking python3-typing-inspection (0.4.2-1) ... 235s Selecting previously unselected package python3-dnspython. 235s Preparing to unpack .../27-python3-dnspython_2.7.0-1ubuntu2_all.deb ... 235s Unpacking python3-dnspython (2.7.0-1ubuntu2) ... 236s Selecting previously unselected package python3-email-validator. 236s Preparing to unpack .../28-python3-email-validator_2.2.0-1_all.deb ... 236s Unpacking python3-email-validator (2.2.0-1) ... 236s Selecting previously unselected package python3-pydantic. 236s Preparing to unpack .../29-python3-pydantic_2.12.5-2_s390x.deb ... 236s Unpacking python3-pydantic (2.12.5-2) ... 236s Selecting previously unselected package python3-djantic. 236s Preparing to unpack .../30-python3-djantic_0.7.0-6_all.deb ... 236s Unpacking python3-djantic (0.7.0-6) ... 236s Selecting previously unselected package libopenjp2-7:s390x. 236s Preparing to unpack .../31-libopenjp2-7_2.5.4-1_s390x.deb ... 236s Unpacking libopenjp2-7:s390x (2.5.4-1) ... 237s Selecting previously unselected package python3-pil:s390x. 237s Preparing to unpack .../32-python3-pil_12.0.0-1ubuntu1_s390x.deb ... 237s Unpacking python3-pil:s390x (12.0.0-1ubuntu1) ... 237s Selecting previously unselected package python3-fake-factory. 237s Preparing to unpack .../33-python3-fake-factory_39.0.0-1_all.deb ... 237s Unpacking python3-fake-factory (39.0.0-1) ... 238s Selecting previously unselected package python3-factory-boy. 238s Preparing to unpack .../34-python3-factory-boy_3.3.3-1build1_all.deb ... 238s Unpacking python3-factory-boy (3.3.3-1build1) ... 238s Selecting previously unselected package python3-iniconfig. 238s Preparing to unpack .../35-python3-iniconfig_2.1.0-2_all.deb ... 238s Unpacking python3-iniconfig (2.1.0-2) ... 238s Selecting previously unselected package python3-pluggy. 238s Preparing to unpack .../36-python3-pluggy_1.6.0-2_all.deb ... 238s Unpacking python3-pluggy (1.6.0-2) ... 238s Selecting previously unselected package python3-psycopg2. 239s Preparing to unpack .../37-python3-psycopg2_2.9.11-1_s390x.deb ... 239s Unpacking python3-psycopg2 (2.9.11-1) ... 239s Selecting previously unselected package python3-pytest. 239s Preparing to unpack .../38-python3-pytest_9.0.2-2_all.deb ... 239s Unpacking python3-pytest (9.0.2-2) ... 239s Selecting previously unselected package python3-pytest-django. 239s Preparing to unpack .../39-python3-pytest-django_4.11.1-2_all.deb ... 239s Unpacking python3-pytest-django (4.11.1-2) ... 239s Setting up libgraphite2-3:s390x (1.3.14-11ubuntu1) ... 239s Setting up liblcms2-2:s390x (2.17-1) ... 239s Setting up python3-iniconfig (2.1.0-2) ... 242s Setting up libsharpyuv0:s390x (1.5.0-0.1build1) ... 242s Setting up python3-pydantic-core (2.41.5-2) ... 243s Setting up python3-typing-inspection (0.4.2-1) ... 244s Setting up python-djantic-doc (0.7.0-6) ... 244s Setting up libpq5:s390x (18.1-2) ... 244s Setting up libdeflate0:s390x (1.23-2build1) ... 244s Setting up libgomp1:s390x (15.2.0-12ubuntu1) ... 244s Setting up libjbig0:s390x (2.1-6.1ubuntu3) ... 244s Setting up python3-annotated-types (0.7.0-1) ... 246s Setting up python3-sqlparse (0.5.4-1) ... 248s Setting up libfreetype6:s390x (2.14.1+dfsg-2) ... 248s Setting up libimagequant0:s390x (2.18.0-1build1) ... 248s Setting up python3-psycopg2 (2.9.11-1) ... 250s Setting up libjpeg-turbo8:s390x (2.1.5-4ubuntu3) ... 250s Setting up python3-pluggy (1.6.0-2) ... 251s Setting up libwebp7:s390x (1.5.0-0.1build1) ... 251s Setting up python3-dnspython (2.7.0-1ubuntu2) ... 254s Setting up libopenjp2-7:s390x (2.5.4-1) ... 254s Setting up libharfbuzz0b:s390x (12.3.2-1) ... 254s Setting up python3-email-validator (2.2.0-1) ... 255s Setting up libwebpmux3:s390x (1.5.0-0.1build1) ... 255s Setting up python3.14-minimal (3.14.2-1) ... 264s Setting up python3-asgiref (3.11.0-1) ... 265s Setting up libjpeg8:s390x (8c-2ubuntu11) ... 265s Setting up python3-django (3:5.2.9-0ubuntu3) ... 282s Setting up python3-pytest (9.0.2-2) ... 287s Setting up libwebpdemux2:s390x (1.5.0-0.1build1) ... 287s Setting up python3-pytest-django (4.11.1-2) ... 288s Setting up python3-pydantic (2.12.5-2) ... 292s Setting up libraqm0:s390x (0.10.4-1) ... 292s Setting up libtiff6:s390x (4.7.0-3ubuntu3) ... 292s Setting up python3-djantic (0.7.0-6) ... 292s Setting up python3.14 (3.14.2-1) ... 309s Setting up python3-all (3.13.9-3) ... 309s Setting up python3-pil:s390x (12.0.0-1ubuntu1) ... 314s Setting up python3-fake-factory (39.0.0-1) ... 336s Setting up python3-factory-boy (3.3.3-1build1) ... 337s Processing triggers for systemd (259-1ubuntu3) ... 337s Processing triggers for man-db (2.13.1-1build1) ... 353s Processing triggers for libc-bin (2.42-2ubuntu4) ... 360s autopkgtest [07:45:03]: test upstream: [----------------------- 367s ============================= test session starts ============================== 367s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 367s cachedir: .pytest_cache 367s django: version: 5.2.9, settings: tests.testapp.settings (from ini) 367s rootdir: /tmp/autopkgtest.0meuw9/autopkgtest_tmp 367s configfile: setup.cfg 367s plugins: Faker-39.0.0, typeguard-4.4.4, django-4.11.1 371s collecting ... collected 32 items / 4 deselected / 28 selected 371s 371s tests/test_fields.py::test_unhandled_field_type Creating test database for alias 'default'... 372s is currently unhandled, defaulting to str. 372s PASSED 372s tests/test_fields.py::test_custom_field PASSED 372s tests/test_fields.py::test_postgres_json_field PASSED 372s tests/test_fields.py::test_lazy_choice_field PASSED 372s tests/test_fields.py::test_enum_choices PASSED 372s tests/test_fields.py::test_enum_choices_generates_unique_enums PASSED 372s tests/test_fields.py::test_listing PASSED 372s tests/test_files.py::test_image_field_schema PASSED 372s tests/test_main.py::test_config_errors PASSED 373s tests/test_main.py::test_get_field_names PASSED 373s tests/test_queries.py::test_get_instance PASSED 373s tests/test_queries.py::test_get_instance_with_generic_foreign_key FAILED 373s tests/test_queries.py::test_get_queryset_with_reverse_one_to_one FAILED 373s tests/test_queries.py::test_get_queryset_with_foreign_key FAILED 373s tests/test_queries.py::test_get_queryset_with_reverse_foreign_key FAILED 373s tests/test_queries.py::test_get_queryset_with_generic_foreign_key PASSED 374s tests/test_relations.py::test_m2m FAILED 374s tests/test_relations.py::test_foreign_key FAILED 374s tests/test_relations.py::test_one_to_one FAILED 374s tests/test_relations.py::test_one_to_one_reverse FAILED 375s tests/test_relations.py::test_generic_relation FAILED 375s tests/test_relations.py::test_m2m_reverse FAILED 375s tests/test_schemas.py::test_description PASSED 376s tests/test_schemas.py::test_cache Destroying test database for alias 'default'... 376s PASSED 376s tests/test_schemas.py::test_include_exclude PASSED 376s tests/test_schemas.py::test_json PASSED 376s tests/test_schemas.py::test_include_from_annotations FAILED 376s tests/test_schemas.py::test_by_alias_generator PASSED 376s 376s =================================== FAILURES =================================== 376s __________________ test_get_instance_with_generic_foreign_key __________________ 376s 376s @pytest.mark.django_db 376s def test_get_instance_with_generic_foreign_key(): 376s 376s bookmark = Bookmark.objects.create(url="https://www.djangoproject.com/") 376s Tagged.objects.create(content_object=bookmark, slug="django") 376s 376s class TaggedSchema(ModelSchema): 376s class Config: 376s model = Tagged 376s 376s class BookmarkWithTaggedSchema(ModelSchema): 376s 376s tags: List[TaggedSchema] 376s 376s class Config: 376s model = Bookmark 376s 376s bookmark_with_tagged_schema = BookmarkWithTaggedSchema.from_django(bookmark) 376s 376s > assert bookmark_with_tagged_schema.dict() == { 376s "id": 1, 376s "tags": [ 376s { 376s 'content_object': 1, 376s "content_type": 20, 376s "id": 1, 376s "object_id": 1, 376s "slug": "django", 376s } 376s ], 376s "url": "https://www.djangoproject.com/", 376s } 376s E AssertionError: assert {'id': 1, 'ta...project.com/'} == {'id': 1, 'ta...project.com/'} 376s E 376s E Omitting 2 identical items, use -vv to show 376s E Differing items: 376s E {'tags': [{'id': 1}]} != {'tags': [{'content_object': 1, 'content_type': 20, 'id': 1, 'object_id': 1, ...}]} 376s E 376s E Full diff: 376s E {... 376s E 376s E ...Full output truncated (12 lines hidden), use '-vv' to show 376s 376s tests/test_queries.py:46: AssertionError 376s __________________ test_get_queryset_with_reverse_one_to_one ___________________ 376s 376s @pytest.mark.django_db 376s def test_get_queryset_with_reverse_one_to_one(): 376s """ 376s Test retrieving a Django queryset with reverse one-to-one relationships. 376s """ 376s user_data = [ 376s {"first_name": "Jordan", "email": "jordan@eremieff.com"}, 376s {"first_name": "Sara", "email": "sara@example.com"}, 376s ] 376s for kwargs in user_data: 376s user = User.objects.create(**kwargs) 376s Profile.objects.create(user=user, location="Australia") 376s 376s class UserSchema(ModelSchema): 376s class Config: 376s model = User 376s include = ["id", "email", "first_name", "profile"] 376s 376s users = User.objects.all() 376s user_schema_qs = UserSchema.from_django(users, many=True) 376s assert user_schema_qs == [ 376s { 376s "email": "jordan@eremieff.com", 376s "first_name": "Jordan", 376s "id": 1, 376s "profile": 1, 376s }, 376s {"email": "sara@example.com", "first_name": "Sara", "id": 2, "profile": 2}, 376s ] 376s 376s # Test when using a declared sub-model 376s class ProfileSchema(ModelSchema): 376s class Config: 376s model = Profile 376s include = ["id", "location"] 376s 376s class UserWithProfileSchema(ModelSchema): 376s 376s profile: ProfileSchema 376s 376s class Config: 376s model = User 376s exclude = ["created_at", "updated_at", "last_name"] 376s 376s users = User.objects.all() 376s 376s user_with_profile_schema_qs = UserWithProfileSchema.from_django(users, many=True) 376s > assert user_with_profile_schema_qs == [ 376s { 376s "email": "jordan@eremieff.com", 376s "first_name": "Jordan", 376s "id": 1, 376s "profile": {"id": 1, "location": "Australia"}, 376s }, 376s { 376s "email": "sara@example.com", 376s "first_name": "Sara", 376s "id": 2, 376s "profile": {"id": 2, "location": "Australia"}, 376s }, 376s ] 376s E AssertionError: assert [UserWithProf...example.com')] == [{'email': 'j...'Australia'}}] 376s E 376s 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'}} 376s E 376s E Full diff: 376s E [ 376s E + UserWithProfileSchema(profile=1, id=1, first_name='Jordan', email='jordan@eremieff.com'), 376s E + UserWithProfileSchema(profile=2, id=2, first_name='Sara', email='sara@example.com'),... 376s E 376s E ...Full output truncated (19 lines hidden), use '-vv' to show 376s 376s tests/test_queries.py:108: AssertionError 376s ______________________ test_get_queryset_with_foreign_key ______________________ 376s 376s @pytest.mark.django_db 376s def test_get_queryset_with_foreign_key(): 376s """ 376s Test retrieving a Django queryset with foreign-key relationships. 376s """ 376s 376s thread = Thread.objects.create(title="My thread topic") 376s thread2 = Thread.objects.create(title="Another topic") 376s for content in ("I agree.", "I disagree!", "lol"): 376s message_one = Message.objects.create(content=content, thread=thread) 376s Message.objects.create(content=content, thread=thread2) 376s 376s class MessageSchema(ModelSchema): 376s class Config: 376s model = Message 376s exclude = ["created_at"] 376s 376s schema = MessageSchema.from_django(message_one) 376s assert schema.dict() == {"id": 5, "content": "lol", "thread": 1} 376s 376s class ThreadSchema(ModelSchema): 376s class Config: 376s model = Thread 376s exclude = ["created_at"] 376s 376s class MessageWithThreadSchema(ModelSchema): 376s thread: ThreadSchema 376s 376s class Config: 376s model = Message 376s exclude = ["created_at"] 376s 376s schema = MessageWithThreadSchema.from_django(message_one) 376s > assert schema.dict() == { 376s "id": 5, 376s "content": "lol", 376s "thread": { 376s "messages": [{"id": 1}, {"id": 3}, {"id": 5}], 376s "id": 1, 376s "title": "My thread topic", 376s }, 376s } 376s E AssertionError: assert {'content': '..., 'thread': 1} == {'content': '...hread topic'}} 376s E 376s E Omitting 2 identical items, use -vv to show 376s E Differing items: 376s E {'thread': 1} != {'thread': {'id': 1, 'messages': [{'id': 1}, {'id': 3}, {'id': 5}], 'title': 'My thread topic'}} 376s E 376s E Full diff: 376s E {... 376s E 376s E ...Full output truncated (21 lines hidden), use '-vv' to show 376s 376s tests/test_queries.py:157: AssertionError 376s __________________ test_get_queryset_with_reverse_foreign_key __________________ 376s 376s @pytest.mark.django_db 376s def test_get_queryset_with_reverse_foreign_key(): 376s """ 376s Test retrieving a Django queryset with reverse foreign-key relationships. 376s """ 376s 376s thread = Thread.objects.create(title="My thread topic") 376s thread2 = Thread.objects.create(title="Another topic") 376s for content in ("I agree.", "I disagree!", "lol"): 376s Message.objects.create(content=content, thread=thread) 376s Message.objects.create(content=content, thread=thread2) 376s 376s threads = Thread.objects.all() 376s 376s class MessageSchema(ModelSchema): 376s class Config: 376s model = Message 376s include = ["id", "content"] 376s 376s class ThreadSchema(ModelSchema): 376s class Config: 376s model = Thread 376s 376s thread_schema_qs = ThreadSchema.from_django(threads, many=True) 376s thread_schemas = [t.dict() for t in thread_schema_qs] 376s assert thread_schemas == [ 376s { 376s "messages": [{"id": 2}, {"id": 4}, {"id": 6}], 376s "id": 2, 376s "title": "Another topic", 376s }, 376s { 376s "messages": [{"id": 1}, {"id": 3}, {"id": 5}], 376s "id": 1, 376s "title": "My thread topic", 376s }, 376s ] 376s 376s # Test when using a declared sub-model 376s class ThreadWithMessageListSchema(ModelSchema): 376s messages: List[MessageSchema] 376s 376s class Config: 376s model = Thread 376s exclude = ["created_at", "updated_at"] 376s 376s thread_with_message_list_schema_qs = ThreadWithMessageListSchema.from_django( 376s threads, many=True 376s ) 376s 376s > assert thread_with_message_list_schema_qs == [ 376s { 376s "messages": [ 376s {"id": 2, "content": "I agree."}, 376s {"id": 4, "content": "I disagree!"}, 376s {"id": 6, "content": "lol"}, 376s ], 376s "id": 2, 376s "title": "Another topic", 376s }, 376s { 376s "messages": [ 376s {"id": 1, "content": "I agree."}, 376s {"id": 3, "content": "I disagree!"}, 376s {"id": 5, "content": "lol"}, 376s ], 376s "id": 1, 376s "title": "My thread topic", 376s }, 376s ] 376s E AssertionError: assert [ThreadWithMe...hread topic')] == [{'id': 2, 'm...hread topic'}] 376s E 376s 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'} 376s E 376s E Full diff: 376s E [ 376s E + ThreadWithMessageListSchema(messages=[{'id': 2}, {'id': 4}, {'id': 6}], id=2, title='Another topic'), 376s E + ThreadWithMessageListSchema(messages=[{'id': 1}, {'id': 3}, {'id': 5}], id=1, title='My thread topic'),... 376s E 376s E ...Full output truncated (37 lines hidden), use '-vv' to show 376s 376s tests/test_queries.py:218: AssertionError 376s ___________________________________ test_m2m ___________________________________ 376s 376s @pytest.mark.django_db 376s def test_m2m(): 376s """ 376s Test forward m2m relationships. 376s """ 376s 376s class ArticleSchema(ModelSchema): 376s class Config: 376s model = Article 376s 376s assert ArticleSchema.schema() == { 376s "title": "ArticleSchema", 376s "description": "A news article.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "headline": { 376s "title": "Headline", 376s "description": "headline", 376s "maxLength": 100, 376s "type": "string", 376s }, 376s "pub_date": { 376s "title": "Pub Date", 376s "description": "pub_date", 376s "type": "string", 376s "format": "date", 376s }, 376s "publications": { 376s "title": "Publications", 376s "description": "id", 376s "type": "array", 376s "items": { 376s "type": "object", 376s "additionalProperties": {"type": "integer"}, 376s }, 376s }, 376s }, 376s "required": ["headline", "pub_date", "publications"], 376s } 376s 376s class PublicationSchema(ModelSchema): 376s class Config: 376s model = Publication 376s 376s class ArticleWithPublicationListSchema(ModelSchema): 376s publications: List[PublicationSchema] 376s 376s class Config: 376s model = Article 376s 376s > assert ArticleWithPublicationListSchema.schema() == { 376s "title": "ArticleWithPublicationListSchema", 376s "description": "A news article.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "headline": { 376s "title": "Headline", 376s "description": "headline", 376s "maxLength": 100, 376s "type": "string", 376s }, 376s "pub_date": { 376s "title": "Pub Date", 376s "description": "pub_date", 376s "type": "string", 376s "format": "date", 376s }, 376s "publications": { 376s "title": "Publications", 376s "type": "array", 376s "items": {"$ref": "#/definitions/PublicationSchema"}, 376s }, 376s }, 376s "required": ["headline", "pub_date", "publications"], 376s "definitions": { 376s "PublicationSchema": { 376s "title": "PublicationSchema", 376s "description": "A news publication.", 376s "type": "object", 376s "properties": { 376s "article_set": { 376s "title": "Article Set", 376s "description": "id", 376s "type": "array", 376s "items": { 376s "type": "object", 376s "additionalProperties": {"type": "integer"}, 376s }, 376s }, 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "title": { 376s "title": "Title", 376s "description": "title", 376s "maxLength": 30, 376s "type": "string", 376s }, 376s }, 376s "required": ["title"], 376s } 376s }, 376s } 376s E AssertionError: assert {'description...tSchema', ...} == {'definitions...ations'], ...} 376s E 376s E Omitting 4 identical items, use -vv to show 376s E Differing items: 376s 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'}}} 376s E Right contains 1 more item: 376s E {'defi... 376s E 376s E ...Full output truncated (94 lines hidden), use '-vv' to show 376s 376s tests/test_relations.py:74: AssertionError 376s _______________________________ test_foreign_key _______________________________ 376s 376s @pytest.mark.django_db 376s def test_foreign_key(): 376s """ 376s Test forward foreign-key relationships. 376s """ 376s 376s class ThreadSchema(ModelSchema): 376s class Config: 376s model = Thread 376s 376s class MessageSchema(ModelSchema): 376s class Config: 376s model = Message 376s 376s assert MessageSchema.schema() == { 376s "title": "MessageSchema", 376s "description": "A message posted in a thread.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "content": {"title": "Content", "description": "content", "type": "string"}, 376s "created_at": { 376s "title": "Created At", 376s "description": "created_at", 376s "type": "string", 376s "format": "date-time", 376s }, 376s "thread": {"title": "Thread", "description": "id", "type": "integer"}, 376s }, 376s "required": ["content", "created_at", "thread"], 376s } 376s 376s class MessageWithThreadSchema(ModelSchema): 376s 376s thread: ThreadSchema 376s 376s class Config: 376s model = Message 376s 376s > assert MessageWithThreadSchema.schema() == { 376s "title": "MessageWithThreadSchema", 376s "description": "A message posted in a thread.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "content": {"title": "Content", "description": "content", "type": "string"}, 376s "created_at": { 376s "title": "Created At", 376s "description": "created_at", 376s "type": "string", 376s "format": "date-time", 376s }, 376s "thread": {"$ref": "#/definitions/ThreadSchema"}, 376s }, 376s "required": ["content", "created_at", "thread"], 376s "definitions": { 376s "ThreadSchema": { 376s "title": "ThreadSchema", 376s "description": "A thread of messages.", 376s "type": "object", 376s "properties": { 376s "messages": { 376s "title": "Messages", 376s "description": "id", 376s "type": "array", 376s "items": { 376s "type": "object", 376s "additionalProperties": {"type": "integer"}, 376s }, 376s }, 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "title": { 376s "title": "Title", 376s "description": "title", 376s "maxLength": 30, 376s "type": "string", 376s }, 376s }, 376s "required": ["title"], 376s } 376s }, 376s } 376s E AssertionError: assert {'description...dSchema', ...} == {'definitions...thread'], ...} 376s E 376s E Omitting 4 identical items, use -vv to show 376s E Differing items: 376s 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'}}} 376s E Right contains 1 more item: 376s E {'defi... 376s E 376s E ...Full output truncated (86 lines hidden), use '-vv' to show 376s 376s tests/test_relations.py:181: AssertionError 376s _______________________________ test_one_to_one ________________________________ 376s 376s @pytest.mark.django_db 376s def test_one_to_one(): 376s """ 376s Test forward one-to-one relationships. 376s """ 376s 376s class UserSchema(ModelSchema): 376s class Config: 376s model = User 376s 376s class ProfileSchema(ModelSchema): 376s class Config: 376s model = Profile 376s 376s assert ProfileSchema.schema() == { 376s "title": "ProfileSchema", 376s "description": "A user's profile.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "user": {"title": "User", "description": "id", "type": "integer"}, 376s "website": { 376s "title": "Website", 376s "description": "website", 376s "default": "", 376s "maxLength": 200, 376s "type": "string", 376s }, 376s "location": { 376s "title": "Location", 376s "description": "location", 376s "default": "", 376s "maxLength": 100, 376s "type": "string", 376s }, 376s }, 376s "required": ["user"], 376s } 376s 376s class ProfileWithUserSchema(ModelSchema): 376s user: UserSchema 376s 376s class Config: 376s model = Profile 376s 376s > assert ProfileWithUserSchema.schema() == { 376s "title": "ProfileWithUserSchema", 376s "description": "A user's profile.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "user": {"$ref": "#/definitions/UserSchema"}, 376s "website": { 376s "title": "Website", 376s "description": "website", 376s "default": "", 376s "maxLength": 200, 376s "type": "string", 376s }, 376s "location": { 376s "title": "Location", 376s "description": "location", 376s "default": "", 376s "maxLength": 100, 376s "type": "string", 376s }, 376s }, 376s "required": ["user"], 376s "definitions": { 376s "UserSchema": { 376s "title": "UserSchema", 376s "description": "A user of the application.", 376s "type": "object", 376s "properties": { 376s "profile": { 376s "title": "Profile", 376s "description": "id", 376s "type": "integer", 376s }, 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "first_name": { 376s "title": "First Name", 376s "description": "first_name", 376s "maxLength": 50, 376s "type": "string", 376s }, 376s "last_name": { 376s "title": "Last Name", 376s "description": "last_name", 376s "maxLength": 50, 376s "type": "string", 376s }, 376s "email": { 376s "title": "Email", 376s "description": "email", 376s "maxLength": 254, 376s "type": "string", 376s }, 376s "created_at": { 376s "title": "Created At", 376s "description": "created_at", 376s "type": "string", 376s "format": "date-time", 376s }, 376s "updated_at": { 376s "title": "Updated At", 376s "description": "updated_at", 376s "type": "string", 376s "format": "date-time", 376s }, 376s }, 376s "required": ["first_name", "email", "created_at", "updated_at"], 376s } 376s }, 376s } 376s E AssertionError: assert {'description...rSchema', ...} == {'definitions...['user'], ...} 376s E 376s E Omitting 4 identical items, use -vv to show 376s E Differing items: 376s 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', ...}}} 376s E Right contains 1 more item: 376s E {'defi... 376s E 376s E ...Full output truncated (129 lines hidden), use '-vv' to show 376s 376s tests/test_relations.py:325: AssertionError 376s ___________________________ test_one_to_one_reverse ____________________________ 376s 376s @pytest.mark.django_db 376s def test_one_to_one_reverse(): 376s """ 376s Test reverse one-to-one relationships. 376s """ 376s 376s class ProfileSchema(ModelSchema): 376s class Config: 376s model = Profile 376s 376s class UserSchema(ModelSchema): 376s class Config: 376s model = User 376s 376s assert ProfileSchema.schema() == { 376s "title": "ProfileSchema", 376s "description": "A user's profile.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "user": {"title": "User", "description": "id", "type": "integer"}, 376s "website": { 376s "title": "Website", 376s "description": "website", 376s "default": "", 376s "maxLength": 200, 376s "type": "string", 376s }, 376s "location": { 376s "title": "Location", 376s "description": "location", 376s "default": "", 376s "maxLength": 100, 376s "type": "string", 376s }, 376s }, 376s "required": ["user"], 376s } 376s 376s class UserWithProfileSchema(ModelSchema): 376s profile: ProfileSchema 376s 376s class Config: 376s model = User 376s 376s > assert UserWithProfileSchema.schema() == { 376s "title": "UserWithProfileSchema", 376s "description": "A user of the application.", 376s "type": "object", 376s "properties": { 376s "profile": {"$ref": "#/definitions/ProfileSchema"}, 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "first_name": { 376s "title": "First Name", 376s "description": "first_name", 376s "maxLength": 50, 376s "type": "string", 376s }, 376s "last_name": { 376s "title": "Last Name", 376s "description": "last_name", 376s "maxLength": 50, 376s "type": "string", 376s }, 376s "email": { 376s "title": "Email", 376s "description": "email", 376s "maxLength": 254, 376s "type": "string", 376s }, 376s "created_at": { 376s "title": "Created At", 376s "description": "created_at", 376s "type": "string", 376s "format": "date-time", 376s }, 376s "updated_at": { 376s "title": "Updated At", 376s "description": "updated_at", 376s "type": "string", 376s "format": "date-time", 376s }, 376s }, 376s "required": ["profile", "first_name", "email", "created_at", "updated_at"], 376s "definitions": { 376s "ProfileSchema": { 376s "title": "ProfileSchema", 376s "description": "A user's profile.", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "user": {"title": "User", "description": "id", "type": "integer"}, 376s "website": { 376s "title": "Website", 376s "description": "website", 376s "default": "", 376s "maxLength": 200, 376s "type": "string", 376s }, 376s "location": { 376s "title": "Location", 376s "description": "location", 376s "default": "", 376s "maxLength": 100, 376s "type": "string", 376s }, 376s }, 376s "required": ["user"], 376s } 376s }, 376s } 376s E AssertionError: assert {'description...eSchema', ...} == {'definitions...ted_at'], ...} 376s E 376s E Omitting 3 identical items, use -vv to show 376s E Differing items: 376s E {'required': ['first_name', 'email', 'created_at', 'updated_at']} != {'required': ['profile', 'first_name', 'email', 'created_at', 'updated_at']} 376s 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... 376s E 376s E ...Full output truncated (115 lines hidden), use '-vv' to show 376s 376s tests/test_relations.py:442: AssertionError 376s ____________________________ test_generic_relation _____________________________ 376s 376s @pytest.mark.django_db 376s def test_generic_relation(): 376s """ 376s Test generic foreign-key relationships. 376s """ 376s 376s class TaggedSchema(ModelSchema): 376s class Config: 376s model = Tagged 376s 376s assert TaggedSchema.schema() == { 376s "title": "TaggedSchema", 376s "description": "Tagged(id, slug, content_type, object_id)", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "slug": { 376s "title": "Slug", 376s "description": "slug", 376s "maxLength": 50, 376s "type": "string", 376s }, 376s "content_type": { 376s "title": "Content Type", 376s "description": "id", 376s "type": "integer", 376s }, 376s "object_id": { 376s "title": "Object Id", 376s "description": "object_id", 376s "type": "integer", 376s }, 376s "content_object": { 376s "title": "Content Object", 376s "description": "content_object", 376s "type": "integer", 376s }, 376s }, 376s "required": ["slug", "content_type", "object_id", "content_object"], 376s } 376s 376s > class BookmarkSchema(ModelSchema): 376s 376s tests/test_relations.py:551: 376s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 376s /usr/lib/python3/dist-packages/djantic/main.py:45: in __new__ 376s cls = super().__new__(mcs, name, bases, namespace) 376s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 376s /usr/lib/python3/dist-packages/pydantic/v1/main.py:221: in __new__ 376s inferred = ModelField.infer( 376s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:504: in infer 376s return cls( 376s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:434: in __init__ 376s self.prepare() 376s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:544: in prepare 376s self._set_default_and_type() 376s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 376s 376s self = ModelField(name='tags', type=UndefinedType, required=False, default=None) 376s 376s def _set_default_and_type(self) -> None: 376s """ 376s Set the default value, infer the type if needed and check if `None` value is valid. 376s """ 376s if self.default_factory is not None: 376s if self.type_ is Undefined: 376s raise errors_.ConfigError( 376s f'you need to set the type of field {self.name!r} when using `default_factory`' 376s ) 376s return 376s 376s default_value = self.get_default() 376s 376s if default_value is not None and self.type_ is Undefined: 376s self.type_ = default_value.__class__ 376s self.outer_type_ = self.type_ 376s self.annotation = self.type_ 376s 376s if self.type_ is Undefined: 376s > raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"') 376s E pydantic.v1.errors.ConfigError: unable to infer type for attribute "tags" 376s 376s /usr/lib/python3/dist-packages/pydantic/v1/fields.py:576: ConfigError 376s _______________________________ test_m2m_reverse _______________________________ 376s 376s @pytest.mark.django_db 376s def test_m2m_reverse(): 376s class ExpertSchema(ModelSchema): 376s class Config: 376s model = Expert 376s 376s class CaseSchema(ModelSchema): 376s class Config: 376s model = Case 376s 376s assert ExpertSchema.schema() == { 376s "title": "ExpertSchema", 376s "description": "Expert(id, name)", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "name": { 376s "title": "Name", 376s "description": "name", 376s "maxLength": 128, 376s "type": "string", 376s }, 376s "cases": { 376s "title": "Cases", 376s "description": "id", 376s "type": "array", 376s "items": { 376s "type": "object", 376s "additionalProperties": {"type": "integer"}, 376s }, 376s }, 376s }, 376s "required": ["name", "cases"], 376s } 376s 376s assert CaseSchema.schema() == { 376s "title": "CaseSchema", 376s "description": "Case(id, name, details)", 376s "type": "object", 376s "properties": { 376s "related_experts": { 376s "title": "Related Experts", 376s "description": "id", 376s "type": "array", 376s "items": { 376s "type": "object", 376s "additionalProperties": {"type": "integer"}, 376s }, 376s }, 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "name": { 376s "title": "Name", 376s "description": "name", 376s "maxLength": 128, 376s "type": "string", 376s }, 376s "details": {"title": "Details", "description": "details", "type": "string"}, 376s }, 376s "required": ["name", "details"], 376s } 376s case = Case.objects.create(name="My Case", details="Some text data.") 376s expert = Expert.objects.create(name="My Expert") 376s case_schema = CaseSchema.from_django(case) 376s expert_schema = ExpertSchema.from_django(expert) 376s assert case_schema.dict() == { 376s "related_experts": [], 376s "id": 1, 376s "name": "My Case", 376s "details": "Some text data.", 376s } 376s assert expert_schema.dict() == {"id": 1, "name": "My Expert", "cases": []} 376s 376s expert.cases.add(case) 376s case_schema = CaseSchema.from_django(case) 376s expert_schema = ExpertSchema.from_django(expert) 376s assert case_schema.dict() == { 376s "related_experts": [{"id": 1}], 376s "id": 1, 376s "name": "My Case", 376s "details": "Some text data.", 376s } 376s assert expert_schema.dict() == {"id": 1, "name": "My Expert", "cases": [{"id": 1}]} 376s 376s class CustomExpertSchema(ModelSchema): 376s """Custom schema""" 376s 376s name: Optional[str] 376s 376s class Config: 376s model = Expert 376s 376s class CaseSchema(ModelSchema): 376s related_experts: List[CustomExpertSchema] 376s 376s class Config: 376s model = Case 376s 376s > assert CaseSchema.schema() == { 376s "title": "CaseSchema", 376s "description": "Case(id, name, details)", 376s "type": "object", 376s "properties": { 376s "related_experts": { 376s "title": "Related Experts", 376s "type": "array", 376s "items": {"$ref": "#/definitions/CustomExpertSchema"}, 376s }, 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "name": { 376s "title": "Name", 376s "description": "name", 376s "maxLength": 128, 376s "type": "string", 376s }, 376s "details": {"title": "Details", "description": "details", "type": "string"}, 376s }, 376s "required": ["related_experts", "name", "details"], 376s "definitions": { 376s "CustomExpertSchema": { 376s "title": "CustomExpertSchema", 376s "description": "Custom schema", 376s "type": "object", 376s "properties": { 376s "id": {"title": "Id", "description": "id", "type": "integer"}, 376s "name": {"title": "Name", "type": "string"}, 376s "cases": { 376s "title": "Cases", 376s "description": "id", 376s "type": "array", 376s "items": { 376s "type": "object", 376s "additionalProperties": {"type": "integer"}, 376s }, 376s }, 376s }, 376s "required": ["cases"], 376s } 376s }, 376s } 376s E AssertionError: assert {'description...eSchema', ...} == {'definitions...etails'], ...} 376s E 376s E Omitting 3 identical items, use -vv to show 376s E Differing items: 376s E {'required': ['name', 'details']} != {'required': ['related_experts', 'name', 'details']} 376s 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... 376s E 376s E ...Full output truncated (90 lines hidden), use '-vv' to show 376s 376s tests/test_relations.py:807: AssertionError 376s ________________________ test_include_from_annotations _________________________ 376s 376s @pytest.mark.django_db 376s def test_include_from_annotations(): 376s """ 376s Test include="__annotations__" config. 376s """ 376s 376s class ProfileSchema(ModelSchema): 376s website: str 376s 376s class Config: 376s model = Profile 376s include = "__annotations__" 376s 376s > assert ProfileSchema.schema() == { 376s "title": "ProfileSchema", 376s "description": "A user's profile.", 376s "type": "object", 376s "properties": { 376s "website": { 376s "title": "Website", 376s "type": "string" 376s } 376s }, 376s "required": [ 376s "website" 376s ] 376s } 376s E AssertionError: assert {'description...eSchema', ...} == {'description...eSchema', ...} 376s E 376s E Omitting 3 identical items, use -vv to show 376s E Differing items: 376s E {'required': ['user']} != {'required': ['website']} 376s 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'}}} 376s E 376s E Full diff:... 376s E 376s E ...Full output truncated (35 lines hidden), use '-vv' to show 376s 376s tests/test_schemas.py:398: AssertionError 376s =============================== warnings summary =============================== 376s ../../../usr/lib/python3/dist-packages/djantic/main.py:12 376s /usr/lib/python3/dist-packages/djantic/main.py:12: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater. 376s from pydantic.v1 import BaseModel, ConfigError, create_model 376s 376s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 376s ============================= slowest 10 durations ============================= 376s 1.50s setup tests/test_fields.py::test_unhandled_field_type 376s 0.13s setup tests/test_queries.py::test_get_instance 376s 0.13s call tests/test_fields.py::test_unhandled_field_type 376s 0.11s call tests/test_queries.py::test_get_queryset_with_reverse_one_to_one 376s 0.11s call tests/test_queries.py::test_get_queryset_with_generic_foreign_key 376s 0.10s teardown tests/test_schemas.py::test_by_alias_generator 376s 0.09s call tests/test_main.py::test_get_field_names 376s 0.07s call tests/test_relations.py::test_m2m_reverse 376s 0.06s call tests/test_queries.py::test_get_instance_with_generic_foreign_key 376s 0.05s call tests/test_relations.py::test_foreign_key 376s =========================== short test summary info ============================ 376s FAILED tests/test_queries.py::test_get_instance_with_generic_foreign_key - As... 376s FAILED tests/test_queries.py::test_get_queryset_with_reverse_one_to_one - Ass... 376s FAILED tests/test_queries.py::test_get_queryset_with_foreign_key - AssertionE... 376s FAILED tests/test_queries.py::test_get_queryset_with_reverse_foreign_key - As... 376s FAILED tests/test_relations.py::test_m2m - AssertionError: assert {'descripti... 376s FAILED tests/test_relations.py::test_foreign_key - AssertionError: assert {'d... 376s FAILED tests/test_relations.py::test_one_to_one - AssertionError: assert {'de... 376s FAILED tests/test_relations.py::test_one_to_one_reverse - AssertionError: ass... 376s FAILED tests/test_relations.py::test_generic_relation - pydantic.v1.errors.Co... 376s FAILED tests/test_relations.py::test_m2m_reverse - AssertionError: assert {'d... 376s FAILED tests/test_schemas.py::test_include_from_annotations - AssertionError:... 376s ============ 11 failed, 17 passed, 4 deselected, 1 warning in 8.73s ============ 378s autopkgtest [07:45:21]: test upstream: -----------------------] 380s autopkgtest [07:45:23]: test upstream: - - - - - - - - - - results - - - - - - - - - - 380s upstream FAIL non-zero exit status 1 381s autopkgtest [07:45:24]: @@@@@@@@@@@@@@@@@@@@ summary 381s upstream FAIL non-zero exit status 1