0s autopkgtest [09:18:28]: starting date and time: 2025-03-13 09:18:28+0000 0s autopkgtest [09:18:28]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [09:18:28]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.4a1hxp6d/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:poetry,src:dbus-fast,src:poetry-core --apt-upgrade poetry-plugin-export --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=poetry/2.1.1+dfsg-1 dbus-fast/2.39.3-1 poetry-core/2.1.1-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-1.secgroup --name adt-plucky-amd64-poetry-plugin-export-20250313-091828-juju-7f2275-prod-proposed-migration-environment-15-015db105-802b-4571-a7be-9db6b87b3b38 --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 48s autopkgtest [09:19:16]: testbed dpkg architecture: amd64 48s autopkgtest [09:19:16]: testbed apt version: 2.9.31ubuntu1 49s autopkgtest [09:19:17]: @@@@@@@@@@@@@@@@@@@@ test bed setup 49s autopkgtest [09:19:17]: testbed release detected to be: None 50s autopkgtest [09:19:18]: updating testbed package index (apt update) 50s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [110 kB] 50s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 50s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 50s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 50s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [11.5 kB] 50s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [429 kB] 50s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [44.2 kB] 50s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [48.8 kB] 50s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [62.4 kB] 50s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [174 kB] 50s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [378 kB] 51s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [3536 B] 51s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [7592 B] 51s Fetched 1269 kB in 1s (1512 kB/s) 51s Reading package lists... 52s + lsb_release --codename --short 52s + RELEASE=plucky 52s + cat 52s + [ plucky != trusty ] 52s + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y --allow-downgrades -o Dpkg::Options::=--force-confnew dist-upgrade 52s Reading package lists... 53s Building dependency tree... 53s Reading state information... 53s Calculating upgrade... 53s Calculating upgrade... 53s The following package was automatically installed and is no longer required: 53s libnl-genl-3-200 53s Use 'sudo apt autoremove' to remove it. 53s The following NEW packages will be installed: 53s libdebuginfod-common libdebuginfod1t64 linux-headers-6.14.0-7 53s linux-headers-6.14.0-7-generic linux-image-6.14.0-7-generic 53s linux-modules-6.14.0-7-generic linux-modules-extra-6.14.0-7-generic 53s linux-tools-6.14.0-7 linux-tools-6.14.0-7-generic pnp.ids 53s The following packages will be upgraded: 53s apparmor apt apt-utils binutils binutils-common binutils-x86-64-linux-gnu 53s curl dosfstools exfatprogs fwupd gcc-15-base gir1.2-girepository-2.0 53s gir1.2-glib-2.0 htop hwdata initramfs-tools initramfs-tools-bin 53s initramfs-tools-core libapparmor1 libapt-pkg7.0 libassuan9 libatomic1 53s libaudit-common libaudit1 libbinutils libbrotli1 libc-bin libc-dev-bin libc6 53s libc6-dev libcap-ng0 libctf-nobfd0 libctf0 libcurl3t64-gnutls libcurl4t64 53s libestr0 libftdi1-2 libfwupd3 libgcc-s1 libgirepository-1.0-1 53s libglib2.0-0t64 libglib2.0-data libgpgme11t64 libgprofng0 libjemalloc2 53s liblz4-1 liblzma5 libncurses6 libncursesw6 libnewt0.52 libnl-3-200 53s libnl-genl-3-200 libnl-route-3-200 libnss-systemd libpam-systemd 53s libparted2t64 libpci3 libpython3-stdlib libseccomp2 libselinux1 53s libsemanage-common libsemanage2 libsframe1 libsqlite3-0 libstdc++6 53s libsystemd-shared libsystemd0 libtinfo6 libudev1 libxml2 linux-firmware 53s linux-generic linux-headers-generic linux-headers-virtual 53s linux-image-generic linux-image-virtual linux-libc-dev linux-tools-common 53s linux-virtual locales media-types ncurses-base ncurses-bin ncurses-term 53s parted pci.ids pciutils python-apt-common python3 python3-apt python3-bcrypt 53s python3-cffi-backend python3-dbus python3-gi python3-lazr.uri 53s python3-markupsafe python3-minimal python3-newt python3-rpds-py 53s python3-systemd python3-yaml rsync rsyslog systemd systemd-cryptsetup 53s systemd-resolved systemd-sysv systemd-timesyncd ubuntu-kernel-accessories 53s ubuntu-minimal ubuntu-standard udev whiptail xz-utils 53s 114 upgraded, 10 newly installed, 0 to remove and 0 not upgraded. 53s Need to get 818 MB of archives. 53s After this operation, 325 MB of additional disk space will be used. 53s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 ncurses-bin amd64 6.5+20250216-2 [194 kB] 54s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 libc-dev-bin amd64 2.41-1ubuntu1 [24.7 kB] 54s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 libc6-dev amd64 2.41-1ubuntu1 [2182 kB] 54s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 locales all 2.41-1ubuntu1 [4246 kB] 54s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 libc6 amd64 2.41-1ubuntu1 [3327 kB] 54s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 libc-bin amd64 2.41-1ubuntu1 [701 kB] 54s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-libc-dev amd64 6.14.0-7.7 [1723 kB] 54s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libatomic1 amd64 15-20250222-0ubuntu1 [10.4 kB] 54s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-15-base amd64 15-20250222-0ubuntu1 [53.4 kB] 54s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-s1 amd64 15-20250222-0ubuntu1 [77.8 kB] 54s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++6 amd64 15-20250222-0ubuntu1 [798 kB] 54s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 ncurses-base all 6.5+20250216-2 [25.9 kB] 54s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 ncurses-term all 6.5+20250216-2 [276 kB] 54s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 liblz4-1 amd64 1.10.0-4 [66.4 kB] 54s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 liblzma5 amd64 5.6.4-1 [157 kB] 54s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libsystemd0 amd64 257.3-1ubuntu3 [595 kB] 54s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 libnss-systemd amd64 257.3-1ubuntu3 [199 kB] 54s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-sysv amd64 257.3-1ubuntu3 [11.9 kB] 54s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-resolved amd64 257.3-1ubuntu3 [345 kB] 54s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-systemd amd64 257.3-1ubuntu3 [302 kB] 54s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libsystemd-shared amd64 257.3-1ubuntu3 [2371 kB] 54s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd amd64 257.3-1ubuntu3 [3052 kB] 54s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-timesyncd amd64 257.3-1ubuntu3 [42.1 kB] 54s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-cryptsetup amd64 257.3-1ubuntu3 [124 kB] 54s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 udev amd64 257.3-1ubuntu3 [1404 kB] 55s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libudev1 amd64 257.3-1ubuntu3 [215 kB] 55s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit-common all 1:4.0.2-2ubuntu2 [6628 B] 55s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 libcap-ng0 amd64 0.8.5-4build1 [15.6 kB] 55s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit1 amd64 1:4.0.2-2ubuntu2 [54.0 kB] 55s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 libseccomp2 amd64 2.5.5-1ubuntu6 [53.5 kB] 55s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 libselinux1 amd64 3.7-3ubuntu3 [87.3 kB] 55s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 libapparmor1 amd64 4.1.0~beta5-0ubuntu8 [55.0 kB] 55s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libapt-pkg7.0 amd64 2.9.32ubuntu1 [1138 kB] 55s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 apt amd64 2.9.32ubuntu1 [1439 kB] 55s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 apt-utils amd64 2.9.32ubuntu1 [222 kB] 55s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-minimal amd64 3.13.2-2 [27.7 kB] 55s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 python3 amd64 3.13.2-2 [24.0 kB] 55s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3-stdlib amd64 3.13.2-2 [10.4 kB] 55s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 rsync amd64 3.4.1+ds1-3 [482 kB] 55s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebuginfod-common all 0.192-4 [15.4 kB] 55s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage-common all 3.7-2.1build1 [7268 B] 55s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage2 amd64 3.7-2.1build1 [106 kB] 55s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libncurses6 amd64 6.5+20250216-2 [126 kB] 55s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 libncursesw6 amd64 6.5+20250216-2 [165 kB] 55s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 libtinfo6 amd64 6.5+20250216-2 [119 kB] 55s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 libassuan9 amd64 3.0.2-2 [43.1 kB] 55s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-girepository-2.0 amd64 1.83.4-1 [25.3 kB] 55s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-glib-2.0 amd64 2.84.0-1 [184 kB] 55s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-0t64 amd64 2.84.0-1 [1669 kB] 55s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 libgirepository-1.0-1 amd64 1.83.4-1 [89.5 kB] 55s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 libestr0 amd64 0.1.11-2 [8340 B] 55s Get:52 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-data all 2.84.0-1 [53.0 kB] 55s Get:53 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-newt amd64 0.52.24-4ubuntu2 [21.1 kB] 55s Get:54 http://ftpmaster.internal/ubuntu plucky/main amd64 libnewt0.52 amd64 0.52.24-4ubuntu2 [55.7 kB] 55s Get:55 http://ftpmaster.internal/ubuntu plucky/main amd64 libsqlite3-0 amd64 3.46.1-2 [715 kB] 55s Get:56 http://ftpmaster.internal/ubuntu plucky/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2ubuntu5 [772 kB] 55s Get:57 http://ftpmaster.internal/ubuntu plucky/main amd64 media-types all 13.0.0 [29.9 kB] 55s Get:58 http://ftpmaster.internal/ubuntu plucky/main amd64 python-apt-common all 2.9.9build1 [21.3 kB] 55s Get:59 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-apt amd64 2.9.9build1 [172 kB] 55s Get:60 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-cffi-backend amd64 1.17.1-2build2 [96.6 kB] 55s Get:61 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dbus amd64 1.3.2-5build5 [102 kB] 55s Get:62 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-gi amd64 3.50.0-4build1 [252 kB] 55s Get:63 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-yaml amd64 6.0.2-1build2 [144 kB] 55s Get:64 http://ftpmaster.internal/ubuntu plucky/main amd64 rsyslog amd64 8.2412.0-2ubuntu2 [555 kB] 55s Get:65 http://ftpmaster.internal/ubuntu plucky/main amd64 whiptail amd64 0.52.24-4ubuntu2 [19.1 kB] 55s Get:66 http://ftpmaster.internal/ubuntu plucky/main amd64 ubuntu-minimal amd64 1.549 [11.5 kB] 55s Get:67 http://ftpmaster.internal/ubuntu plucky/main amd64 apparmor amd64 4.1.0~beta5-0ubuntu8 [701 kB] 55s Get:68 http://ftpmaster.internal/ubuntu plucky/main amd64 dosfstools amd64 4.2-1.2 [95.0 kB] 55s Get:69 http://ftpmaster.internal/ubuntu plucky/main amd64 libnl-genl-3-200 amd64 3.7.0-1 [12.2 kB] 55s Get:70 http://ftpmaster.internal/ubuntu plucky/main amd64 libnl-route-3-200 amd64 3.7.0-1 [191 kB] 55s Get:71 http://ftpmaster.internal/ubuntu plucky/main amd64 libnl-3-200 amd64 3.7.0-1 [64.9 kB] 55s Get:72 http://ftpmaster.internal/ubuntu plucky/main amd64 parted amd64 3.6-5 [53.9 kB] 55s Get:73 http://ftpmaster.internal/ubuntu plucky/main amd64 libparted2t64 amd64 3.6-5 [158 kB] 55s Get:74 http://ftpmaster.internal/ubuntu plucky/main amd64 pci.ids all 0.0~2025.03.09-1 [285 kB] 55s Get:75 http://ftpmaster.internal/ubuntu plucky/main amd64 pciutils amd64 1:3.13.0-2 [110 kB] 55s Get:76 http://ftpmaster.internal/ubuntu plucky/main amd64 libpci3 amd64 1:3.13.0-2 [39.8 kB] 55s Get:77 http://ftpmaster.internal/ubuntu plucky/main amd64 xz-utils amd64 5.6.4-1 [278 kB] 55s Get:78 http://ftpmaster.internal/ubuntu plucky/main amd64 ubuntu-standard amd64 1.549 [11.5 kB] 55s Get:79 http://ftpmaster.internal/ubuntu plucky/main amd64 libgprofng0 amd64 2.44-3ubuntu1 [886 kB] 55s Get:80 http://ftpmaster.internal/ubuntu plucky/main amd64 libctf0 amd64 2.44-3ubuntu1 [96.5 kB] 55s Get:81 http://ftpmaster.internal/ubuntu plucky/main amd64 libctf-nobfd0 amd64 2.44-3ubuntu1 [98.9 kB] 55s Get:82 http://ftpmaster.internal/ubuntu plucky/main amd64 binutils-x86-64-linux-gnu amd64 2.44-3ubuntu1 [1108 kB] 55s Get:83 http://ftpmaster.internal/ubuntu plucky/main amd64 libbinutils amd64 2.44-3ubuntu1 [585 kB] 55s Get:84 http://ftpmaster.internal/ubuntu plucky/main amd64 binutils amd64 2.44-3ubuntu1 [208 kB] 55s Get:85 http://ftpmaster.internal/ubuntu plucky/main amd64 binutils-common amd64 2.44-3ubuntu1 [215 kB] 55s Get:86 http://ftpmaster.internal/ubuntu plucky/main amd64 libsframe1 amd64 2.44-3ubuntu1 [14.8 kB] 55s Get:87 http://ftpmaster.internal/ubuntu plucky/main amd64 libbrotli1 amd64 1.1.0-2build4 [365 kB] 55s Get:88 http://ftpmaster.internal/ubuntu plucky/main amd64 curl amd64 8.12.1-3ubuntu1 [258 kB] 55s Get:89 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl4t64 amd64 8.12.1-3ubuntu1 [437 kB] 55s Get:90 http://ftpmaster.internal/ubuntu plucky/main amd64 exfatprogs amd64 1.2.8-1 [76.3 kB] 55s Get:91 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl3t64-gnutls amd64 8.12.1-3ubuntu1 [432 kB] 56s Get:92 http://ftpmaster.internal/ubuntu plucky/main amd64 fwupd amd64 2.0.6-4 [5408 kB] 56s Get:93 http://ftpmaster.internal/ubuntu plucky/main amd64 libfwupd3 amd64 2.0.6-4 [136 kB] 56s Get:94 http://ftpmaster.internal/ubuntu plucky/main amd64 htop amd64 3.4.0-2 [195 kB] 56s Get:95 http://ftpmaster.internal/ubuntu plucky/main amd64 hwdata all 0.393-3 [1562 B] 56s Get:96 http://ftpmaster.internal/ubuntu plucky/main amd64 pnp.ids all 0.393-3 [29.5 kB] 56s Get:97 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-firmware amd64 20250310.git9e1370d3-0ubuntu1 [571 MB] 81s Get:98 http://ftpmaster.internal/ubuntu plucky/main amd64 initramfs-tools all 0.146ubuntu1 [7920 B] 81s Get:99 http://ftpmaster.internal/ubuntu plucky/main amd64 initramfs-tools-core all 0.146ubuntu1 [51.9 kB] 81s Get:100 http://ftpmaster.internal/ubuntu plucky/main amd64 initramfs-tools-bin amd64 0.146ubuntu1 [26.2 kB] 81s Get:101 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebuginfod1t64 amd64 0.192-4 [21.0 kB] 82s Get:102 http://ftpmaster.internal/ubuntu plucky/main amd64 libftdi1-2 amd64 1.5-8build1 [30.2 kB] 82s Get:103 http://ftpmaster.internal/ubuntu plucky/main amd64 libgpgme11t64 amd64 1.24.2-1ubuntu2 [155 kB] 82s Get:104 http://ftpmaster.internal/ubuntu plucky/main amd64 libjemalloc2 amd64 5.3.0-3 [277 kB] 82s Get:105 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-modules-6.14.0-7-generic amd64 6.14.0-7.7 [41.2 MB] 84s Get:106 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-image-6.14.0-7-generic amd64 6.14.0-7.7 [15.3 MB] 84s Get:107 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-modules-extra-6.14.0-7-generic amd64 6.14.0-7.7 [120 MB] 88s Get:108 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-generic amd64 6.14.0-7.7+1 [1736 B] 88s Get:109 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-image-generic amd64 6.14.0-7.7+1 [11.1 kB] 88s Get:110 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-virtual amd64 6.14.0-7.7+1 [1724 B] 88s Get:111 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-image-virtual amd64 6.14.0-7.7+1 [11.1 kB] 88s Get:112 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-virtual amd64 6.14.0-7.7+1 [1648 B] 88s Get:113 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-6.14.0-7 all 6.14.0-7.7 [14.2 MB] 88s Get:114 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-6.14.0-7-generic amd64 6.14.0-7.7 [3859 kB] 88s Get:115 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-generic amd64 6.14.0-7.7+1 [11.0 kB] 88s Get:116 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-tools-common all 6.14.0-7.7 [521 kB] 88s Get:117 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-tools-6.14.0-7 amd64 6.14.0-7.7 [6147 kB] 88s Get:118 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-tools-6.14.0-7-generic amd64 6.14.0-7.7 [1612 B] 88s Get:119 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-lazr.uri all 1.0.6-6 [13.7 kB] 88s Get:120 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-markupsafe amd64 2.1.5-1build4 [13.4 kB] 88s Get:121 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-rpds-py amd64 0.21.0-2ubuntu2 [278 kB] 88s Get:122 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-systemd amd64 235-1build6 [43.9 kB] 88s Get:123 http://ftpmaster.internal/ubuntu plucky/main amd64 ubuntu-kernel-accessories amd64 1.549 [11.2 kB] 88s Get:124 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-bcrypt amd64 4.2.0-2.1build1 [221 kB] 89s Preconfiguring packages ... 89s Fetched 818 MB in 35s (23.2 MB/s) 89s (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 ... 109140 files and directories currently installed.) 89s Preparing to unpack .../ncurses-bin_6.5+20250216-2_amd64.deb ... 89s Unpacking ncurses-bin (6.5+20250216-2) over (6.5+20250216-1) ... 89s Setting up ncurses-bin (6.5+20250216-2) ... 89s (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 ... 109140 files and directories currently installed.) 89s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu1_amd64.deb ... 89s Unpacking libc-dev-bin (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 89s Preparing to unpack .../libc6-dev_2.41-1ubuntu1_amd64.deb ... 89s Unpacking libc6-dev:amd64 (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 89s Preparing to unpack .../locales_2.41-1ubuntu1_all.deb ... 89s Unpacking locales (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 90s Preparing to unpack .../libc6_2.41-1ubuntu1_amd64.deb ... 90s Checking for services that may need to be restarted... 90s Checking init scripts... 90s Checking for services that may need to be restarted... 90s Checking init scripts... 90s Stopping some services possibly affected by the upgrade (will be restarted later): 90s cron: stopping...done. 90s 90s Unpacking libc6:amd64 (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 90s Setting up libc6:amd64 (2.41-1ubuntu1) ... 90s Checking for services that may need to be restarted... 90s Checking init scripts... 90s Restarting services possibly affected by the upgrade: 90s cron: restarting...done. 90s 90s Services restarted successfully. 90s (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 ... 109141 files and directories currently installed.) 90s Preparing to unpack .../libc-bin_2.41-1ubuntu1_amd64.deb ... 90s Unpacking libc-bin (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 90s Setting up libc-bin (2.41-1ubuntu1) ... 91s (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 ... 109141 files and directories currently installed.) 91s Preparing to unpack .../linux-libc-dev_6.14.0-7.7_amd64.deb ... 91s Unpacking linux-libc-dev:amd64 (6.14.0-7.7) over (6.12.0-16.16) ... 91s Preparing to unpack .../libatomic1_15-20250222-0ubuntu1_amd64.deb ... 91s Unpacking libatomic1:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 91s Preparing to unpack .../gcc-15-base_15-20250222-0ubuntu1_amd64.deb ... 91s Unpacking gcc-15-base:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 91s Setting up gcc-15-base:amd64 (15-20250222-0ubuntu1) ... 91s (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 ... 109147 files and directories currently installed.) 91s Preparing to unpack .../libgcc-s1_15-20250222-0ubuntu1_amd64.deb ... 91s Unpacking libgcc-s1:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 91s Setting up libgcc-s1:amd64 (15-20250222-0ubuntu1) ... 91s (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 ... 109147 files and directories currently installed.) 91s Preparing to unpack .../libstdc++6_15-20250222-0ubuntu1_amd64.deb ... 91s Unpacking libstdc++6:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 91s Setting up libstdc++6:amd64 (15-20250222-0ubuntu1) ... 91s (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 ... 109147 files and directories currently installed.) 91s Preparing to unpack .../ncurses-base_6.5+20250216-2_all.deb ... 91s Unpacking ncurses-base (6.5+20250216-2) over (6.5+20250216-1) ... 91s Setting up ncurses-base (6.5+20250216-2) ... 91s (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 ... 109147 files and directories currently installed.) 91s Preparing to unpack .../ncurses-term_6.5+20250216-2_all.deb ... 91s Unpacking ncurses-term (6.5+20250216-2) over (6.5+20250216-1) ... 92s Preparing to unpack .../liblz4-1_1.10.0-4_amd64.deb ... 92s Unpacking liblz4-1:amd64 (1.10.0-4) over (1.10.0-3) ... 92s Setting up liblz4-1:amd64 (1.10.0-4) ... 92s (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 ... 109147 files and directories currently installed.) 92s Preparing to unpack .../liblzma5_5.6.4-1_amd64.deb ... 92s Unpacking liblzma5:amd64 (5.6.4-1) over (5.6.3-1) ... 92s Setting up liblzma5:amd64 (5.6.4-1) ... 92s (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 ... 109147 files and directories currently installed.) 92s Preparing to unpack .../libsystemd0_257.3-1ubuntu3_amd64.deb ... 92s Unpacking libsystemd0:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 92s Setting up libsystemd0:amd64 (257.3-1ubuntu3) ... 92s (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 ... 109147 files and directories currently installed.) 92s Preparing to unpack .../libnss-systemd_257.3-1ubuntu3_amd64.deb ... 92s Unpacking libnss-systemd:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 92s Preparing to unpack .../systemd-sysv_257.3-1ubuntu3_amd64.deb ... 92s Unpacking systemd-sysv (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 92s Preparing to unpack .../systemd-resolved_257.3-1ubuntu3_amd64.deb ... 92s Unpacking systemd-resolved (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 92s Preparing to unpack .../libpam-systemd_257.3-1ubuntu3_amd64.deb ... 92s Unpacking libpam-systemd:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 92s Preparing to unpack .../libsystemd-shared_257.3-1ubuntu3_amd64.deb ... 92s Unpacking libsystemd-shared:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 92s Setting up libsystemd-shared:amd64 (257.3-1ubuntu3) ... 92s (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 ... 109147 files and directories currently installed.) 92s Preparing to unpack .../systemd_257.3-1ubuntu3_amd64.deb ... 92s Unpacking systemd (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 93s Preparing to unpack .../systemd-timesyncd_257.3-1ubuntu3_amd64.deb ... 93s Unpacking systemd-timesyncd (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 93s Preparing to unpack .../systemd-cryptsetup_257.3-1ubuntu3_amd64.deb ... 93s Unpacking systemd-cryptsetup (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 93s Preparing to unpack .../udev_257.3-1ubuntu3_amd64.deb ... 93s Unpacking udev (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 93s Preparing to unpack .../libudev1_257.3-1ubuntu3_amd64.deb ... 93s Unpacking libudev1:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 93s Setting up libudev1:amd64 (257.3-1ubuntu3) ... 93s (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 ... 109147 files and directories currently installed.) 93s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu2_all.deb ... 93s Unpacking libaudit-common (1:4.0.2-2ubuntu2) over (1:4.0.2-2ubuntu1) ... 93s Setting up libaudit-common (1:4.0.2-2ubuntu2) ... 93s (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 ... 109147 files and directories currently installed.) 93s Preparing to unpack .../libcap-ng0_0.8.5-4build1_amd64.deb ... 93s Unpacking libcap-ng0:amd64 (0.8.5-4build1) over (0.8.5-4) ... 93s Setting up libcap-ng0:amd64 (0.8.5-4build1) ... 93s (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 ... 109147 files and directories currently installed.) 93s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu2_amd64.deb ... 93s Unpacking libaudit1:amd64 (1:4.0.2-2ubuntu2) over (1:4.0.2-2ubuntu1) ... 93s Setting up libaudit1:amd64 (1:4.0.2-2ubuntu2) ... 93s (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 ... 109147 files and directories currently installed.) 93s Preparing to unpack .../libseccomp2_2.5.5-1ubuntu6_amd64.deb ... 93s Unpacking libseccomp2:amd64 (2.5.5-1ubuntu6) over (2.5.5-1ubuntu5) ... 93s Setting up libseccomp2:amd64 (2.5.5-1ubuntu6) ... 93s (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 ... 109147 files and directories currently installed.) 93s Preparing to unpack .../libselinux1_3.7-3ubuntu3_amd64.deb ... 93s Unpacking libselinux1:amd64 (3.7-3ubuntu3) over (3.7-3ubuntu2) ... 93s Setting up libselinux1:amd64 (3.7-3ubuntu3) ... 93s (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 ... 109147 files and directories currently installed.) 93s Preparing to unpack .../libapparmor1_4.1.0~beta5-0ubuntu8_amd64.deb ... 93s Unpacking libapparmor1:amd64 (4.1.0~beta5-0ubuntu8) over (4.1.0~beta5-0ubuntu5) ... 93s Preparing to unpack .../libapt-pkg7.0_2.9.32ubuntu1_amd64.deb ... 93s Unpacking libapt-pkg7.0:amd64 (2.9.32ubuntu1) over (2.9.31ubuntu1) ... 94s Setting up libapt-pkg7.0:amd64 (2.9.32ubuntu1) ... 94s (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 ... 109147 files and directories currently installed.) 94s Preparing to unpack .../apt_2.9.32ubuntu1_amd64.deb ... 94s Unpacking apt (2.9.32ubuntu1) over (2.9.31ubuntu1) ... 94s Setting up apt (2.9.32ubuntu1) ... 94s (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 ... 109147 files and directories currently installed.) 94s Preparing to unpack .../apt-utils_2.9.32ubuntu1_amd64.deb ... 94s Unpacking apt-utils (2.9.32ubuntu1) over (2.9.31ubuntu1) ... 95s Preparing to unpack .../python3-minimal_3.13.2-2_amd64.deb ... 95s Unpacking python3-minimal (3.13.2-2) over (3.13.2-1) ... 95s Setting up python3-minimal (3.13.2-2) ... 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 ... 109147 files and directories currently installed.) 95s Preparing to unpack .../python3_3.13.2-2_amd64.deb ... 95s Unpacking python3 (3.13.2-2) over (3.13.2-1) ... 95s Preparing to unpack .../libpython3-stdlib_3.13.2-2_amd64.deb ... 95s Unpacking libpython3-stdlib:amd64 (3.13.2-2) over (3.13.2-1) ... 95s Preparing to unpack .../rsync_3.4.1+ds1-3_amd64.deb ... 95s Unpacking rsync (3.4.1+ds1-3) over (3.4.1-0syncable1) ... 95s Selecting previously unselected package libdebuginfod-common. 95s Preparing to unpack .../libdebuginfod-common_0.192-4_all.deb ... 95s Unpacking libdebuginfod-common (0.192-4) ... 95s Preparing to unpack .../libsemanage-common_3.7-2.1build1_all.deb ... 95s Unpacking libsemanage-common (3.7-2.1build1) over (3.7-2.1) ... 95s Setting up libsemanage-common (3.7-2.1build1) ... 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 ... 109156 files and directories currently installed.) 95s Preparing to unpack .../libsemanage2_3.7-2.1build1_amd64.deb ... 95s Unpacking libsemanage2:amd64 (3.7-2.1build1) over (3.7-2.1) ... 95s Setting up libsemanage2:amd64 (3.7-2.1build1) ... 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 ... 109156 files and directories currently installed.) 95s Preparing to unpack .../libncurses6_6.5+20250216-2_amd64.deb ... 95s Unpacking libncurses6:amd64 (6.5+20250216-2) over (6.5+20250216-1) ... 95s Preparing to unpack .../libncursesw6_6.5+20250216-2_amd64.deb ... 95s Unpacking libncursesw6:amd64 (6.5+20250216-2) over (6.5+20250216-1) ... 95s Preparing to unpack .../libtinfo6_6.5+20250216-2_amd64.deb ... 95s Unpacking libtinfo6:amd64 (6.5+20250216-2) over (6.5+20250216-1) ... 95s Setting up libtinfo6:amd64 (6.5+20250216-2) ... 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 ... 109156 files and directories currently installed.) 95s Preparing to unpack .../libassuan9_3.0.2-2_amd64.deb ... 95s Unpacking libassuan9:amd64 (3.0.2-2) over (3.0.1-2) ... 95s Setting up libassuan9:amd64 (3.0.2-2) ... 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 ... 109156 files and directories currently installed.) 95s Preparing to unpack .../00-gir1.2-girepository-2.0_1.83.4-1_amd64.deb ... 95s Unpacking gir1.2-girepository-2.0:amd64 (1.83.4-1) over (1.82.0-4) ... 95s Preparing to unpack .../01-gir1.2-glib-2.0_2.84.0-1_amd64.deb ... 95s Unpacking gir1.2-glib-2.0:amd64 (2.84.0-1) over (2.83.5-1) ... 95s Preparing to unpack .../02-libglib2.0-0t64_2.84.0-1_amd64.deb ... 95s Unpacking libglib2.0-0t64:amd64 (2.84.0-1) over (2.83.5-1) ... 96s Preparing to unpack .../03-libgirepository-1.0-1_1.83.4-1_amd64.deb ... 96s Unpacking libgirepository-1.0-1:amd64 (1.83.4-1) over (1.82.0-4) ... 96s Preparing to unpack .../04-libestr0_0.1.11-2_amd64.deb ... 96s Unpacking libestr0:amd64 (0.1.11-2) over (0.1.11-1build1) ... 96s Preparing to unpack .../05-libglib2.0-data_2.84.0-1_all.deb ... 96s Unpacking libglib2.0-data (2.84.0-1) over (2.83.5-1) ... 96s Preparing to unpack .../06-python3-newt_0.52.24-4ubuntu2_amd64.deb ... 96s Unpacking python3-newt:amd64 (0.52.24-4ubuntu2) over (0.52.24-4ubuntu1) ... 96s Preparing to unpack .../07-libnewt0.52_0.52.24-4ubuntu2_amd64.deb ... 96s Unpacking libnewt0.52:amd64 (0.52.24-4ubuntu2) over (0.52.24-4ubuntu1) ... 96s Preparing to unpack .../08-libsqlite3-0_3.46.1-2_amd64.deb ... 96s Unpacking libsqlite3-0:amd64 (3.46.1-2) over (3.46.1-1) ... 96s Preparing to unpack .../09-libxml2_2.12.7+dfsg+really2.9.14-0.2ubuntu5_amd64.deb ... 96s Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2ubuntu5) over (2.12.7+dfsg+really2.9.14-0.2ubuntu4) ... 96s Preparing to unpack .../10-media-types_13.0.0_all.deb ... 96s Unpacking media-types (13.0.0) over (12.0.0) ... 96s Preparing to unpack .../11-python-apt-common_2.9.9build1_all.deb ... 96s Unpacking python-apt-common (2.9.9build1) over (2.9.9) ... 96s Preparing to unpack .../12-python3-apt_2.9.9build1_amd64.deb ... 96s Unpacking python3-apt (2.9.9build1) over (2.9.9) ... 96s Preparing to unpack .../13-python3-cffi-backend_1.17.1-2build2_amd64.deb ... 96s Unpacking python3-cffi-backend:amd64 (1.17.1-2build2) over (1.17.1-2build1) ... 96s Preparing to unpack .../14-python3-dbus_1.3.2-5build5_amd64.deb ... 96s Unpacking python3-dbus (1.3.2-5build5) over (1.3.2-5build4) ... 96s Preparing to unpack .../15-python3-gi_3.50.0-4build1_amd64.deb ... 96s Unpacking python3-gi (3.50.0-4build1) over (3.50.0-4) ... 96s Preparing to unpack .../16-python3-yaml_6.0.2-1build2_amd64.deb ... 96s Unpacking python3-yaml (6.0.2-1build2) over (6.0.2-1build1) ... 96s Preparing to unpack .../17-rsyslog_8.2412.0-2ubuntu2_amd64.deb ... 96s Unpacking rsyslog (8.2412.0-2ubuntu2) over (8.2412.0-2ubuntu1) ... 96s Preparing to unpack .../18-whiptail_0.52.24-4ubuntu2_amd64.deb ... 96s Unpacking whiptail (0.52.24-4ubuntu2) over (0.52.24-4ubuntu1) ... 96s Preparing to unpack .../19-ubuntu-minimal_1.549_amd64.deb ... 96s Unpacking ubuntu-minimal (1.549) over (1.548) ... 97s Preparing to unpack .../20-apparmor_4.1.0~beta5-0ubuntu8_amd64.deb ... 97s Unpacking apparmor (4.1.0~beta5-0ubuntu8) over (4.1.0~beta5-0ubuntu5) ... 98s Preparing to unpack .../21-dosfstools_4.2-1.2_amd64.deb ... 98s Unpacking dosfstools (4.2-1.2) over (4.2-1.1build1) ... 98s Preparing to unpack .../22-libnl-genl-3-200_3.7.0-1_amd64.deb ... 98s Unpacking libnl-genl-3-200:amd64 (3.7.0-1) over (3.7.0-0.3build2) ... 98s Preparing to unpack .../23-libnl-route-3-200_3.7.0-1_amd64.deb ... 98s Unpacking libnl-route-3-200:amd64 (3.7.0-1) over (3.7.0-0.3build2) ... 98s Preparing to unpack .../24-libnl-3-200_3.7.0-1_amd64.deb ... 98s Unpacking libnl-3-200:amd64 (3.7.0-1) over (3.7.0-0.3build2) ... 98s Preparing to unpack .../25-parted_3.6-5_amd64.deb ... 98s Unpacking parted (3.6-5) over (3.6-4build1) ... 98s Preparing to unpack .../26-libparted2t64_3.6-5_amd64.deb ... 98s Adding 'diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged by libparted2t64' 98s Adding 'diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-merged by libparted2t64' 98s Unpacking libparted2t64:amd64 (3.6-5) over (3.6-4build1) ... 98s Preparing to unpack .../27-pci.ids_0.0~2025.03.09-1_all.deb ... 98s Unpacking pci.ids (0.0~2025.03.09-1) over (0.0~2025.02.12-1) ... 98s Preparing to unpack .../28-pciutils_1%3a3.13.0-2_amd64.deb ... 98s Unpacking pciutils (1:3.13.0-2) over (1:3.13.0-1) ... 98s Preparing to unpack .../29-libpci3_1%3a3.13.0-2_amd64.deb ... 98s Unpacking libpci3:amd64 (1:3.13.0-2) over (1:3.13.0-1) ... 98s Preparing to unpack .../30-xz-utils_5.6.4-1_amd64.deb ... 98s Unpacking xz-utils (5.6.4-1) over (5.6.3-1) ... 98s Preparing to unpack .../31-ubuntu-standard_1.549_amd64.deb ... 98s Unpacking ubuntu-standard (1.549) over (1.548) ... 98s Preparing to unpack .../32-libgprofng0_2.44-3ubuntu1_amd64.deb ... 98s Unpacking libgprofng0:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../33-libctf0_2.44-3ubuntu1_amd64.deb ... 98s Unpacking libctf0:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../34-libctf-nobfd0_2.44-3ubuntu1_amd64.deb ... 98s Unpacking libctf-nobfd0:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../35-binutils-x86-64-linux-gnu_2.44-3ubuntu1_amd64.deb ... 98s Unpacking binutils-x86-64-linux-gnu (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../36-libbinutils_2.44-3ubuntu1_amd64.deb ... 98s Unpacking libbinutils:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../37-binutils_2.44-3ubuntu1_amd64.deb ... 98s Unpacking binutils (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../38-binutils-common_2.44-3ubuntu1_amd64.deb ... 98s Unpacking binutils-common:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../39-libsframe1_2.44-3ubuntu1_amd64.deb ... 98s Unpacking libsframe1:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 98s Preparing to unpack .../40-libbrotli1_1.1.0-2build4_amd64.deb ... 98s Unpacking libbrotli1:amd64 (1.1.0-2build4) over (1.1.0-2build3) ... 98s Preparing to unpack .../41-curl_8.12.1-3ubuntu1_amd64.deb ... 98s Unpacking curl (8.12.1-3ubuntu1) over (8.12.1-2ubuntu1) ... 98s Preparing to unpack .../42-libcurl4t64_8.12.1-3ubuntu1_amd64.deb ... 98s Unpacking libcurl4t64:amd64 (8.12.1-3ubuntu1) over (8.12.1-2ubuntu1) ... 98s Preparing to unpack .../43-exfatprogs_1.2.8-1_amd64.deb ... 98s Unpacking exfatprogs (1.2.8-1) over (1.2.7-3) ... 98s Preparing to unpack .../44-libcurl3t64-gnutls_8.12.1-3ubuntu1_amd64.deb ... 98s Unpacking libcurl3t64-gnutls:amd64 (8.12.1-3ubuntu1) over (8.12.1-2ubuntu1) ... 98s Preparing to unpack .../45-fwupd_2.0.6-4_amd64.deb ... 99s Unpacking fwupd (2.0.6-4) over (2.0.6-3) ... 99s Preparing to unpack .../46-libfwupd3_2.0.6-4_amd64.deb ... 99s Unpacking libfwupd3:amd64 (2.0.6-4) over (2.0.6-3) ... 99s Preparing to unpack .../47-htop_3.4.0-2_amd64.deb ... 99s Unpacking htop (3.4.0-2) over (3.3.0-5) ... 99s Preparing to unpack .../48-hwdata_0.393-3_all.deb ... 99s Unpacking hwdata (0.393-3) over (0.392-1) ... 99s Selecting previously unselected package pnp.ids. 99s Preparing to unpack .../49-pnp.ids_0.393-3_all.deb ... 99s Unpacking pnp.ids (0.393-3) ... 99s Preparing to unpack .../50-linux-firmware_20250310.git9e1370d3-0ubuntu1_amd64.deb ... 99s Unpacking linux-firmware (20250310.git9e1370d3-0ubuntu1) over (20250204.git0fd450ee-0ubuntu1) ... 102s Preparing to unpack .../51-initramfs-tools_0.146ubuntu1_all.deb ... 102s Unpacking initramfs-tools (0.146ubuntu1) over (0.145ubuntu3) ... 102s Preparing to unpack .../52-initramfs-tools-core_0.146ubuntu1_all.deb ... 102s Unpacking initramfs-tools-core (0.146ubuntu1) over (0.145ubuntu3) ... 102s Preparing to unpack .../53-initramfs-tools-bin_0.146ubuntu1_amd64.deb ... 102s Unpacking initramfs-tools-bin (0.146ubuntu1) over (0.145ubuntu3) ... 102s Selecting previously unselected package libdebuginfod1t64:amd64. 102s Preparing to unpack .../54-libdebuginfod1t64_0.192-4_amd64.deb ... 102s Unpacking libdebuginfod1t64:amd64 (0.192-4) ... 102s Preparing to unpack .../55-libftdi1-2_1.5-8build1_amd64.deb ... 102s Unpacking libftdi1-2:amd64 (1.5-8build1) over (1.5-8) ... 102s Preparing to unpack .../56-libgpgme11t64_1.24.2-1ubuntu2_amd64.deb ... 102s Unpacking libgpgme11t64:amd64 (1.24.2-1ubuntu2) over (1.24.2-1ubuntu1) ... 102s Preparing to unpack .../57-libjemalloc2_5.3.0-3_amd64.deb ... 102s Unpacking libjemalloc2:amd64 (5.3.0-3) over (5.3.0-2build1) ... 102s Selecting previously unselected package linux-modules-6.14.0-7-generic. 102s Preparing to unpack .../58-linux-modules-6.14.0-7-generic_6.14.0-7.7_amd64.deb ... 102s Unpacking linux-modules-6.14.0-7-generic (6.14.0-7.7) ... 102s Selecting previously unselected package linux-image-6.14.0-7-generic. 102s Preparing to unpack .../59-linux-image-6.14.0-7-generic_6.14.0-7.7_amd64.deb ... 102s Unpacking linux-image-6.14.0-7-generic (6.14.0-7.7) ... 103s Selecting previously unselected package linux-modules-extra-6.14.0-7-generic. 103s Preparing to unpack .../60-linux-modules-extra-6.14.0-7-generic_6.14.0-7.7_amd64.deb ... 103s Unpacking linux-modules-extra-6.14.0-7-generic (6.14.0-7.7) ... 104s Preparing to unpack .../61-linux-generic_6.14.0-7.7+1_amd64.deb ... 104s Unpacking linux-generic (6.14.0-7.7+1) over (6.12.0-16.16+2) ... 104s Preparing to unpack .../62-linux-image-generic_6.14.0-7.7+1_amd64.deb ... 104s Unpacking linux-image-generic (6.14.0-7.7+1) over (6.12.0-16.16+2) ... 104s Preparing to unpack .../63-linux-virtual_6.14.0-7.7+1_amd64.deb ... 104s Unpacking linux-virtual (6.14.0-7.7+1) over (6.12.0-16.16+2) ... 104s Preparing to unpack .../64-linux-image-virtual_6.14.0-7.7+1_amd64.deb ... 104s Unpacking linux-image-virtual (6.14.0-7.7+1) over (6.12.0-16.16+2) ... 104s Preparing to unpack .../65-linux-headers-virtual_6.14.0-7.7+1_amd64.deb ... 104s Unpacking linux-headers-virtual (6.14.0-7.7+1) over (6.12.0-16.16+2) ... 104s Selecting previously unselected package linux-headers-6.14.0-7. 104s Preparing to unpack .../66-linux-headers-6.14.0-7_6.14.0-7.7_all.deb ... 104s Unpacking linux-headers-6.14.0-7 (6.14.0-7.7) ... 106s Selecting previously unselected package linux-headers-6.14.0-7-generic. 106s Preparing to unpack .../67-linux-headers-6.14.0-7-generic_6.14.0-7.7_amd64.deb ... 106s Unpacking linux-headers-6.14.0-7-generic (6.14.0-7.7) ... 107s Preparing to unpack .../68-linux-headers-generic_6.14.0-7.7+1_amd64.deb ... 107s Unpacking linux-headers-generic (6.14.0-7.7+1) over (6.12.0-16.16+2) ... 107s Preparing to unpack .../69-linux-tools-common_6.14.0-7.7_all.deb ... 107s Unpacking linux-tools-common (6.14.0-7.7) over (6.12.0-16.16) ... 107s Selecting previously unselected package linux-tools-6.14.0-7. 107s Preparing to unpack .../70-linux-tools-6.14.0-7_6.14.0-7.7_amd64.deb ... 107s Unpacking linux-tools-6.14.0-7 (6.14.0-7.7) ... 108s Selecting previously unselected package linux-tools-6.14.0-7-generic. 108s Preparing to unpack .../71-linux-tools-6.14.0-7-generic_6.14.0-7.7_amd64.deb ... 108s Unpacking linux-tools-6.14.0-7-generic (6.14.0-7.7) ... 108s Preparing to unpack .../72-python3-lazr.uri_1.0.6-6_all.deb ... 108s Unpacking python3-lazr.uri (1.0.6-6) over (1.0.6-5) ... 108s Preparing to unpack .../73-python3-markupsafe_2.1.5-1build4_amd64.deb ... 108s Unpacking python3-markupsafe (2.1.5-1build4) over (2.1.5-1build3) ... 108s Preparing to unpack .../74-python3-rpds-py_0.21.0-2ubuntu2_amd64.deb ... 108s Unpacking python3-rpds-py (0.21.0-2ubuntu2) over (0.21.0-2ubuntu1) ... 108s Preparing to unpack .../75-python3-systemd_235-1build6_amd64.deb ... 108s Unpacking python3-systemd (235-1build6) over (235-1build5) ... 108s Preparing to unpack .../76-ubuntu-kernel-accessories_1.549_amd64.deb ... 108s Unpacking ubuntu-kernel-accessories (1.549) over (1.548) ... 108s Preparing to unpack .../77-python3-bcrypt_4.2.0-2.1build1_amd64.deb ... 108s Unpacking python3-bcrypt (4.2.0-2.1build1) over (4.2.0-2.1) ... 108s Setting up media-types (13.0.0) ... 108s Installing new version of config file /etc/mime.types ... 108s Setting up linux-modules-6.14.0-7-generic (6.14.0-7.7) ... 110s Setting up ubuntu-kernel-accessories (1.549) ... 110s Setting up libapparmor1:amd64 (4.1.0~beta5-0ubuntu8) ... 110s Setting up pci.ids (0.0~2025.03.09-1) ... 110s Setting up libnewt0.52:amd64 (0.52.24-4ubuntu2) ... 110s Setting up apt-utils (2.9.32ubuntu1) ... 110s Setting up libdebuginfod-common (0.192-4) ... 110s Setting up exfatprogs (1.2.8-1) ... 110s Setting up linux-firmware (20250310.git9e1370d3-0ubuntu1) ... 110s Setting up libestr0:amd64 (0.1.11-2) ... 110s Setting up libbrotli1:amd64 (1.1.0-2build4) ... 110s Setting up libsqlite3-0:amd64 (3.46.1-2) ... 110s Setting up dosfstools (4.2-1.2) ... 110s Setting up rsyslog (8.2412.0-2ubuntu2) ... 110s info: The user `syslog' is already a member of `adm'. 111s Setting up binutils-common:amd64 (2.44-3ubuntu1) ... 111s Setting up libcurl3t64-gnutls:amd64 (8.12.1-3ubuntu1) ... 111s Setting up linux-libc-dev:amd64 (6.14.0-7.7) ... 111s Setting up libctf-nobfd0:amd64 (2.44-3ubuntu1) ... 111s Setting up systemd (257.3-1ubuntu3) ... 111s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 111s Created symlink '/run/systemd/system/tmp.mount' → '/dev/null'. 112s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 112s Setting up libparted2t64:amd64 (3.6-5) ... 112s Removing 'diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged by libparted2t64' 112s Removing 'diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-merged by libparted2t64' 112s Setting up libjemalloc2:amd64 (5.3.0-3) ... 112s Setting up locales (2.41-1ubuntu1) ... 112s Installing new version of config file /etc/locale.alias ... 113s Generating locales (this might take a while)... 114s en_US.UTF-8... done 114s Generation complete. 114s Setting up libsframe1:amd64 (2.44-3ubuntu1) ... 114s Setting up linux-modules-extra-6.14.0-7-generic (6.14.0-7.7) ... 116s Setting up apparmor (4.1.0~beta5-0ubuntu8) ... 116s Installing new version of config file /etc/apparmor.d/fusermount3 ... 116s Installing new version of config file /etc/apparmor.d/lsusb ... 116s Installing new version of config file /etc/apparmor.d/openvpn ... 117s Reloading AppArmor profiles 118s Setting up libftdi1-2:amd64 (1.5-8build1) ... 118s Setting up libglib2.0-data (2.84.0-1) ... 118s Setting up systemd-cryptsetup (257.3-1ubuntu3) ... 118s Setting up linux-headers-6.14.0-7 (6.14.0-7.7) ... 118s Setting up libncurses6:amd64 (6.5+20250216-2) ... 118s Setting up xz-utils (5.6.4-1) ... 118s Setting up linux-image-6.14.0-7-generic (6.14.0-7.7) ... 120s I: /boot/vmlinuz.old is now a symlink to vmlinuz-6.12.0-16-generic 120s I: /boot/initrd.img.old is now a symlink to initrd.img-6.12.0-16-generic 120s I: /boot/vmlinuz is now a symlink to vmlinuz-6.14.0-7-generic 120s I: /boot/initrd.img is now a symlink to initrd.img-6.14.0-7-generic 120s Setting up systemd-timesyncd (257.3-1ubuntu3) ... 121s systemd-time-wait-sync.service is a disabled or a static unit not running, not starting it. 121s Setting up libatomic1:amd64 (15-20250222-0ubuntu1) ... 121s Setting up udev (257.3-1ubuntu3) ... 121s Setting up libncursesw6:amd64 (6.5+20250216-2) ... 121s Setting up libpci3:amd64 (1:3.13.0-2) ... 121s Setting up whiptail (0.52.24-4ubuntu2) ... 121s Setting up python-apt-common (2.9.9build1) ... 121s Setting up pnp.ids (0.393-3) ... 121s Setting up libnl-3-200:amd64 (3.7.0-1) ... 121s Setting up libgpgme11t64:amd64 (1.24.2-1ubuntu2) ... 121s Setting up linux-image-virtual (6.14.0-7.7+1) ... 121s Setting up libbinutils:amd64 (2.44-3ubuntu1) ... 121s Setting up libc-dev-bin (2.41-1ubuntu1) ... 121s Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2ubuntu5) ... 122s Setting up rsync (3.4.1+ds1-3) ... 122s rsync.service is a disabled or a static unit not running, not starting it. 122s Setting up libpython3-stdlib:amd64 (3.13.2-2) ... 122s Setting up systemd-resolved (257.3-1ubuntu3) ... 123s Setting up initramfs-tools-bin (0.146ubuntu1) ... 123s Setting up ncurses-term (6.5+20250216-2) ... 123s Setting up libctf0:amd64 (2.44-3ubuntu1) ... 123s Setting up libdebuginfod1t64:amd64 (0.192-4) ... 123s Setting up linux-image-generic (6.14.0-7.7+1) ... 123s Setting up systemd-sysv (257.3-1ubuntu3) ... 123s Setting up libcurl4t64:amd64 (8.12.1-3ubuntu1) ... 123s Setting up htop (3.4.0-2) ... 123s Setting up linux-headers-6.14.0-7-generic (6.14.0-7.7) ... 123s Setting up parted (3.6-5) ... 123s Setting up libnss-systemd:amd64 (257.3-1ubuntu3) ... 123s Setting up python3 (3.13.2-2) ... 123s Setting up linux-headers-generic (6.14.0-7.7+1) ... 123s Setting up python3-newt:amd64 (0.52.24-4ubuntu2) ... 123s Setting up python3-markupsafe (2.1.5-1build4) ... 123s Setting up libnl-route-3-200:amd64 (3.7.0-1) ... 123s Setting up hwdata (0.393-3) ... 123s Setting up libglib2.0-0t64:amd64 (2.84.0-1) ... 123s No schema files found: doing nothing. 123s Setting up libgprofng0:amd64 (2.44-3ubuntu1) ... 123s Setting up gir1.2-glib-2.0:amd64 (2.84.0-1) ... 123s Setting up pciutils (1:3.13.0-2) ... 123s Setting up python3-rpds-py (0.21.0-2ubuntu2) ... 123s Setting up libnl-genl-3-200:amd64 (3.7.0-1) ... 123s Setting up libpam-systemd:amd64 (257.3-1ubuntu3) ... 124s Setting up libc6-dev:amd64 (2.41-1ubuntu1) ... 124s Setting up libgirepository-1.0-1:amd64 (1.83.4-1) ... 124s Setting up curl (8.12.1-3ubuntu1) ... 124s Setting up initramfs-tools-core (0.146ubuntu1) ... 124s Setting up linux-tools-common (6.14.0-7.7) ... 124s Setting up python3-systemd (235-1build6) ... 124s Setting up python3-cffi-backend:amd64 (1.17.1-2build2) ... 124s Setting up binutils-x86-64-linux-gnu (2.44-3ubuntu1) ... 124s Setting up python3-dbus (1.3.2-5build5) ... 124s Setting up initramfs-tools (0.146ubuntu1) ... 124s Installing new version of config file /etc/kernel/postinst.d/initramfs-tools ... 124s Installing new version of config file /etc/kernel/postrm.d/initramfs-tools ... 124s update-initramfs: deferring update (trigger activated) 124s Setting up linux-headers-virtual (6.14.0-7.7+1) ... 124s Setting up linux-generic (6.14.0-7.7+1) ... 124s Setting up ubuntu-minimal (1.549) ... 124s Setting up python3-apt (2.9.9build1) ... 124s Setting up python3-bcrypt (4.2.0-2.1build1) ... 124s Setting up python3-yaml (6.0.2-1build2) ... 124s Setting up libfwupd3:amd64 (2.0.6-4) ... 124s Setting up python3-lazr.uri (1.0.6-6) ... 124s Setting up binutils (2.44-3ubuntu1) ... 124s Setting up ubuntu-standard (1.549) ... 124s Setting up linux-virtual (6.14.0-7.7+1) ... 124s Setting up gir1.2-girepository-2.0:amd64 (1.83.4-1) ... 124s Setting up python3-gi (3.50.0-4build1) ... 124s Setting up linux-tools-6.14.0-7 (6.14.0-7.7) ... 124s Setting up linux-tools-6.14.0-7-generic (6.14.0-7.7) ... 124s Setting up fwupd (2.0.6-4) ... 125s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 125s fwupd.service is a disabled or a static unit not running, not starting it. 125s Processing triggers for man-db (2.13.0-1) ... 126s Processing triggers for dbus (1.16.2-1ubuntu1) ... 126s Processing triggers for shared-mime-info (2.4-5) ... 126s Warning: program compiled against libxml 212 using older 209 127s Processing triggers for libc-bin (2.41-1ubuntu1) ... 127s Processing triggers for linux-image-6.14.0-7-generic (6.14.0-7.7) ... 127s /etc/kernel/postinst.d/initramfs-tools: 127s update-initramfs: Generating /boot/initrd.img-6.14.0-7-generic 127s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 136s /etc/kernel/postinst.d/zz-update-grub: 136s Sourcing file `/etc/default/grub' 136s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 136s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 136s Generating grub configuration file ... 137s Found linux image: /boot/vmlinuz-6.14.0-7-generic 137s Found initrd image: /boot/initrd.img-6.14.0-7-generic 137s Found linux image: /boot/vmlinuz-6.12.0-16-generic 137s Found initrd image: /boot/initrd.img-6.12.0-16-generic 137s Found linux image: /boot/vmlinuz-6.11.0-8-generic 137s Found initrd image: /boot/initrd.img-6.11.0-8-generic 137s Warning: os-prober will not be executed to detect other bootable partitions. 137s Systems on them will not be added to the GRUB boot configuration. 137s Check GRUB_DISABLE_OS_PROBER documentation entry. 137s Adding boot menu entry for UEFI Firmware Settings ... 137s done 137s Processing triggers for initramfs-tools (0.146ubuntu1) ... 137s update-initramfs: Generating /boot/initrd.img-6.14.0-7-generic 137s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 147s + rm /etc/apt/preferences.d/force-downgrade-to-release.pref 148s + /usr/lib/apt/apt-helper analyze-pattern ?true 148s + uname -r 148s + sed s/\./\\./g 148s + running_kernel_pattern=^linux-.*6\.12\.0-16-generic.* 148s + apt list ?obsolete 148s + tail -n+2 148s + cut -d/ -f1 148s + grep -v ^linux-.*6\.12\.0-16-generic.* 149s + true 149s + obsolete_pkgs= 149s + DEBIAN_FRONTEND=noninteractive eatmydata apt-get -y purge --autoremove 149s Reading package lists... 149s Building dependency tree... 149s Reading state information... 149s Solving dependencies... 149s The following packages will be REMOVED: 149s libnl-genl-3-200* libnsl2* libpython3.12-minimal* libpython3.12-stdlib* 149s libpython3.12t64* linux-headers-6.11.0-8* linux-headers-6.11.0-8-generic* 149s linux-image-6.11.0-8-generic* linux-modules-6.11.0-8-generic* 149s linux-tools-6.11.0-8* linux-tools-6.11.0-8-generic* 150s 0 upgraded, 0 newly installed, 11 to remove and 0 not upgraded. 150s After this operation, 225 MB disk space will be freed. 150s (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 ... 148650 files and directories currently installed.) 150s Removing libnl-genl-3-200:amd64 (3.7.0-1) ... 150s Removing linux-tools-6.11.0-8-generic (6.11.0-8.8) ... 150s Removing linux-tools-6.11.0-8 (6.11.0-8.8) ... 150s Removing libpython3.12t64:amd64 (3.12.9-1) ... 150s Removing libpython3.12-stdlib:amd64 (3.12.9-1) ... 150s Removing libnsl2:amd64 (1.3.0-3build3) ... 150s Removing libpython3.12-minimal:amd64 (3.12.9-1) ... 150s Removing linux-headers-6.11.0-8-generic (6.11.0-8.8) ... 150s Removing linux-headers-6.11.0-8 (6.11.0-8.8) ... 152s Removing linux-image-6.11.0-8-generic (6.11.0-8.8) ... 152s /etc/kernel/postrm.d/initramfs-tools: 152s update-initramfs: Deleting /boot/initrd.img-6.11.0-8-generic 153s /etc/kernel/postrm.d/zz-update-grub: 153s Sourcing file `/etc/default/grub' 153s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 153s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 153s Generating grub configuration file ... 153s Found linux image: /boot/vmlinuz-6.14.0-7-generic 153s Found initrd image: /boot/initrd.img-6.14.0-7-generic 153s Found linux image: /boot/vmlinuz-6.12.0-16-generic 153s Found initrd image: /boot/initrd.img-6.12.0-16-generic 153s Warning: os-prober will not be executed to detect other bootable partitions. 153s Systems on them will not be added to the GRUB boot configuration. 153s Check GRUB_DISABLE_OS_PROBER documentation entry. 153s Adding boot menu entry for UEFI Firmware Settings ... 153s done 153s Removing linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 153s Processing triggers for libc-bin (2.41-1ubuntu1) ... 153s (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 ... 115819 files and directories currently installed.) 153s Purging configuration files for linux-image-6.11.0-8-generic (6.11.0-8.8) ... 154s Purging configuration files for libpython3.12-minimal:amd64 (3.12.9-1) ... 154s Purging configuration files for linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 154s + grep -q trusty /etc/lsb-release 154s + [ ! -d /usr/share/doc/unattended-upgrades ] 154s + [ ! -d /usr/share/doc/lxd ] 154s + [ ! -d /usr/share/doc/lxd-client ] 154s + [ ! -d /usr/share/doc/snapd ] 154s + type iptables 154s + cat 154s + chmod 755 /etc/rc.local 154s + . /etc/rc.local 154s + iptables -w -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 154s + iptables -A OUTPUT -d 10.255.255.1/32 -p tcp -j DROP 154s + iptables -A OUTPUT -d 10.255.255.2/32 -p tcp -j DROP 154s + uname -m 154s + [ x86_64 = ppc64le ] 154s + [ -d /run/systemd/system ] 154s + systemd-detect-virt --quiet --vm 154s + mkdir -p /etc/systemd/system/systemd-random-seed.service.d/ 154s + cat 154s + grep -q lz4 /etc/initramfs-tools/initramfs.conf 154s + echo COMPRESS=lz4 154s autopkgtest [09:21:02]: upgrading testbed (apt dist-upgrade and autopurge) 154s Reading package lists... 154s Building dependency tree... 154s Reading state information... 154s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 155s Starting 2 pkgProblemResolver with broken count: 0 155s Done 155s Entering ResolveByKeep 155s 155s Calculating upgrade... 155s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 156s Reading package lists... 156s Building dependency tree... 156s Reading state information... 156s Starting pkgProblemResolver with broken count: 0 156s Starting 2 pkgProblemResolver with broken count: 0 156s Done 156s Solving dependencies... 157s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 157s autopkgtest [09:21:05]: rebooting testbed after setup commands that affected boot 180s autopkgtest [09:21:28]: testbed running kernel: Linux 6.14.0-7-generic #7-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 28 12:14:20 UTC 2025 182s autopkgtest [09:21:30]: @@@@@@@@@@@@@@@@@@@@ apt-source poetry-plugin-export 184s Get:1 http://ftpmaster.internal/ubuntu plucky/universe poetry-plugin-export 1.9.0-1 (dsc) [2323 B] 184s Get:2 http://ftpmaster.internal/ubuntu plucky/universe poetry-plugin-export 1.9.0-1 (tar) [77.4 kB] 184s Get:3 http://ftpmaster.internal/ubuntu plucky/universe poetry-plugin-export 1.9.0-1 (diff) [2336 B] 185s gpgv: Signature made Thu Jan 23 02:44:17 2025 UTC 185s gpgv: using RSA key 13796755BBC72BB8ABE2AEB5FA9DEC5DE11C63F1 185s gpgv: issuer "eamanu@debian.org" 185s gpgv: Can't check signature: No public key 185s dpkg-source: warning: cannot verify inline signature for ./poetry-plugin-export_1.9.0-1.dsc: no acceptable signature found 185s autopkgtest [09:21:33]: testing package poetry-plugin-export version 1.9.0-1 185s autopkgtest [09:21:33]: build not needed 186s autopkgtest [09:21:34]: test pybuild-autopkgtest: preparing testbed 186s Reading package lists... 186s Building dependency tree... 186s Reading state information... 186s Starting pkgProblemResolver with broken count: 0 186s Starting 2 pkgProblemResolver with broken count: 0 186s Done 187s The following NEW packages will be installed: 187s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 187s cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 187s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-14 187s g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-14 187s gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 187s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 187s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libhwasan0 libisl23 187s libitm1 libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 187s libjs-jquery-metadata libjs-jquery-tablesorter 187s libjs-jquery-throttle-debounce liblsan0 libmpc3 libquadmath0 187s libstdc++-14-dev libtool libtsan2 libubsan1 m4 po-debconf 187s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 187s python3-build python3-cachecontrol python3-cleo python3-coverage 187s python3-distlib python3-dulwich python3-execnet python3-fastjsonschema 187s python3-filelock python3-findpython python3-importlib-metadata 187s python3-iniconfig python3-installer python3-jaraco.classes python3-jeepney 187s python3-keyring python3-msgpack python3-packaging python3-pbs-installer 187s python3-pip-whl python3-pkginfo python3-platformdirs python3-pluggy 187s python3-poetry python3-poetry-core python3-poetry-plugin-export 187s python3-pyproject-hooks python3-pytest python3-pytest-cov 187s python3-pytest-mock python3-pytest-xdist python3-rapidfuzz 187s python3-requests-toolbelt python3-secretstorage python3-setuptools-whl 187s python3-shellingham python3-toml python3-tomlkit python3-trove-classifiers 187s python3-virtualenv python3-wheel python3-wheel-whl 187s 0 upgraded, 95 newly installed, 0 to remove and 0 not upgraded. 187s Need to get 77.9 MB of archives. 187s After this operation, 265 MB of additional disk space will be used. 187s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 m4 amd64 1.4.19-7 [263 kB] 187s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 autoconf all 2.72-3ubuntu1 [383 kB] 187s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 autotools-dev all 20220109.1 [44.9 kB] 187s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 automake all 1:1.17-3ubuntu1 [572 kB] 187s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 autopoint all 0.23.1-1 [619 kB] 187s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 libisl23 amd64 0.27-1 [685 kB] 188s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libmpc3 amd64 1.3.1-1build2 [55.3 kB] 188s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [11.9 MB] 188s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14 amd64 14.2.0-17ubuntu3 [1030 B] 188s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [5586 B] 188s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp amd64 4:14.2.0-1ubuntu1 [22.4 kB] 188s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 libcc1-0 amd64 15-20250222-0ubuntu1 [47.0 kB] 188s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 libgomp1 amd64 15-20250222-0ubuntu1 [148 kB] 188s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 libitm1 amd64 15-20250222-0ubuntu1 [28.6 kB] 188s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libasan8 amd64 15-20250222-0ubuntu1 [3055 kB] 188s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 liblsan0 amd64 15-20250222-0ubuntu1 [1355 kB] 188s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 libtsan2 amd64 15-20250222-0ubuntu1 [2756 kB] 188s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 libubsan1 amd64 15-20250222-0ubuntu1 [1205 kB] 188s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 libhwasan0 amd64 15-20250222-0ubuntu1 [1677 kB] 188s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libquadmath0 amd64 15-20250222-0ubuntu1 [152 kB] 188s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-14-dev amd64 14.2.0-17ubuntu3 [2816 kB] 188s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [23.3 MB] 189s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14 amd64 14.2.0-17ubuntu3 [536 kB] 189s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [1208 B] 189s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc amd64 4:14.2.0-1ubuntu1 [5004 B] 189s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++-14-dev amd64 14.2.0-17ubuntu3 [2486 kB] 189s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [13.4 MB] 189s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14 amd64 14.2.0-17ubuntu3 [21.8 kB] 189s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [968 B] 189s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 g++ amd64 4:14.2.0-1ubuntu1 [1100 B] 189s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 build-essential amd64 12.10ubuntu1 [4928 B] 189s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebhelper-perl all 13.24.1ubuntu2 [95.4 kB] 189s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libtool all 2.5.4-4 [168 kB] 189s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-autoreconf all 20 [16.1 kB] 189s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 189s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [20.3 kB] 190s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 dh-strip-nondeterminism all 1.14.1-2 [5064 B] 190s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 debugedit amd64 1:5.1-2 [47.0 kB] 190s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 dwz amd64 0.15-1build6 [115 kB] 190s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 gettext amd64 0.23.1-1 [1086 kB] 190s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 190s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 po-debconf all 1.0.21+nmu1 [233 kB] 190s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 debhelper all 13.24.1ubuntu2 [895 kB] 190s Get:44 http://ftpmaster.internal/ubuntu plucky/universe amd64 dh-python all 6.20250308 [118 kB] 190s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 190s Get:46 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-metadata all 12-4 [6582 B] 190s Get:47 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 190s Get:48 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 190s Get:49 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-autopkgtest all 6.20250308 [1744 B] 190s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-importlib-metadata all 8.6.1-1 [20.7 kB] 190s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.2-1 [51.5 kB] 190s Get:52 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 190s Get:53 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-toml all 0.10.2-1 [16.5 kB] 190s Get:54 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wheel all 0.45.1-1 [57.7 kB] 190s Get:55 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-build all 1.2.2-1 [31.0 kB] 190s Get:56 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 190s Get:57 http://ftpmaster.internal/ubuntu plucky/universe amd64 pybuild-plugin-pyproject all 6.20250308 [1726 B] 190s Get:58 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-all amd64 3.13.2-2 [884 B] 190s Get:59 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-msgpack amd64 1.0.3-3build4 [87.7 kB] 190s Get:60 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-cachecontrol all 0.14.2-1 [18.7 kB] 190s Get:61 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-rapidfuzz amd64 3.12.1+ds-1build1 [2120 kB] 190s Get:62 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-cleo all 2.2.1-4 [52.4 kB] 190s Get:63 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-coverage amd64 7.6.0+dfsg1-2build1 [153 kB] 190s Get:64 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-distlib all 0.3.9-1 [267 kB] 190s Get:65 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-dulwich amd64 0.22.7-1 [183 kB] 190s Get:66 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-execnet all 2.1.1-1 [33.4 kB] 190s Get:67 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-fastjsonschema all 2.21.1-1 [20.4 kB] 190s Get:68 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-filelock all 3.17.0-1 [13.0 kB] 190s Get:69 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-findpython all 0.6.2-1 [15.3 kB] 190s Get:70 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 190s Get:71 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-jaraco.classes all 3.4.0-1 [7664 B] 190s Get:72 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-jeepney all 0.8.0-4 [33.1 kB] 190s Get:73 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-secretstorage all 3.3.3-3 [13.7 kB] 190s Get:74 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-keyring all 25.6.0-1 [40.6 kB] 190s Get:75 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pbs-installer all 2025.02.12-2 [43.8 kB] 190s Get:76 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pip-whl all 25.0+dfsg-1 [1446 kB] 190s Get:77 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pkginfo all 1.12.1.2-2 [17.4 kB] 190s Get:78 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-platformdirs all 4.3.6-1 [16.8 kB] 190s Get:79 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 190s Get:80 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-poetry-core all 2.1.1-1 [221 kB] 190s Get:81 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-requests-toolbelt all 1.0.0-4 [37.0 kB] 190s Get:82 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-shellingham all 1.5.4-1 [9482 B] 190s Get:83 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-tomlkit all 0.13.2-1 [37.6 kB] 190s Get:84 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-trove-classifiers all 2025.1.15.22-1 [10.9 kB] 190s Get:85 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-setuptools-whl all 75.8.0-1 [1152 kB] 190s Get:86 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wheel-whl all 0.45.1-1 [74.6 kB] 190s Get:87 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-virtualenv all 20.29.1+ds-1 [72.6 kB] 190s Get:88 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-poetry all 2.1.1+dfsg-1 [165 kB] 190s Get:89 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-poetry-plugin-export all 1.9.0-1 [10.3 kB] 190s Get:90 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.4-1 [252 kB] 190s Get:91 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-hotkeys all 0.2.0-1 [13.3 kB] 190s Get:92 http://ftpmaster.internal/ubuntu plucky/universe amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 190s Get:93 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-cov all 5.0.0-1 [21.3 kB] 190s Get:94 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-mock all 3.14.0-2 [11.7 kB] 190s Get:95 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest-xdist all 3.6.1-1 [33.8 kB] 191s Fetched 77.9 MB in 3s (22.3 MB/s) 191s Selecting previously unselected package m4. 191s (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 ... 115816 files and directories currently installed.) 191s Preparing to unpack .../00-m4_1.4.19-7_amd64.deb ... 191s Unpacking m4 (1.4.19-7) ... 191s Selecting previously unselected package autoconf. 191s Preparing to unpack .../01-autoconf_2.72-3ubuntu1_all.deb ... 191s Unpacking autoconf (2.72-3ubuntu1) ... 191s Selecting previously unselected package autotools-dev. 191s Preparing to unpack .../02-autotools-dev_20220109.1_all.deb ... 191s Unpacking autotools-dev (20220109.1) ... 191s Selecting previously unselected package automake. 193s Preparing to unpack .../03-automake_1%3a1.17-3ubuntu1_all.deb ... 193s Unpacking automake (1:1.17-3ubuntu1) ... 193s Selecting previously unselected package autopoint. 193s Preparing to unpack .../04-autopoint_0.23.1-1_all.deb ... 193s Unpacking autopoint (0.23.1-1) ... 193s Selecting previously unselected package libisl23:amd64. 193s Preparing to unpack .../05-libisl23_0.27-1_amd64.deb ... 193s Unpacking libisl23:amd64 (0.27-1) ... 193s Selecting previously unselected package libmpc3:amd64. 193s Preparing to unpack .../06-libmpc3_1.3.1-1build2_amd64.deb ... 193s Unpacking libmpc3:amd64 (1.3.1-1build2) ... 193s Selecting previously unselected package cpp-14-x86-64-linux-gnu. 193s Preparing to unpack .../07-cpp-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking cpp-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package cpp-14. 193s Preparing to unpack .../08-cpp-14_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking cpp-14 (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package cpp-x86-64-linux-gnu. 193s Preparing to unpack .../09-cpp-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 193s Unpacking cpp-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 193s Selecting previously unselected package cpp. 193s Preparing to unpack .../10-cpp_4%3a14.2.0-1ubuntu1_amd64.deb ... 193s Unpacking cpp (4:14.2.0-1ubuntu1) ... 193s Selecting previously unselected package libcc1-0:amd64. 193s Preparing to unpack .../11-libcc1-0_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libcc1-0:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libgomp1:amd64. 193s Preparing to unpack .../12-libgomp1_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libgomp1:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libitm1:amd64. 193s Preparing to unpack .../13-libitm1_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libitm1:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libasan8:amd64. 193s Preparing to unpack .../14-libasan8_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libasan8:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package liblsan0:amd64. 193s Preparing to unpack .../15-liblsan0_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking liblsan0:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libtsan2:amd64. 193s Preparing to unpack .../16-libtsan2_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libtsan2:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libubsan1:amd64. 193s Preparing to unpack .../17-libubsan1_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libubsan1:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libhwasan0:amd64. 193s Preparing to unpack .../18-libhwasan0_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libhwasan0:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libquadmath0:amd64. 193s Preparing to unpack .../19-libquadmath0_15-20250222-0ubuntu1_amd64.deb ... 193s Unpacking libquadmath0:amd64 (15-20250222-0ubuntu1) ... 193s Selecting previously unselected package libgcc-14-dev:amd64. 193s Preparing to unpack .../20-libgcc-14-dev_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking libgcc-14-dev:amd64 (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package gcc-14-x86-64-linux-gnu. 193s Preparing to unpack .../21-gcc-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking gcc-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package gcc-14. 193s Preparing to unpack .../22-gcc-14_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking gcc-14 (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package gcc-x86-64-linux-gnu. 193s Preparing to unpack .../23-gcc-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 193s Unpacking gcc-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 193s Selecting previously unselected package gcc. 193s Preparing to unpack .../24-gcc_4%3a14.2.0-1ubuntu1_amd64.deb ... 193s Unpacking gcc (4:14.2.0-1ubuntu1) ... 193s Selecting previously unselected package libstdc++-14-dev:amd64. 193s Preparing to unpack .../25-libstdc++-14-dev_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking libstdc++-14-dev:amd64 (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package g++-14-x86-64-linux-gnu. 193s Preparing to unpack .../26-g++-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking g++-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package g++-14. 193s Preparing to unpack .../27-g++-14_14.2.0-17ubuntu3_amd64.deb ... 193s Unpacking g++-14 (14.2.0-17ubuntu3) ... 193s Selecting previously unselected package g++-x86-64-linux-gnu. 193s Preparing to unpack .../28-g++-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 193s Unpacking g++-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 193s Selecting previously unselected package g++. 193s Preparing to unpack .../29-g++_4%3a14.2.0-1ubuntu1_amd64.deb ... 193s Unpacking g++ (4:14.2.0-1ubuntu1) ... 193s Selecting previously unselected package build-essential. 193s Preparing to unpack .../30-build-essential_12.10ubuntu1_amd64.deb ... 193s Unpacking build-essential (12.10ubuntu1) ... 193s Selecting previously unselected package libdebhelper-perl. 193s Preparing to unpack .../31-libdebhelper-perl_13.24.1ubuntu2_all.deb ... 193s Unpacking libdebhelper-perl (13.24.1ubuntu2) ... 193s Selecting previously unselected package libtool. 193s Preparing to unpack .../32-libtool_2.5.4-4_all.deb ... 193s Unpacking libtool (2.5.4-4) ... 193s Selecting previously unselected package dh-autoreconf. 193s Preparing to unpack .../33-dh-autoreconf_20_all.deb ... 193s Unpacking dh-autoreconf (20) ... 193s Selecting previously unselected package libarchive-zip-perl. 193s Preparing to unpack .../34-libarchive-zip-perl_1.68-1_all.deb ... 193s Unpacking libarchive-zip-perl (1.68-1) ... 193s Selecting previously unselected package libfile-stripnondeterminism-perl. 193s Preparing to unpack .../35-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ... 193s Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... 193s Selecting previously unselected package dh-strip-nondeterminism. 193s Preparing to unpack .../36-dh-strip-nondeterminism_1.14.1-2_all.deb ... 193s Unpacking dh-strip-nondeterminism (1.14.1-2) ... 193s Selecting previously unselected package debugedit. 193s Preparing to unpack .../37-debugedit_1%3a5.1-2_amd64.deb ... 193s Unpacking debugedit (1:5.1-2) ... 193s Selecting previously unselected package dwz. 193s Preparing to unpack .../38-dwz_0.15-1build6_amd64.deb ... 193s Unpacking dwz (0.15-1build6) ... 193s Selecting previously unselected package gettext. 193s Preparing to unpack .../39-gettext_0.23.1-1_amd64.deb ... 193s Unpacking gettext (0.23.1-1) ... 193s Selecting previously unselected package intltool-debian. 193s Preparing to unpack .../40-intltool-debian_0.35.0+20060710.6_all.deb ... 193s Unpacking intltool-debian (0.35.0+20060710.6) ... 193s Selecting previously unselected package po-debconf. 193s Preparing to unpack .../41-po-debconf_1.0.21+nmu1_all.deb ... 193s Unpacking po-debconf (1.0.21+nmu1) ... 193s Selecting previously unselected package debhelper. 193s Preparing to unpack .../42-debhelper_13.24.1ubuntu2_all.deb ... 193s Unpacking debhelper (13.24.1ubuntu2) ... 193s Selecting previously unselected package dh-python. 193s Preparing to unpack .../43-dh-python_6.20250308_all.deb ... 193s Unpacking dh-python (6.20250308) ... 193s Selecting previously unselected package libjs-jquery. 193s Preparing to unpack .../44-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 193s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 193s Selecting previously unselected package libjs-jquery-metadata. 193s Preparing to unpack .../45-libjs-jquery-metadata_12-4_all.deb ... 193s Unpacking libjs-jquery-metadata (12-4) ... 193s Selecting previously unselected package libjs-jquery-tablesorter. 193s Preparing to unpack .../46-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 193s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 194s Selecting previously unselected package libjs-jquery-throttle-debounce. 194s Preparing to unpack .../47-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 194s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 194s Selecting previously unselected package pybuild-plugin-autopkgtest. 194s Preparing to unpack .../48-pybuild-plugin-autopkgtest_6.20250308_all.deb ... 194s Unpacking pybuild-plugin-autopkgtest (6.20250308) ... 194s Selecting previously unselected package python3-importlib-metadata. 194s Preparing to unpack .../49-python3-importlib-metadata_8.6.1-1_all.deb ... 194s Unpacking python3-importlib-metadata (8.6.1-1) ... 194s Selecting previously unselected package python3-packaging. 194s Preparing to unpack .../50-python3-packaging_24.2-1_all.deb ... 194s Unpacking python3-packaging (24.2-1) ... 194s Selecting previously unselected package python3-pyproject-hooks. 194s Preparing to unpack .../51-python3-pyproject-hooks_1.2.0-1_all.deb ... 194s Unpacking python3-pyproject-hooks (1.2.0-1) ... 194s Selecting previously unselected package python3-toml. 194s Preparing to unpack .../52-python3-toml_0.10.2-1_all.deb ... 194s Unpacking python3-toml (0.10.2-1) ... 194s Selecting previously unselected package python3-wheel. 194s Preparing to unpack .../53-python3-wheel_0.45.1-1_all.deb ... 194s Unpacking python3-wheel (0.45.1-1) ... 194s Selecting previously unselected package python3-build. 194s Preparing to unpack .../54-python3-build_1.2.2-1_all.deb ... 194s Unpacking python3-build (1.2.2-1) ... 194s Selecting previously unselected package python3-installer. 194s Preparing to unpack .../55-python3-installer_0.7.0+dfsg1-3_all.deb ... 194s Unpacking python3-installer (0.7.0+dfsg1-3) ... 194s Selecting previously unselected package pybuild-plugin-pyproject. 194s Preparing to unpack .../56-pybuild-plugin-pyproject_6.20250308_all.deb ... 194s Unpacking pybuild-plugin-pyproject (6.20250308) ... 194s Selecting previously unselected package python3-all. 194s Preparing to unpack .../57-python3-all_3.13.2-2_amd64.deb ... 194s Unpacking python3-all (3.13.2-2) ... 194s Selecting previously unselected package python3-msgpack. 194s Preparing to unpack .../58-python3-msgpack_1.0.3-3build4_amd64.deb ... 194s Unpacking python3-msgpack (1.0.3-3build4) ... 194s Selecting previously unselected package python3-cachecontrol. 194s Preparing to unpack .../59-python3-cachecontrol_0.14.2-1_all.deb ... 194s Unpacking python3-cachecontrol (0.14.2-1) ... 194s Selecting previously unselected package python3-rapidfuzz. 194s Preparing to unpack .../60-python3-rapidfuzz_3.12.1+ds-1build1_amd64.deb ... 194s Unpacking python3-rapidfuzz (3.12.1+ds-1build1) ... 194s Selecting previously unselected package python3-cleo. 194s Preparing to unpack .../61-python3-cleo_2.2.1-4_all.deb ... 194s Unpacking python3-cleo (2.2.1-4) ... 194s Selecting previously unselected package python3-coverage. 194s Preparing to unpack .../62-python3-coverage_7.6.0+dfsg1-2build1_amd64.deb ... 194s Unpacking python3-coverage (7.6.0+dfsg1-2build1) ... 194s Selecting previously unselected package python3-distlib. 194s Preparing to unpack .../63-python3-distlib_0.3.9-1_all.deb ... 194s Unpacking python3-distlib (0.3.9-1) ... 194s Selecting previously unselected package python3-dulwich. 194s Preparing to unpack .../64-python3-dulwich_0.22.7-1_amd64.deb ... 194s Unpacking python3-dulwich (0.22.7-1) ... 194s Selecting previously unselected package python3-execnet. 194s Preparing to unpack .../65-python3-execnet_2.1.1-1_all.deb ... 194s Unpacking python3-execnet (2.1.1-1) ... 194s Selecting previously unselected package python3-fastjsonschema. 194s Preparing to unpack .../66-python3-fastjsonschema_2.21.1-1_all.deb ... 194s Unpacking python3-fastjsonschema (2.21.1-1) ... 194s Selecting previously unselected package python3-filelock. 194s Preparing to unpack .../67-python3-filelock_3.17.0-1_all.deb ... 194s Unpacking python3-filelock (3.17.0-1) ... 194s Selecting previously unselected package python3-findpython. 194s Preparing to unpack .../68-python3-findpython_0.6.2-1_all.deb ... 194s Unpacking python3-findpython (0.6.2-1) ... 194s Selecting previously unselected package python3-iniconfig. 194s Preparing to unpack .../69-python3-iniconfig_1.1.1-2_all.deb ... 194s Unpacking python3-iniconfig (1.1.1-2) ... 194s Selecting previously unselected package python3-jaraco.classes. 194s Preparing to unpack .../70-python3-jaraco.classes_3.4.0-1_all.deb ... 194s Unpacking python3-jaraco.classes (3.4.0-1) ... 194s Selecting previously unselected package python3-jeepney. 194s Preparing to unpack .../71-python3-jeepney_0.8.0-4_all.deb ... 194s Unpacking python3-jeepney (0.8.0-4) ... 194s Selecting previously unselected package python3-secretstorage. 194s Preparing to unpack .../72-python3-secretstorage_3.3.3-3_all.deb ... 194s Unpacking python3-secretstorage (3.3.3-3) ... 194s Selecting previously unselected package python3-keyring. 194s Preparing to unpack .../73-python3-keyring_25.6.0-1_all.deb ... 194s Unpacking python3-keyring (25.6.0-1) ... 194s Selecting previously unselected package python3-pbs-installer. 194s Preparing to unpack .../74-python3-pbs-installer_2025.02.12-2_all.deb ... 194s Unpacking python3-pbs-installer (2025.02.12-2) ... 195s Selecting previously unselected package python3-pip-whl. 195s Preparing to unpack .../75-python3-pip-whl_25.0+dfsg-1_all.deb ... 195s Unpacking python3-pip-whl (25.0+dfsg-1) ... 195s Selecting previously unselected package python3-pkginfo. 195s Preparing to unpack .../76-python3-pkginfo_1.12.1.2-2_all.deb ... 195s Unpacking python3-pkginfo (1.12.1.2-2) ... 195s Selecting previously unselected package python3-platformdirs. 195s Preparing to unpack .../77-python3-platformdirs_4.3.6-1_all.deb ... 195s Unpacking python3-platformdirs (4.3.6-1) ... 195s Selecting previously unselected package python3-pluggy. 195s Preparing to unpack .../78-python3-pluggy_1.5.0-1_all.deb ... 195s Unpacking python3-pluggy (1.5.0-1) ... 195s Selecting previously unselected package python3-poetry-core. 195s Preparing to unpack .../79-python3-poetry-core_2.1.1-1_all.deb ... 195s Unpacking python3-poetry-core (2.1.1-1) ... 195s Selecting previously unselected package python3-requests-toolbelt. 195s Preparing to unpack .../80-python3-requests-toolbelt_1.0.0-4_all.deb ... 195s Unpacking python3-requests-toolbelt (1.0.0-4) ... 195s Selecting previously unselected package python3-shellingham. 195s Preparing to unpack .../81-python3-shellingham_1.5.4-1_all.deb ... 195s Unpacking python3-shellingham (1.5.4-1) ... 195s Selecting previously unselected package python3-tomlkit. 195s Preparing to unpack .../82-python3-tomlkit_0.13.2-1_all.deb ... 195s Unpacking python3-tomlkit (0.13.2-1) ... 195s Selecting previously unselected package python3-trove-classifiers. 195s Preparing to unpack .../83-python3-trove-classifiers_2025.1.15.22-1_all.deb ... 195s Unpacking python3-trove-classifiers (2025.1.15.22-1) ... 195s Selecting previously unselected package python3-setuptools-whl. 195s Preparing to unpack .../84-python3-setuptools-whl_75.8.0-1_all.deb ... 195s Unpacking python3-setuptools-whl (75.8.0-1) ... 195s Selecting previously unselected package python3-wheel-whl. 195s Preparing to unpack .../85-python3-wheel-whl_0.45.1-1_all.deb ... 195s Unpacking python3-wheel-whl (0.45.1-1) ... 195s Selecting previously unselected package python3-virtualenv. 195s Preparing to unpack .../86-python3-virtualenv_20.29.1+ds-1_all.deb ... 195s Unpacking python3-virtualenv (20.29.1+ds-1) ... 195s Selecting previously unselected package python3-poetry. 195s Preparing to unpack .../87-python3-poetry_2.1.1+dfsg-1_all.deb ... 195s Unpacking python3-poetry (2.1.1+dfsg-1) ... 195s Selecting previously unselected package python3-poetry-plugin-export. 195s Preparing to unpack .../88-python3-poetry-plugin-export_1.9.0-1_all.deb ... 195s Unpacking python3-poetry-plugin-export (1.9.0-1) ... 195s Selecting previously unselected package python3-pytest. 195s Preparing to unpack .../89-python3-pytest_8.3.4-1_all.deb ... 195s Unpacking python3-pytest (8.3.4-1) ... 195s Selecting previously unselected package libjs-jquery-hotkeys. 195s Preparing to unpack .../90-libjs-jquery-hotkeys_0.2.0-1_all.deb ... 195s Unpacking libjs-jquery-hotkeys (0.2.0-1) ... 195s Selecting previously unselected package libjs-jquery-isonscreen. 195s Preparing to unpack .../91-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 195s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 195s Selecting previously unselected package python3-pytest-cov. 195s Preparing to unpack .../92-python3-pytest-cov_5.0.0-1_all.deb ... 195s Unpacking python3-pytest-cov (5.0.0-1) ... 195s Selecting previously unselected package python3-pytest-mock. 195s Preparing to unpack .../93-python3-pytest-mock_3.14.0-2_all.deb ... 195s Unpacking python3-pytest-mock (3.14.0-2) ... 195s Selecting previously unselected package python3-pytest-xdist. 195s Preparing to unpack .../94-python3-pytest-xdist_3.6.1-1_all.deb ... 195s Unpacking python3-pytest-xdist (3.6.1-1) ... 195s Setting up dh-python (6.20250308) ... 195s Setting up python3-iniconfig (1.1.1-2) ... 195s Setting up python3-rapidfuzz (3.12.1+ds-1build1) ... 196s Setting up python3-setuptools-whl (75.8.0-1) ... 196s Setting up python3-filelock (3.17.0-1) ... 196s Setting up python3-jaraco.classes (3.4.0-1) ... 196s Setting up python3-requests-toolbelt (1.0.0-4) ... 196s Setting up python3-importlib-metadata (8.6.1-1) ... 196s Setting up python3-pkginfo (1.12.1.2-2) ... 196s Setting up python3-pip-whl (25.0+dfsg-1) ... 196s Setting up libarchive-zip-perl (1.68-1) ... 196s Setting up libdebhelper-perl (13.24.1ubuntu2) ... 196s Setting up m4 (1.4.19-7) ... 196s Setting up python3-all (3.13.2-2) ... 196s Setting up python3-coverage (7.6.0+dfsg1-2build1) ... 196s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 196s Setting up python3-distlib (0.3.9-1) ... 196s Setting up libgomp1:amd64 (15-20250222-0ubuntu1) ... 196s Setting up python3-wheel (0.45.1-1) ... 197s Setting up python3-platformdirs (4.3.6-1) ... 197s Setting up autotools-dev (20220109.1) ... 197s Setting up python3-packaging (24.2-1) ... 197s Setting up python3-pyproject-hooks (1.2.0-1) ... 197s Setting up python3-poetry-core (2.1.1-1) ... 197s Setting up libquadmath0:amd64 (15-20250222-0ubuntu1) ... 197s Setting up libmpc3:amd64 (1.3.1-1build2) ... 197s Setting up autopoint (0.23.1-1) ... 197s Setting up python3-toml (0.10.2-1) ... 197s Setting up python3-jeepney (0.8.0-4) ... 197s Setting up python3-installer (0.7.0+dfsg1-3) ... 198s Setting up autoconf (2.72-3ubuntu1) ... 198s Setting up python3-pluggy (1.5.0-1) ... 198s Setting up libubsan1:amd64 (15-20250222-0ubuntu1) ... 198s Setting up python3-fastjsonschema (2.21.1-1) ... 198s Setting up dwz (0.15-1build6) ... 198s Setting up python3-trove-classifiers (2025.1.15.22-1) ... 198s Setting up libhwasan0:amd64 (15-20250222-0ubuntu1) ... 198s Setting up python3-pbs-installer (2025.02.12-2) ... 198s Setting up python3-dulwich (0.22.7-1) ... 198s Setting up libasan8:amd64 (15-20250222-0ubuntu1) ... 198s Setting up debugedit (1:5.1-2) ... 198s Setting up python3-cleo (2.2.1-4) ... 198s Setting up python3-msgpack (1.0.3-3build4) ... 199s Setting up python3-cachecontrol (0.14.2-1) ... 199s Setting up libtsan2:amd64 (15-20250222-0ubuntu1) ... 199s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 199s Setting up libjs-jquery-hotkeys (0.2.0-1) ... 199s Setting up libisl23:amd64 (0.27-1) ... 199s Setting up python3-build (1.2.2-1) ... 199s Setting up python3-execnet (2.1.1-1) ... 199s Setting up python3-shellingham (1.5.4-1) ... 199s Setting up python3-tomlkit (0.13.2-1) ... 199s Setting up python3-wheel-whl (0.45.1-1) ... 199s Setting up libcc1-0:amd64 (15-20250222-0ubuntu1) ... 199s Setting up liblsan0:amd64 (15-20250222-0ubuntu1) ... 199s Setting up libitm1:amd64 (15-20250222-0ubuntu1) ... 199s Setting up automake (1:1.17-3ubuntu1) ... 199s update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode 199s Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... 199s Setting up gettext (0.23.1-1) ... 199s Setting up python3-findpython (0.6.2-1) ... 199s Setting up pybuild-plugin-pyproject (6.20250308) ... 199s Setting up python3-pytest (8.3.4-1) ... 200s Setting up python3-virtualenv (20.29.1+ds-1) ... 200s Setting up intltool-debian (0.35.0+20060710.6) ... 200s Setting up python3-secretstorage (3.3.3-3) ... 200s Setting up libjs-jquery-metadata (12-4) ... 200s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 200s Setting up cpp-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 200s Setting up cpp-14 (14.2.0-17ubuntu3) ... 200s Setting up dh-strip-nondeterminism (1.14.1-2) ... 200s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 200s Setting up python3-pytest-mock (3.14.0-2) ... 200s Setting up python3-keyring (25.6.0-1) ... 200s Setting up libgcc-14-dev:amd64 (14.2.0-17ubuntu3) ... 200s Setting up libstdc++-14-dev:amd64 (14.2.0-17ubuntu3) ... 200s Setting up cpp-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 200s Setting up python3-pytest-xdist (3.6.1-1) ... 200s Setting up po-debconf (1.0.21+nmu1) ... 200s Setting up python3-pytest-cov (5.0.0-1) ... 200s Setting up python3-poetry (2.1.1+dfsg-1) ... 201s Setting up cpp (4:14.2.0-1ubuntu1) ... 201s Setting up gcc-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 201s Setting up python3-poetry-plugin-export (1.9.0-1) ... 201s Setting up gcc-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 201s Setting up gcc-14 (14.2.0-17ubuntu3) ... 201s Setting up g++-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 201s Setting up g++-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 201s Setting up g++-14 (14.2.0-17ubuntu3) ... 201s Setting up libtool (2.5.4-4) ... 201s Setting up gcc (4:14.2.0-1ubuntu1) ... 201s Setting up dh-autoreconf (20) ... 201s Setting up g++ (4:14.2.0-1ubuntu1) ... 201s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 201s Setting up build-essential (12.10ubuntu1) ... 201s Setting up debhelper (13.24.1ubuntu2) ... 201s Setting up pybuild-plugin-autopkgtest (6.20250308) ... 201s Processing triggers for install-info (7.1.1-1) ... 201s Processing triggers for libc-bin (2.41-1ubuntu1) ... 201s Processing triggers for man-db (2.13.0-1) ... 203s autopkgtest [09:21:51]: test pybuild-autopkgtest: pybuild-autopkgtest 203s autopkgtest [09:21:51]: test pybuild-autopkgtest: [----------------------- 204s pybuild-autopkgtest 204s I: pybuild base:311: cd /tmp/autopkgtest.reEi4H/autopkgtest_tmp/build; python3.13 -m pytest tests 206s ============================= test session starts ============================== 206s platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0 206s rootdir: /tmp/autopkgtest.reEi4H/autopkgtest_tmp/build 206s configfile: pyproject.toml 206s plugins: cov-5.0.0, typeguard-4.4.2, xdist-3.6.1, mock-3.14.0 206s created: 2/2 workers 206s 2 workers [141 items] 206s 212s FFF.FF...FF.F.F.FF.F.FF.F.FFFFFFFFFF..FFFFFFFFFFFFFFFFFF..FFFFFFFFF.F.FF [ 51%] 215s .F.FFFF.F.FFFFFFFFFFFFFFFF..F.F..F....FFFFF.F....FFF.FFFFFFFFFFFFF..F [100%] 215s =================================== FAILURES =================================== 215s _ test_export_includes_extras_by_flag[feature_bar-bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, extras = 'feature_bar' 215s expected = 'bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "extras, expected", 215s [ 215s ( 215s "feature_bar", 215s f"""\ 215s bar==1.1.0 ; {MARKER_PY} 215s foo==1.0.0 ; {MARKER_PY} 215s """, 215s ), 215s ( 215s "feature_bar feature_qux", 215s f"""\ 215s bar==1.1.0 ; {MARKER_PY} 215s foo==1.0.0 ; {MARKER_PY} 215s qux==1.2.0 ; {MARKER_PY} 215s """, 215s ), 215s ], 215s ) 215s def test_export_includes_extras_by_flag( 215s tester: CommandTester, do_lock: None, extras: str, expected: str 215s ) -> None: 215s tester.execute(f"--format requirements.txt --extras '{extras}'") 215s > assert tester.io.fetch_output() == expected 215s E assert 'bar==1.1.0 ;...ion < "4.0"\n' == 'bar==1.1.0 ;...on == "2.7"\n' 215s E 215s E - bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==1.1.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/command/test_command_export.py:226: AssertionError 215s _ test_export_includes_extras_by_flag[feature_bar feature_qux-bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nqux==1.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, extras = 'feature_bar feature_qux' 215s expected = 'bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_versi... python_version == "2.7"\nqux==1.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "extras, expected", 215s [ 215s ( 215s "feature_bar", 215s f"""\ 215s bar==1.1.0 ; {MARKER_PY} 215s foo==1.0.0 ; {MARKER_PY} 215s """, 215s ), 215s ( 215s "feature_bar feature_qux", 215s f"""\ 215s bar==1.1.0 ; {MARKER_PY} 215s foo==1.0.0 ; {MARKER_PY} 215s qux==1.2.0 ; {MARKER_PY} 215s """, 215s ), 215s ], 215s ) 215s def test_export_includes_extras_by_flag( 215s tester: CommandTester, do_lock: None, extras: str, expected: str 215s ) -> None: 215s tester.execute(f"--format requirements.txt --extras '{extras}'") 215s > assert tester.io.fetch_output() == expected 215s E assert 'bar==1.1.0 ;...ion < "4.0"\n' == 'bar==1.1.0 ;...on == "2.7"\n' 215s E 215s E - bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==1.1.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/command/test_command_export.py:226: AssertionError 215s _______ test_export_exports_requirements_txt_file_locks_if_no_lock_file ________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s poetry = 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_export_exports_requiremen0') 215s 215s def test_export_exports_requirements_txt_file_locks_if_no_lock_file( 215s tester: CommandTester, poetry: Poetry, tmp_path: Path 215s ) -> None: 215s assert not poetry.locker.lock.exists() 215s > _export_requirements(tester, poetry, tmp_path) 215s 215s tests/command/test_command_export.py:122: 215s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 215s 215s tester = 215s poetry = 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_export_exports_requiremen0') 215s 215s def _export_requirements(tester: CommandTester, poetry: Poetry, tmp_path: Path) -> None: 215s from tests.helpers import as_cwd 215s 215s with as_cwd(tmp_path): 215s tester.execute("--format requirements.txt --output requirements.txt") 215s 215s requirements = tmp_path / "requirements.txt" 215s assert requirements.exists() 215s 215s with requirements.open(encoding="utf-8") as f: 215s content = f.read() 215s 215s assert poetry.locker.lock.exists() 215s 215s expected = f"""\ 215s foo==1.0.0 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:115: AssertionError 215s _____________ test_export_exports_requirements_txt_uses_lock_file ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s poetry = 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_export_exports_requiremen1') 215s do_lock = None 215s 215s def test_export_exports_requirements_txt_uses_lock_file( 215s tester: CommandTester, poetry: Poetry, tmp_path: Path, do_lock: None 215s ) -> None: 215s > _export_requirements(tester, poetry, tmp_path) 215s 215s tests/command/test_command_export.py:129: 215s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 215s 215s tester = 215s poetry = 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_export_exports_requiremen1') 215s 215s def _export_requirements(tester: CommandTester, poetry: Poetry, tmp_path: Path) -> None: 215s from tests.helpers import as_cwd 215s 215s with as_cwd(tmp_path): 215s tester.execute("--format requirements.txt --output requirements.txt") 215s 215s requirements = tmp_path / "requirements.txt" 215s assert requirements.exists() 215s 215s with requirements.open(encoding="utf-8") as f: 215s content = f.read() 215s 215s assert poetry.locker.lock.exists() 215s 215s expected = f"""\ 215s foo==1.0.0 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:115: AssertionError 215s _________________________ test_export_with_all_extras __________________________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None 215s 215s def test_export_with_all_extras(tester: CommandTester, do_lock: None) -> None: 215s tester.execute("--format requirements.txt --all-extras") 215s output = tester.io.fetch_output() 215s > assert f"bar==1.1.0 ; {MARKER_PY}" in output 215s E assert 'bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"' in 'bar==1.1.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0"\nfoo==1.0.0 ; python_versi...d python_version < "4.0"\nqux==1.2.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0"\n' 215s 215s tests/command/test_command_export.py:239: AssertionError 215s _________________________ test_export_with_all_groups __________________________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None 215s 215s def test_export_with_all_groups(tester: CommandTester, do_lock: None) -> None: 215s tester.execute("--format requirements.txt --all-groups") 215s output = tester.io.fetch_output() 215s > assert f"baz==2.0.0 ; {MARKER_PY}" in output 215s E assert 'baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"' in 'baz==2.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0"\nfoo==1.0.0 ; python_versi...d python_version < "4.0"\nopt==2.2.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0"\n' 215s 215s tests/command/test_command_export.py:256: AssertionError 215s ___________________ test_export_prints_to_stdout_by_default ____________________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None 215s 215s def test_export_prints_to_stdout_by_default( 215s tester: CommandTester, do_lock: None 215s ) -> None: 215s tester.execute("--format requirements.txt") 215s expected = f"""\ 215s foo==1.0.0 ; {MARKER_PY} 215s """ 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:157: AssertionError 215s _____________ test_export_uses_requirements_txt_format_by_default ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None 215s 215s def test_export_uses_requirements_txt_format_by_default( 215s tester: CommandTester, do_lock: None 215s ) -> None: 215s tester.execute() 215s expected = f"""\ 215s foo==1.0.0 ; {MARKER_PY} 215s """ 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:167: AssertionError 215s _ test_export_groups[-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '' 215s expected = 'foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:199: AssertionError 215s _ test_export_groups[--with dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--with dev' 215s expected = 'baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'baz==2.0.0 ;...ion < "4.0"\n' == 'baz==2.0.0 ;...on == "2.7"\n' 215s E 215s E - baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + baz==2.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/command/test_command_export.py:199: AssertionError 215s _ test_export_groups[--with opt-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--with opt' 215s expected = 'foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - opt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/command/test_command_export.py:199: AssertionError 215s _ test_export_groups[--with dev,opt-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--with dev,opt' 215s expected = 'baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_versi... python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'baz==2.0.0 ;...ion < "4.0"\n' == 'baz==2.0.0 ;...on == "2.7"\n' 215s E 215s E - baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + baz==2.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/command/test_command_export.py:199: AssertionError 215s _ test_export_groups[--without dev-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--without dev' 215s expected = 'foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:199: AssertionError 215s _ test_export_groups[--without opt-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--without opt' 215s expected = 'foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:199: AssertionError 215s ____ test_exporter_can_export_requirements_txt_with_standard_packages[1.1] _____ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi0') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:159: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ____ test_exporter_can_export_requirements_txt_with_standard_packages[2.1] _____ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi1') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:159: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_markers[1.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi2') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_markers( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["markers"] = "python_version < '3.7'" 215s lock_data["package"][2]["markers"] = "sys_platform == 'win32'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s markers = { 215s "foo": "python_version < '3.7'", 215s "bar": "extra =='foo'", 215s "baz": "sys_platform == 'win32'", 215s } 215s set_package_requires(poetry, markers=markers) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s baz==7.8.9 ; {MARKER_PY_WIN32} 215s foo==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_ONLY)} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...on == "3.6"\n' == 'bar==4.5.6 ;...on == "3.6"\n' 215s E 215s E Skipping 57 identical trailing characters in diff, use -v to show 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; (python_version >= "3.6" or python_version == "2.7") and sys_platform == "win32" and python_version < "4.0"... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:218: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_markers[2.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi3') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_markers( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["markers"] = "python_version < '3.7'" 215s lock_data["package"][2]["markers"] = "sys_platform == 'win32'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s markers = { 215s "foo": "python_version < '3.7'", 215s "bar": "extra =='foo'", 215s "baz": "sys_platform == 'win32'", 215s } 215s set_package_requires(poetry, markers=markers) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s baz==7.8.9 ; {MARKER_PY_WIN32} 215s foo==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_ONLY)} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...on == "3.6"\n' == 'bar==4.5.6 ;...on == "3.6"\n' 215s E 215s E Skipping 57 identical trailing characters in diff, use -v to show 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; (python_version >= "3.6" or python_version == "2.7") and sys_platform == "win32" and python_version < "4.0"... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:218: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_export_groups[--only main-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--only main' 215s expected = 'foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'foo==1.0.0 ;...ion < "4.0"\n' == 'foo==1.0.0 ;...on == "2.7"\n' 215s E 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:199: AssertionError 215s ____________ test_exporter_can_export_requirements_txt_poetry[1.1] _____________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi4') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_poetry( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s """Regression test for #3254""" 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "poetry", 215s "version": "1.1.4", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"keyring": "*"}, 215s }, 215s { 215s "name": "junit-xml", 215s "version": "1.9", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"six": "*"}, 215s }, 215s { 215s "name": "keyring", 215s "version": "21.8.0", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "SecretStorage": { 215s "version": "*", 215s "markers": "sys_platform == 'linux'", 215s } 215s }, 215s }, 215s { 215s "name": "secretstorage", 215s "version": "3.3.0", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"cryptography": "*"}, 215s }, 215s { 215s "name": "cryptography", 215s "version": "3.2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"six": "*"}, 215s }, 215s { 215s "name": "six", 215s "version": "1.15.0", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "poetry": [], 215s "keyring": [], 215s "secretstorage": [], 215s "cryptography": [], 215s "six": [], 215s "junit-xml": [], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][3]["markers"] = "sys_platform == 'linux'" 215s lock_data["package"][4]["markers"] = "sys_platform == 'linux'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires( 215s poetry, skip={"keyring", "secretstorage", "cryptography", "six"} 215s ) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # The dependency graph: 215s # junit-xml 1.9 Creates JUnit XML test result documents that can be read by tools 215s # └── six * such as Jenkins 215s # poetry 1.1.4 Python dependency management and packaging made easy. 215s # ├── keyring >=21.2.0,<22.0.0 215s # │ ├── importlib-metadata >=1 215s # │ │ └── zipp >=0.5 215s # │ ├── jeepney >=0.4.2 215s # │ ├── pywin32-ctypes <0.1.0 || >0.1.0,<0.1.1 || >0.1.1 215s # │ └── secretstorage >=3.2 -- On linux only 215s # │ ├── cryptography >=2.0 215s # │ │ └── six >=1.4.1 215s # │ └── jeepney >=0.6 (circular dependency aborted here) 215s expected = { 215s "poetry": Dependency.create_from_pep_508(f"poetry==1.1.4; {MARKER_PY}"), 215s "junit-xml": Dependency.create_from_pep_508(f"junit-xml==1.9 ; {MARKER_PY}"), 215s "keyring": Dependency.create_from_pep_508(f"keyring==21.8.0 ; {MARKER_PY}"), 215s "secretstorage": Dependency.create_from_pep_508( 215s f"secretstorage==3.3.0 ; {MARKER_PY_LINUX}" 215s ), 215s "cryptography": Dependency.create_from_pep_508( 215s f"cryptography==3.2 ; {MARKER_PY_LINUX}" 215s ), 215s "six": Dependency.create_from_pep_508( 215s f"six==1.15.0 ; {MARKER_PY.union(MARKER_PY_LINUX)}" 215s ), 215s } 215s 215s for line in content.strip().split("\n"): 215s dependency = Dependency.create_from_pep_508(line) 215s assert dependency.name in expected 215s expected_dependency = expected.pop(dependency.name) 215s assert dependency == expected_dependency 215s > assert dependency.marker == expected_dependency.marker 215s E assert = "3.6") and python_version < "4.0" and sys_platform == "linux"> == = "3.6" or python_version == "2.7") and sys_platform == "linux" and python_version < "4.0"> 215s E + where = "3.6") and python_version < "4.0" and sys_platform == "linux"> = .marker 215s E + and = "3.6" or python_version == "2.7") and sys_platform == "linux" and python_version < "4.0"> = .marker 215s 215s tests/test_exporter.py:338: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ____________ test_exporter_can_export_requirements_txt_poetry[2.1] _____________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi5') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_poetry( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s """Regression test for #3254""" 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "poetry", 215s "version": "1.1.4", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"keyring": "*"}, 215s }, 215s { 215s "name": "junit-xml", 215s "version": "1.9", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"six": "*"}, 215s }, 215s { 215s "name": "keyring", 215s "version": "21.8.0", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "SecretStorage": { 215s "version": "*", 215s "markers": "sys_platform == 'linux'", 215s } 215s }, 215s }, 215s { 215s "name": "secretstorage", 215s "version": "3.3.0", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"cryptography": "*"}, 215s }, 215s { 215s "name": "cryptography", 215s "version": "3.2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"six": "*"}, 215s }, 215s { 215s "name": "six", 215s "version": "1.15.0", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "poetry": [], 215s "keyring": [], 215s "secretstorage": [], 215s "cryptography": [], 215s "six": [], 215s "junit-xml": [], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][3]["markers"] = "sys_platform == 'linux'" 215s lock_data["package"][4]["markers"] = "sys_platform == 'linux'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires( 215s poetry, skip={"keyring", "secretstorage", "cryptography", "six"} 215s ) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # The dependency graph: 215s # junit-xml 1.9 Creates JUnit XML test result documents that can be read by tools 215s # └── six * such as Jenkins 215s # poetry 1.1.4 Python dependency management and packaging made easy. 215s # ├── keyring >=21.2.0,<22.0.0 215s # │ ├── importlib-metadata >=1 215s # │ │ └── zipp >=0.5 215s # │ ├── jeepney >=0.4.2 215s # │ ├── pywin32-ctypes <0.1.0 || >0.1.0,<0.1.1 || >0.1.1 215s # │ └── secretstorage >=3.2 -- On linux only 215s # │ ├── cryptography >=2.0 215s # │ │ └── six >=1.4.1 215s # │ └── jeepney >=0.6 (circular dependency aborted here) 215s expected = { 215s "poetry": Dependency.create_from_pep_508(f"poetry==1.1.4; {MARKER_PY}"), 215s "junit-xml": Dependency.create_from_pep_508(f"junit-xml==1.9 ; {MARKER_PY}"), 215s "keyring": Dependency.create_from_pep_508(f"keyring==21.8.0 ; {MARKER_PY}"), 215s "secretstorage": Dependency.create_from_pep_508( 215s f"secretstorage==3.3.0 ; {MARKER_PY_LINUX}" 215s ), 215s "cryptography": Dependency.create_from_pep_508( 215s f"cryptography==3.2 ; {MARKER_PY_LINUX}" 215s ), 215s "six": Dependency.create_from_pep_508( 215s f"six==1.15.0 ; {MARKER_PY.union(MARKER_PY_LINUX)}" 215s ), 215s } 215s 215s for line in content.strip().split("\n"): 215s dependency = Dependency.create_from_pep_508(line) 215s assert dependency.name in expected 215s expected_dependency = expected.pop(dependency.name) 215s assert dependency == expected_dependency 215s > assert dependency.marker == expected_dependency.marker 215s E assert = "3.6") and python_version < "4.0" and sys_platform == "linux"> == = "3.6" or python_version == "2.7") and sys_platform == "linux" and python_version < "4.0"> 215s E + where = "3.6") and python_version < "4.0" and sys_platform == "linux"> = .marker 215s E + and = "3.6" or python_version == "2.7") and sys_platform == "linux" and python_version < "4.0"> = .marker 215s 215s tests/test_exporter.py:338: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_export_groups[--only dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--only dev' 215s expected = 'baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'baz==2.0.0 ;...ion < "4.0"\n' == 'baz==2.0.0 ;...on == "2.7"\n' 215s E 215s E - baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + baz==2.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/command/test_command_export.py:199: AssertionError 215s __________ test_exporter_can_export_requirements_txt_pyinstaller[1.1] __________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi6') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_pyinstaller( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s """Regression test for #3254""" 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "pyinstaller", 215s "version": "4.0", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "altgraph": "*", 215s "macholib": { 215s "version": "*", 215s "markers": "sys_platform == 'darwin'", 215s }, 215s }, 215s }, 215s { 215s "name": "altgraph", 215s "version": "0.17", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "macholib", 215s "version": "1.8", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"altgraph": ">=0.15"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"pyinstaller": [], "altgraph": [], "macholib": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["markers"] = "sys_platform == 'darwin'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, skip={"altgraph", "macholib"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # Rationale for the results: 215s # * PyInstaller has an explicit dependency on altgraph, so it must always be 215s # installed. 215s # * PyInstaller requires macholib on Darwin, which in turn requires altgraph. 215s # The dependency graph: 215s # pyinstaller 4.0 PyInstaller bundles a Python application and all its 215s # ├── altgraph * dependencies into a single package. 215s # ├── macholib >=1.8 -- only on Darwin 215s # │ └── altgraph >=0.15 215s expected = { 215s "pyinstaller": Dependency.create_from_pep_508( 215s f"pyinstaller==4.0 ; {MARKER_PY}" 215s ), 215s "altgraph": Dependency.create_from_pep_508( 215s f"altgraph==0.17 ; {MARKER_PY.union(MARKER_PY_DARWIN)}" 215s ), 215s "macholib": Dependency.create_from_pep_508( 215s f"macholib==1.8 ; {MARKER_PY_DARWIN}" 215s ), 215s } 215s 215s for line in content.strip().split("\n"): 215s dependency = Dependency.create_from_pep_508(line) 215s assert dependency.name in expected 215s expected_dependency = expected.pop(dependency.name) 215s assert dependency == expected_dependency 215s > assert dependency.marker == expected_dependency.marker 215s E assert = "3.6" and python_version < "4.0"> == = "3.6" and python_version < "4.0" or python_version == "2.7"> 215s E + where = "3.6" and python_version < "4.0"> = .marker 215s E + and = "3.6" and python_version < "4.0" or python_version == "2.7"> = .marker 215s 215s tests/test_exporter.py:421: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __________ test_exporter_can_export_requirements_txt_pyinstaller[2.1] __________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi7') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_pyinstaller( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s """Regression test for #3254""" 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "pyinstaller", 215s "version": "4.0", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "altgraph": "*", 215s "macholib": { 215s "version": "*", 215s "markers": "sys_platform == 'darwin'", 215s }, 215s }, 215s }, 215s { 215s "name": "altgraph", 215s "version": "0.17", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "macholib", 215s "version": "1.8", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"altgraph": ">=0.15"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"pyinstaller": [], "altgraph": [], "macholib": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["markers"] = "sys_platform == 'darwin'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, skip={"altgraph", "macholib"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # Rationale for the results: 215s # * PyInstaller has an explicit dependency on altgraph, so it must always be 215s # installed. 215s # * PyInstaller requires macholib on Darwin, which in turn requires altgraph. 215s # The dependency graph: 215s # pyinstaller 4.0 PyInstaller bundles a Python application and all its 215s # ├── altgraph * dependencies into a single package. 215s # ├── macholib >=1.8 -- only on Darwin 215s # │ └── altgraph >=0.15 215s expected = { 215s "pyinstaller": Dependency.create_from_pep_508( 215s f"pyinstaller==4.0 ; {MARKER_PY}" 215s ), 215s "altgraph": Dependency.create_from_pep_508( 215s f"altgraph==0.17 ; {MARKER_PY.union(MARKER_PY_DARWIN)}" 215s ), 215s "macholib": Dependency.create_from_pep_508( 215s f"macholib==1.8 ; {MARKER_PY_DARWIN}" 215s ), 215s } 215s 215s for line in content.strip().split("\n"): 215s dependency = Dependency.create_from_pep_508(line) 215s assert dependency.name in expected 215s expected_dependency = expected.pop(dependency.name) 215s assert dependency == expected_dependency 215s > assert dependency.marker == expected_dependency.marker 215s E assert = "3.6" and python_version < "4.0"> == = "3.6" and python_version < "4.0" or python_version == "2.7"> 215s E + where = "3.6" and python_version < "4.0"> = .marker 215s E + and = "3.6" and python_version < "4.0" or python_version == "2.7"> = .marker 215s 215s tests/test_exporter.py:421: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_export_groups[--only main,dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tester = 215s do_lock = None, options = '--only main,dev' 215s expected = 'baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n' 215s 215s @pytest.mark.parametrize( 215s "options, expected", 215s [ 215s ("", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with dev", f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n"), 215s ("--with opt", f"foo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ; {MARKER_PY}\n"), 215s ( 215s "--with dev,opt", 215s ( 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\nopt==2.2.0 ;" 215s f" {MARKER_PY}\n" 215s ), 215s ), 215s (f"--without {MAIN_GROUP}", "\n"), 215s ("--without dev", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--without opt", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s (f"--without {MAIN_GROUP},dev,opt", "\n"), 215s (f"--only {MAIN_GROUP}", f"foo==1.0.0 ; {MARKER_PY}\n"), 215s ("--only dev", f"baz==2.0.0 ; {MARKER_PY}\n"), 215s ( 215s f"--only {MAIN_GROUP},dev", 215s f"baz==2.0.0 ; {MARKER_PY}\nfoo==1.0.0 ; {MARKER_PY}\n", 215s ), 215s ], 215s ) 215s def test_export_groups( 215s tester: CommandTester, do_lock: None, options: str, expected: str 215s ) -> None: 215s tester.execute(options) 215s > assert tester.io.fetch_output() == expected 215s E assert 'baz==2.0.0 ;...ion < "4.0"\n' == 'baz==2.0.0 ;...on == "2.7"\n' 215s E 215s E - baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + baz==2.0.0 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/command/test_command_export.py:199: AssertionError 215s _______ test_exporter_can_export_requirements_txt_with_git_packages[2.1] _______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi0') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_git_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "git", 215s "url": "https://github.com/foo/foo.git", 215s "reference": "123456", 215s "resolved_reference": "abcdef", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo @ git+https://github.com/foo/foo.git@abcdef ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo @ git+ht...ion < "4.0"\n' == 'foo @ git+ht...on == "2.7"\n' 215s E 215s E Skipping 55 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1066: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[1.1-False-lines0] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi10') 215s poetry = , dev = False 215s lines = ['a==1.2.3 ; python_version >= "3.6" and python_version < "3.8" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "lines"], 215s [ 215s ( 215s False, 215s [f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38)}"], 215s ), 215s ( 215s True, 215s [ 215s f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38).union(MARKER_PY36)}", 215s f"b==4.5.6 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any( 215s tmp_path: Path, poetry: Poetry, dev: bool, lines: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "a", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "b", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"a": ">=1.2.3"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"a": [], "b": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["main", "dev"] 215s lock_data["package"][0]["markers"] = {"main": "python_version < '3.8'"} 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s 215s root = poetry.package.with_dependency_groups([], only=True) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="a", constraint={"version": "^1.2.3", "python": "<3.8"} 215s ) 215s ) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="b", constraint={"version": "^4.5.6"}, groups=["dev"] 215s ) 215s ) 215s poetry._package = root 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content.strip() == "\n".join(lines) 215s E assert 'a==1.2.3 ; p...rsion < "3.8"' == 'a==1.2.3 ; p...sion == "2.7"' 215s E 215s E - a==1.2.3 ; python_version >= "3.6" and python_version < "3.8" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^^ ^^ ^ ^ 215s E + a==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "3.8" 215s E ? + ^ ^ ^^ ^^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:592: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____ test_exporter_can_export_requirements_txt_with_nested_packages[1.1] ______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi1') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "git", 215s "url": "https://github.com/foo/foo.git", 215s "reference": "123456", 215s "resolved_reference": "abcdef", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "foo": { 215s "git": "https://github.com/foo/foo.git", 215s "rev": "123456", 215s } 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, skip={"foo"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo @ git+https://github.com/foo/foo.git@abcdef ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo @ git+https://github.com/foo/foo.git@abcdef ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1122: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[1.1-True-lines1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi11') 215s poetry = , dev = True 215s lines = ['a==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'b==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "lines"], 215s [ 215s ( 215s False, 215s [f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38)}"], 215s ), 215s ( 215s True, 215s [ 215s f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38).union(MARKER_PY36)}", 215s f"b==4.5.6 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any( 215s tmp_path: Path, poetry: Poetry, dev: bool, lines: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "a", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "b", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"a": ">=1.2.3"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"a": [], "b": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["main", "dev"] 215s lock_data["package"][0]["markers"] = {"main": "python_version < '3.8'"} 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s 215s root = poetry.package.with_dependency_groups([], only=True) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="a", constraint={"version": "^1.2.3", "python": "<3.8"} 215s ) 215s ) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="b", constraint={"version": "^4.5.6"}, groups=["dev"] 215s ) 215s ) 215s poetry._package = root 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content.strip() == "\n".join(lines) 215s E assert 'a==1.2.3 ; p...rsion < "4.0"' == 'a==1.2.3 ; p...sion == "2.7"' 215s E 215s E - a==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + a==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - b==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:592: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____ test_exporter_can_export_requirements_txt_with_nested_packages[2.1] ______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi2') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "git", 215s "url": "https://github.com/foo/foo.git", 215s "reference": "123456", 215s "resolved_reference": "abcdef", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "foo": { 215s "git": "https://github.com/foo/foo.git", 215s "rev": "123456", 215s } 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, skip={"foo"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo @ git+https://github.com/foo/foo.git@abcdef ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo @ git+https://github.com/foo/foo.git@abcdef ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1122: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[2.1-False-lines0] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi12') 215s poetry = , dev = False 215s lines = ['a==1.2.3 ; python_version >= "3.6" and python_version < "3.8" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "lines"], 215s [ 215s ( 215s False, 215s [f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38)}"], 215s ), 215s ( 215s True, 215s [ 215s f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38).union(MARKER_PY36)}", 215s f"b==4.5.6 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any( 215s tmp_path: Path, poetry: Poetry, dev: bool, lines: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "a", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "b", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"a": ">=1.2.3"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"a": [], "b": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["main", "dev"] 215s lock_data["package"][0]["markers"] = {"main": "python_version < '3.8'"} 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s 215s root = poetry.package.with_dependency_groups([], only=True) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="a", constraint={"version": "^1.2.3", "python": "<3.8"} 215s ) 215s ) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="b", constraint={"version": "^4.5.6"}, groups=["dev"] 215s ) 215s ) 215s poetry._package = root 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content.strip() == "\n".join(lines) 215s E assert 'a==1.2.3 ; p...rsion < "3.8"' == 'a==1.2.3 ; p...sion == "2.7"' 215s E 215s E - a==1.2.3 ; python_version >= "3.6" and python_version < "3.8" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^^ ^^ ^ ^ 215s E + a==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "3.8" 215s E ? + ^ ^ ^^ ^^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:592: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __ test_exporter_can_export_requirements_txt_with_nested_packages_cyclic[1.1] __ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi3') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_cyclic( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"bar": {"version": "4.5.6"}}, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"baz": {"version": "7.8.9"}}, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"foo": {"version": "1.2.3"}}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, skip={"bar", "baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s baz==7.8.9 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1176: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[2.1-True-lines1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi13') 215s poetry = , dev = True 215s lines = ['a==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'b==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "lines"], 215s [ 215s ( 215s False, 215s [f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38)}"], 215s ), 215s ( 215s True, 215s [ 215s f"a==1.2.3 ; {MARKER_PY27.union(MARKER_PY36_38).union(MARKER_PY36)}", 215s f"b==4.5.6 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any( 215s tmp_path: Path, poetry: Poetry, dev: bool, lines: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "a", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "b", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"a": ">=1.2.3"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"a": [], "b": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["main", "dev"] 215s lock_data["package"][0]["markers"] = {"main": "python_version < '3.8'"} 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s 215s root = poetry.package.with_dependency_groups([], only=True) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="a", constraint={"version": "^1.2.3", "python": "<3.8"} 215s ) 215s ) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="b", constraint={"version": "^4.5.6"}, groups=["dev"] 215s ) 215s ) 215s poetry._package = root 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content.strip() == "\n".join(lines) 215s E assert 'a==1.2.3 ; p...rsion < "4.0"' == 'a==1.2.3 ; p...sion == "2.7"' 215s E 215s E - a==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + a==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - b==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:592: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __ test_exporter_can_export_requirements_txt_with_nested_packages_cyclic[2.1] __ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi4') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_cyclic( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"bar": {"version": "4.5.6"}}, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"baz": {"version": "7.8.9"}}, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"foo": {"version": "1.2.3"}}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, skip={"bar", "baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s baz==7.8.9 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1176: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes[1.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi14') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:12345\n' == 'bar==4.5.6 ;...ha256:12345\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:641: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_circular_root_dependency[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi5') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_circular_root_dependency( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {poetry.package.pretty_name: {"version": "1.2.3"}}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.2.3 ;...ion < "4.0"\n' == 'foo==1.2.3 ;...on == "2.7"\n' 215s E 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1214: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes[2.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi15') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:12345\n' == 'bar==4.5.6 ;...ha256:12345\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:641: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_circular_root_dependency[2.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi6') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_circular_root_dependency( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {poetry.package.pretty_name: {"version": "1.2.3"}}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.2.3 ;...ion < "4.0"\n' == 'foo==1.2.3 ;...on == "2.7"\n' 215s E 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1214: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes[1.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi16') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [ 215s {"name": "foo1.whl", "hash": "67890"}, 215s {"name": "foo2.whl", "hash": "12345"}, 215s ], 215s "bar": [ 215s {"name": "bar1.whl", "hash": "67890"}, 215s {"name": "bar2.whl", "hash": "12345"}, 215s ], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:12345 \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 \\ 215s --hash=sha256:67890 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:67890\n' == 'bar==4.5.6 ;...ha256:67890\n' 215s E 215s E Skipping 45 identical trailing characters in diff, use -v to show 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:12345 \... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:698: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi7') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "bar": [ 215s { 215s "version": ">=1.2.3,<7.8.10", 215s "markers": 'platform_system != "Windows"', 215s }, 215s { 215s "version": ">=4.5.6,<7.8.10", 215s "markers": 'platform_system == "Windows"', 215s }, 215s ] 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "7.8.9", 215s "optional": True, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": "!=10.11.12", 215s "markers": 'platform_system == "Windows"', 215s } 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "10.11.13", 215s "optional": True, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["markers"] = 'platform_system == "Windows"' 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.with_hashes(False) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s marker_py_not_windows = MARKER_PY.intersect( 215s parse_marker('platform_system != "Windows"') 215s ) 215s expected = f"""\ 215s bar==7.8.9 ; {marker_py_not_windows.union(MARKER_PY_WINDOWS)} 215s baz==10.11.13 ; {MARKER_PY_WINDOWS} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==7.8.9 ;...ion < "4.0"\n' == 'bar==7.8.9 ;...on == "2.7"\n' 215s E 215s E - bar==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==7.8.9 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==10.11.13 ; (python_version >= "3.6" or python_version == "2.7") and platform_system == "Windows" and python_version < "4.0" 215s E + baz==10.11.13 ; (python_version == "2.7" or python_version >= "3.6") and python_version < "4.0" and platform_system == "Windows"... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1289: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes[2.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi17') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [ 215s {"name": "foo1.whl", "hash": "67890"}, 215s {"name": "foo2.whl", "hash": "12345"}, 215s ], 215s "bar": [ 215s {"name": "bar1.whl", "hash": "67890"}, 215s {"name": "bar2.whl", "hash": "12345"}, 215s ], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:12345 \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 \\ 215s --hash=sha256:67890 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:67890\n' == 'bar==4.5.6 ;...ha256:67890\n' 215s E 215s E Skipping 45 identical trailing characters in diff, use -v to show 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:12345 \... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:698: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers[2.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi8') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "bar": [ 215s { 215s "version": ">=1.2.3,<7.8.10", 215s "markers": 'platform_system != "Windows"', 215s }, 215s { 215s "version": ">=4.5.6,<7.8.10", 215s "markers": 'platform_system == "Windows"', 215s }, 215s ] 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "7.8.9", 215s "optional": True, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": "!=10.11.12", 215s "markers": 'platform_system == "Windows"', 215s } 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "10.11.13", 215s "optional": True, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["markers"] = 'platform_system == "Windows"' 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.with_hashes(False) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s marker_py_not_windows = MARKER_PY.intersect( 215s parse_marker('platform_system != "Windows"') 215s ) 215s expected = f"""\ 215s bar==7.8.9 ; {marker_py_not_windows.union(MARKER_PY_WINDOWS)} 215s baz==10.11.13 ; {MARKER_PY_WINDOWS} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==7.8.9 ;...ion < "4.0"\n' == 'bar==7.8.9 ;...on == "2.7"\n' 215s E 215s E - bar==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==7.8.9 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==10.11.13 ; (python_version >= "3.6" or python_version == "2.7") and platform_system == "Windows" and python_version < "4.0" 215s E + baz==10.11.13 ; (python_version == "2.7" or python_version >= "3.6") and python_version < "4.0" and platform_system == "Windows"... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1289: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled[1.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi18') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.with_hashes(False) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:746: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled[2.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi19') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.with_hashes(False) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:746: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_without_dev_packages_by_default[1.1] __ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem0') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_without_dev_packages_by_default( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.2.3 ;...ha256:12345\n' == 'foo==1.2.3 ;...ha256:12345\n' 215s E 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:12345 215s 215s tests/test_exporter.py:795: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ____ test_exporter_can_export_requirements_txt_with_directory_packages[1.1] ____ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi11') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_directory_packages( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo @ {fixture_root_uri}/sample_project ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo @ file:/...ion < "4.0"\n' == 'foo @ file:/...on == "2.7"\n' 215s E 215s E Skipping 96 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1376: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_without_dev_packages_by_default[2.1] __ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem1') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_without_dev_packages_by_default( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.2.3 ;...ha256:12345\n' == 'foo==1.2.3 ;...ha256:12345\n' 215s E 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:12345 215s 215s tests/test_exporter.py:795: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ____ test_exporter_can_export_requirements_txt_with_directory_packages[2.1] ____ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi12') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_directory_packages( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo @ {fixture_root_uri}/sample_project ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo @ file:/...ion < "4.0"\n' == 'foo @ file:/...on == "2.7"\n' 215s E 215s E Skipping 96 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1376: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __ test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in[1.1] ___ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem2') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:12345\n' == 'bar==4.5.6 ;...ha256:12345\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:847: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_directory_packages_editable[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi13') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_directory_packages_editable( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "develop": True, 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s -e {fixture_root_uri}/sample_project ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert '-e file:///t...ion < "4.0"\n' == '-e file:///t...on == "2.7"\n' 215s E 215s E Skipping 93 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1419: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __ test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in[2.1] ___ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem3') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:12345\n' == 'bar==4.5.6 ;...ha256:12345\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:847: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_directory_packages_editable[2.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi14') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_directory_packages_editable( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "develop": True, 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s -e {fixture_root_uri}/sample_project ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert '-e file:///t...ion < "4.0"\n' == '-e file:///t...on == "2.7"\n' 215s E 215s E Skipping 93 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1419: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_directory_packages[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi15') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_directory_packages( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project/../project_with_nested_local/bar", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project/../project_with_nested_local/bar/..", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar @ {fixture_root_uri}/project_with_nested_local/bar ; {MARKER_PY} 215s baz @ {fixture_root_uri}/project_with_nested_local ; {MARKER_PY} 215s foo @ {fixture_root_uri}/sample_project ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar @ file:/...ion < "4.0"\n' == 'bar @ file:/...on == "2.7"\n' 215s E 215s E Skipping 111 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz @ file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures/project_with_nested_local ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"... 215s E 215s E ...Full output truncated (7 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1485: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ____ test_exporter_exports_requirements_txt_without_optional_packages[1.1] _____ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem6') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_without_optional_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": True, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s lock_data["package"][1]["markers"] = 'extra == "feature-bar"' 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.2.3 ;...ha256:12345\n' == 'foo==1.2.3 ;...ha256:12345\n' 215s E 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:12345 215s 215s tests/test_exporter.py:943: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_can_export_requirements_txt_with_nested_directory_packages[2.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi16') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_nested_directory_packages( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project/../project_with_nested_local/bar", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project/../project_with_nested_local/bar/..", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar @ {fixture_root_uri}/project_with_nested_local/bar ; {MARKER_PY} 215s baz @ {fixture_root_uri}/project_with_nested_local ; {MARKER_PY} 215s foo @ {fixture_root_uri}/sample_project ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'bar @ file:/...ion < "4.0"\n' == 'bar @ file:/...on == "2.7"\n' 215s E 215s E Skipping 111 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz @ file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures/project_with_nested_local ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"... 215s E 215s E ...Full output truncated (7 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1485: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ____ test_exporter_exports_requirements_txt_without_optional_packages[2.1] _____ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem7') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_without_optional_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": True, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s lock_data["package"][1]["markers"] = 'extra == "feature-bar"' 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'foo==1.2.3 ;...ha256:12345\n' == 'foo==1.2.3 ;...ha256:12345\n' 215s E 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + foo==1.2.3 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:12345 215s 215s tests/test_exporter.py:943: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_optional_packages[1.1-extras0-lines0] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem8') 215s poetry = 215s extras = ['feature-bar'] 215s lines = ['bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'foo==1.2.3 ; python_ve...ython_version == "2.7"', 'spam==0.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["extras", "lines"], 215s [ 215s ( 215s ["feature-bar"], 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s f"spam==0.1.0 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_optional_packages( 215s tmp_path: Path, 215s poetry: Poetry, 215s extras: Collection[NormalizedName], 215s lines: list[str], 215s lock_version: str, 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": True, 215s "python-versions": "*", 215s "dependencies": {"spam": ">=0.1"}, 215s }, 215s { 215s "name": "spam", 215s "version": "0.1.0", 215s "optional": True, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s "spam": [{"name": "spam.whl", "hash": "abcde"}], 215s }, 215s }, 215s "extras": {"feature_bar": ["bar"]}, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["markers"] = 'extra == "feature-bar"' 215s lock_data["package"][2]["markers"] = 'extra == "feature-bar"' 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_hashes(False) 215s exporter.with_extras(extras) 215s exporter.export( 215s "requirements.txt", 215s tmp_path, 215s "requirements.txt", 215s ) 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = "\n".join(lines) 215s 215s > assert content.strip() == expected 215s E assert 'bar==4.5.6 ;...rsion < "4.0"' == 'bar==4.5.6 ;...sion == "2.7"' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1023: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ______ test_exporter_can_export_requirements_txt_with_file_packages[1.1] _______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi19') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_file_packages( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "file", 215s "url": "distributions/demo-0.1.0.tar.gz", 215s "reference": "", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo @ {fixture_root_uri}/distributions/demo-0.1.0.tar.gz ;\ 215s {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo @ file:/...ion < "4.0"\n' == 'foo @ file:/...on == "2.7"\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1573: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_optional_packages[2.1-extras0-lines0] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem9') 215s poetry = 215s extras = ['feature-bar'] 215s lines = ['bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'foo==1.2.3 ; python_ve...ython_version == "2.7"', 'spam==0.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["extras", "lines"], 215s [ 215s ( 215s ["feature-bar"], 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s f"spam==0.1.0 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_optional_packages( 215s tmp_path: Path, 215s poetry: Poetry, 215s extras: Collection[NormalizedName], 215s lines: list[str], 215s lock_version: str, 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": True, 215s "python-versions": "*", 215s "dependencies": {"spam": ">=0.1"}, 215s }, 215s { 215s "name": "spam", 215s "version": "0.1.0", 215s "optional": True, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s "spam": [{"name": "spam.whl", "hash": "abcde"}], 215s }, 215s }, 215s "extras": {"feature_bar": ["bar"]}, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["markers"] = 'extra == "feature-bar"' 215s lock_data["package"][2]["markers"] = 'extra == "feature-bar"' 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_hashes(False) 215s exporter.with_extras(extras) 215s exporter.export( 215s "requirements.txt", 215s tmp_path, 215s "requirements.txt", 215s ) 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = "\n".join(lines) 215s 215s > assert content.strip() == expected 215s E assert 'bar==4.5.6 ;...rsion < "4.0"' == 'bar==4.5.6 ;...sion == "2.7"' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1023: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ______ test_exporter_can_export_requirements_txt_with_file_packages[2.1] _______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_can_export_requi20') 215s poetry = 215s fixture_root_uri = 'file:///tmp/autopkgtest.reEi4H/autopkgtest_tmp/build/tests/fixtures' 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_file_packages( 215s tmp_path: Path, poetry: Poetry, fixture_root_uri: str, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "file", 215s "url": "distributions/demo-0.1.0.tar.gz", 215s "reference": "", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo @ {fixture_root_uri}/distributions/demo-0.1.0.tar.gz ;\ 215s {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo @ file:/...ion < "4.0"\n' == 'foo @ file:/...on == "2.7"\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1573: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _______ test_exporter_can_export_requirements_txt_with_git_packages[1.1] _______ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_can_export_requi20') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_can_export_requirements_txt_with_git_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "git", 215s "url": "https://github.com/foo/foo.git", 215s "reference": "123456", 215s "resolved_reference": "abcdef", 215s }, 215s } 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s foo @ git+https://github.com/foo/foo.git@abcdef ; {MARKER_PY} 215s """ 215s 215s > assert content == expected 215s E assert 'foo @ git+ht...ion < "4.0"\n' == 'foo @ git+ht...on == "2.7"\n' 215s E 215s E Skipping 55 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:1066: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host[2.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem10') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "http://example.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "http://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --trusted-host example.com 215s --extra-index-url http://example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s """ 215s 215s > assert content == expected 215s E assert '--trusted-ho...ha256:67890\n' == '--trusted-ho...ha256:67890\n' 215s E 215s E Skipping 90 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s 215s tests/test_exporter.py:1803: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _______ test_exporter_exports_requirements_txt_with_legacy_packages[1.1] _______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem0') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "https://example.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --extra-index-url https://example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 64 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1683: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __ test_exporter_exports_requirements_txt_with_dev_extras[1.1-True-expected0] __ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem11') 215s poetry = , dev = True 215s expected = ['bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'baz==1.2.3 ; python_ve...python_version == "2.7"', 'foo==1.2.1 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "expected"], 215s [ 215s ( 215s True, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"baz==1.2.3 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s False, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_dev_extras( 215s tmp_path: Path, poetry: Poetry, dev: bool, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.1", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "1.2.2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==1.2.2 ;...ion < "4.0"\n' == 'bar==1.2.2 ;...on == "2.7"\n' 215s E 215s E - bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==1.2.2 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1880: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _______ test_exporter_exports_requirements_txt_with_legacy_packages[2.1] _______ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem1') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "https://example.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --extra-index-url https://example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 64 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1683: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_dev_extras[1.1-False-expected1] __ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem12') 215s poetry = , dev = False 215s expected = ['bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'foo==1.2.1 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "expected"], 215s [ 215s ( 215s True, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"baz==1.2.3 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s False, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_dev_extras( 215s tmp_path: Path, poetry: Poetry, dev: bool, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.1", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "1.2.2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==1.2.2 ;...ion < "4.0"\n' == 'bar==1.2.2 ;...on == "2.7"\n' 215s E 215s E - bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==1.2.2 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.1 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1880: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __________ test_exporter_exports_requirements_txt_with_url_false[1.1] __________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem2') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_url_false( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "https://example.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_urls(False) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:12345\n' == 'bar==4.5.6 ;...ha256:12345\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1747: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __ test_exporter_exports_requirements_txt_with_dev_extras[2.1-True-expected0] __ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem13') 215s poetry = , dev = True 215s expected = ['bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'baz==1.2.3 ; python_ve...python_version == "2.7"', 'foo==1.2.1 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "expected"], 215s [ 215s ( 215s True, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"baz==1.2.3 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s False, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_dev_extras( 215s tmp_path: Path, poetry: Poetry, dev: bool, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.1", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "1.2.2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==1.2.2 ;...ion < "4.0"\n' == 'bar==1.2.2 ;...on == "2.7"\n' 215s E 215s E - bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==1.2.2 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1880: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s __________ test_exporter_exports_requirements_txt_with_url_false[2.1] __________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem3') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_url_false( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "https://example.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_urls(False) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert 'bar==4.5.6 ;...ha256:12345\n' == 'bar==4.5.6 ;...ha256:12345\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \... 215s E 215s E ...Full output truncated (4 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1747: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_dev_extras[2.1-False-expected1] __ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem14') 215s poetry = , dev = False 215s expected = ['bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'foo==1.2.1 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["dev", "expected"], 215s [ 215s ( 215s True, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"baz==1.2.3 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s False, 215s [ 215s f"bar==1.2.2 ; {MARKER_PY}", 215s f"foo==1.2.1 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_dev_extras( 215s tmp_path: Path, poetry: Poetry, dev: bool, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.1", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "1.2.2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s if dev: 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==1.2.2 ;...ion < "4.0"\n' == 'bar==1.2.2 ;...on == "2.7"\n' 215s E 215s E - bar==1.2.2 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==1.2.2 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.1 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1880: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem4') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "http://example.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "http://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --trusted-host example.com 215s --extra-index-url http://example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s """ 215s 215s > assert content == expected 215s E assert '--trusted-ho...ha256:67890\n' == '--trusted-ho...ha256:67890\n' 215s E 215s E Skipping 90 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890 215s 215s tests/test_exporter.py:1803: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources[1.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem15') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-example", 215s "https://example.com/simple", 215s ) 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-foobaz", 215s "https://foobaz.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://foobaz.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s "baz": [{"name": "baz.whl", "hash": "24680"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar", "baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --extra-index-url https://example.com/simple 215s --extra-index-url https://foobaz.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s baz==7.8.9 ; {MARKER_PY} \\ 215s --hash=sha256:24680 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 108 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (10 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1972: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____ test_exporter_exports_requirements_txt_with_two_primary_sources[2.1] _____ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem5') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_two_primary_sources( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.remove_repository("PyPI") 215s poetry.config.merge( 215s { 215s "repositories": { 215s "custom-a": {"url": "https://a.example.com/simple"}, 215s "custom-b": {"url": "https://b.example.com/simple"}, 215s }, 215s "http-basic": { 215s "custom-a": {"username": "foo", "password": "bar"}, 215s "custom-b": {"username": "baz", "password": "qux"}, 215s }, 215s } 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-b", 215s "https://b.example.com/simple", 215s config=poetry.config, 215s ), 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-a", 215s "https://a.example.com/simple", 215s config=poetry.config, 215s ), 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s "baz": [{"name": "baz.whl", "hash": "24680"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar", "baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_credentials() 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --index-url https://baz:qux@b.example.com/simple 215s --extra-index-url https://foo:bar@a.example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s baz==7.8.9 ; {MARKER_PY} \\ 215s --hash=sha256:24680 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 123 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (10 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2080: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources[2.1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem16') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-example", 215s "https://example.com/simple", 215s ) 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-foobaz", 215s "https://foobaz.com/simple", 215s ) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://foobaz.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s "baz": [{"name": "baz.whl", "hash": "24680"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar", "baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --extra-index-url https://example.com/simple 215s --extra-index-url https://foobaz.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s baz==7.8.9 ; {MARKER_PY} \\ 215s --hash=sha256:24680 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 108 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (10 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:1972: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem6') 215s poetry = 215s config = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials( 215s tmp_path: Path, poetry: Poetry, config: Config, lock_version: str 215s ) -> None: 215s poetry.config.merge( 215s { 215s "repositories": {"custom": {"url": "https://example.com/simple"}}, 215s "http-basic": {"custom": {"username": "foo", "password": "bar"}}, 215s } 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository("custom", "https://example.com/simple", config=poetry.config) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_credentials() 215s exporter.export( 215s "requirements.txt", 215s tmp_path, 215s "requirements.txt", 215s ) 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --extra-index-url https://foo:bar@example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 72 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2153: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____ test_exporter_exports_requirements_txt_with_two_primary_sources[1.1] _____ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_requirem17') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_two_primary_sources( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.remove_repository("PyPI") 215s poetry.config.merge( 215s { 215s "repositories": { 215s "custom-a": {"url": "https://a.example.com/simple"}, 215s "custom-b": {"url": "https://b.example.com/simple"}, 215s }, 215s "http-basic": { 215s "custom-a": {"username": "foo", "password": "bar"}, 215s "custom-b": {"username": "baz", "password": "qux"}, 215s }, 215s } 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-b", 215s "https://b.example.com/simple", 215s config=poetry.config, 215s ), 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom-a", 215s "https://a.example.com/simple", 215s config=poetry.config, 215s ), 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s "baz": [{"name": "baz.whl", "hash": "24680"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s lock_data["package"][2]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar", "baz"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_credentials() 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --index-url https://baz:qux@b.example.com/simple 215s --extra-index-url https://foo:bar@a.example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s baz==7.8.9 ; {MARKER_PY} \\ 215s --hash=sha256:24680 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 123 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (10 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2080: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials[2.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem7') 215s poetry = 215s config = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials( 215s tmp_path: Path, poetry: Poetry, config: Config, lock_version: str 215s ) -> None: 215s poetry.config.merge( 215s { 215s "repositories": {"custom": {"url": "https://example.com/simple"}}, 215s "http-basic": {"custom": {"username": "foo", "password": "bar"}}, 215s } 215s ) 215s poetry.pool.add_repository( 215s LegacyRepository("custom", "https://example.com/simple", config=poetry.config) 215s ) 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][1]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.with_credentials() 215s exporter.export( 215s "requirements.txt", 215s tmp_path, 215s "requirements.txt", 215s ) 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --extra-index-url https://foo:bar@example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 72 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2153: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ________ test_exporter_exports_requirements_txt_to_standard_output[1.1] ________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem8') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_to_standard_output( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s io = BufferedIO() 215s exporter.export("requirements.txt", tmp_path, io) 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert io.fetch_output() == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2195: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s ________ test_exporter_exports_requirements_txt_to_standard_output[2.1] ________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_exports_requirem9') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_requirements_txt_to_standard_output( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s io = BufferedIO() 215s exporter.export("requirements.txt", tmp_path, io) 215s 215s expected = f"""\ 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s 215s > assert io.fetch_output() == expected 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (2 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2195: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_doesnt_confuse_repeated_packages[1.1] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_doesnt_confuse_r0') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_doesnt_confuse_repeated_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s # Testcase derived from . 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "celery", 215s "version": "5.1.2", 215s "optional": False, 215s "python-versions": "<3.7", 215s "dependencies": { 215s "click": ">=7.0,<8.0", 215s "click-didyoumean": ">=0.0.3", 215s "click-plugins": ">=1.1.1", 215s }, 215s }, 215s { 215s "name": "celery", 215s "version": "5.2.3", 215s "optional": False, 215s "python-versions": ">=3.7", 215s "dependencies": { 215s "click": ">=8.0.3,<9.0", 215s "click-didyoumean": ">=0.0.3", 215s "click-plugins": ">=1.1.1", 215s }, 215s }, 215s { 215s "name": "click", 215s "version": "7.1.2", 215s "optional": False, 215s "python-versions": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", 215s }, 215s { 215s "name": "click", 215s "version": "8.0.3", 215s "optional": False, 215s "python-versions": ">=3.6", 215s "dependencies": {}, 215s }, 215s { 215s "name": "click-didyoumean", 215s "version": "0.0.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"click": "*"}, 215s }, 215s { 215s "name": "click-didyoumean", 215s "version": "0.3.0", 215s "optional": False, 215s "python-versions": ">=3.6.2,<4.0.0", 215s "dependencies": {"click": ">=7"}, 215s }, 215s { 215s "name": "click-plugins", 215s "version": "1.1.1", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"click": ">=4.0"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "^3.6", 215s "content-hash": ( 215s "832b13a88e5020c27cbcd95faa577bf0dbf054a65c023b45dc9442b640d414e6" 215s ), 215s "files": { 215s "celery": [], 215s "click-didyoumean": [], 215s "click-plugins": [], 215s "click": [], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["markers"] = "python_version < '3.7'" 215s lock_data["package"][1]["markers"] = "python_version >= '3.7'" 215s lock_data["package"][2]["markers"] = "python_version < '3.7'" 215s lock_data["package"][3]["markers"] = "python_version >= '3.7'" 215s lock_data["package"][4]["markers"] = "python_full_version < '3.6.2'" 215s lock_data["package"][5]["markers"] = "python_full_version >= '3.6.2'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s root = poetry.package.with_dependency_groups([], only=True) 215s root.python_versions = "^3.6" 215s root.add_dependency( 215s Factory.create_dependency( 215s name="celery", constraint={"version": "5.1.2", "python": "<3.7"} 215s ) 215s ) 215s root.add_dependency( 215s Factory.create_dependency( 215s name="celery", constraint={"version": "5.2.3", "python": ">=3.7"} 215s ) 215s ) 215s poetry._package = root 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s io = BufferedIO() 215s exporter.export("requirements.txt", tmp_path, io) 215s 215s expected = f"""\ 215s celery==5.1.2 ; {MARKER_PY36_ONLY} 215s celery==5.2.3 ; {MARKER_PY37} 215s click-didyoumean==0.0.3 ; {MARKER_PY36_PY362} 215s click-didyoumean==0.3.0 ; {MARKER_PY362_PY40} 215s click-plugins==1.1.1 ; {MARKER_PY36} 215s click==7.1.2 ; {MARKER_PY36_ONLY} 215s click==8.0.3 ; {MARKER_PY37} 215s """ 215s 215s > assert io.fetch_output() == expected 215s E assert 'celery==5.1....ion < "4.0"\n' == 'celery==5.1....ion < "4.0"\n' 215s E 215s E Skipping 130 identical leading characters in diff, use -v to show 215s E Skipping 256 identical trailing characters in diff, use -v to show 215s E - ; python_version >= "3.6" and python_full_version < "3.6.2" 215s E + ; python_full_version < "3.6.2" and python_version == "3.6" 215s E click-d 215s 215s tests/test_exporter.py:2314: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_omits_and_includes_extras_for_txt_formats[1.1-constraints.txt-expected0] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_omits_and_includ0') 215s poetry = 215s fmt = 'constraints.txt' 215s expected = ['bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'baz==7.8.9 ; python_ve...python_version == "2.7"', 'foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["fmt", "expected"], 215s [ 215s ( 215s "constraints.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s "requirements.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"bar[baz]==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_omits_and_includes_extras_for_txt_formats( 215s tmp_path: Path, poetry: Poetry, fmt: str, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "bar": { 215s "extras": ["baz"], 215s "version": ">=0.1.0", 215s } 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export(fmt, tmp_path, "exported.txt") 215s 215s with (tmp_path / "exported.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # It does not matter whether packages are exported with extras or not 215s # because all dependencies are listed explicitly. 215s if lock_version == "2.1": 215s expected = [req for req in expected if not req.startswith("bar[baz]")] 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2703: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_prints_warning_for_constraints_txt_with_editable_packages[1.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_prints_warning_f0') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_prints_warning_for_constraints_txt_with_editable_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "git", 215s "url": "https://github.com/foo/foo.git", 215s "reference": "123456", 215s }, 215s "develop": True, 215s }, 215s { 215s "name": "bar", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "baz", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s "develop": True, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s io = BufferedIO() 215s exporter = Exporter(poetry, io) 215s exporter.export("constraints.txt", tmp_path, "constraints.txt") 215s 215s expected_error_out = ( 215s "Warning: foo is locked in develop (editable) mode, which is " 215s "incompatible with the constraints.txt format.\n" 215s "Warning: baz is locked in develop (editable) mode, which is " 215s "incompatible with the constraints.txt format.\n" 215s ) 215s 215s assert io.fetch_error() == expected_error_out 215s 215s with (tmp_path / "constraints.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content == f"bar==7.8.9 ; {MARKER_PY}\n" 215s E assert 'bar==7.8.9 ;...ion < "4.0"\n' == 'bar==7.8.9 ;...on == "2.7"\n' 215s E 215s E - bar==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==7.8.9 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:2770: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_omits_and_includes_extras_for_txt_formats[1.1-requirements.txt-expected1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_omits_and_includ1') 215s poetry = 215s fmt = 'requirements.txt' 215s expected = ['bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'bar[baz]==4.5.6 ; pyth...python_version == "2.7"', 'foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ["fmt", "expected"], 215s [ 215s ( 215s "constraints.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s "requirements.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"bar[baz]==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_omits_and_includes_extras_for_txt_formats( 215s tmp_path: Path, poetry: Poetry, fmt: str, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "bar": { 215s "extras": ["baz"], 215s "version": ">=0.1.0", 215s } 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export(fmt, tmp_path, "exported.txt") 215s 215s with (tmp_path / "exported.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # It does not matter whether packages are exported with extras or not 215s # because all dependencies are listed explicitly. 215s if lock_version == "2.1": 215s expected = [req for req in expected if not req.startswith("bar[baz]")] 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - bar[baz]==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (10 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2703: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_prints_warning_for_constraints_txt_with_editable_packages[2.1] _ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_prints_warning_f1') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_prints_warning_for_constraints_txt_with_editable_packages( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "git", 215s "url": "https://github.com/foo/foo.git", 215s "reference": "123456", 215s }, 215s "develop": True, 215s }, 215s { 215s "name": "bar", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "baz", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "directory", 215s "url": "sample_project", 215s "reference": "", 215s }, 215s "develop": True, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s io = BufferedIO() 215s exporter = Exporter(poetry, io) 215s exporter.export("constraints.txt", tmp_path, "constraints.txt") 215s 215s expected_error_out = ( 215s "Warning: foo is locked in develop (editable) mode, which is " 215s "incompatible with the constraints.txt format.\n" 215s "Warning: baz is locked in develop (editable) mode, which is " 215s "incompatible with the constraints.txt format.\n" 215s ) 215s 215s assert io.fetch_error() == expected_error_out 215s 215s with (tmp_path / "constraints.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s > assert content == f"bar==7.8.9 ; {MARKER_PY}\n" 215s E assert 'bar==7.8.9 ;...ion < "4.0"\n' == 'bar==7.8.9 ;...on == "2.7"\n' 215s E 215s E - bar==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==7.8.9 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s 215s tests/test_exporter.py:2770: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_omits_and_includes_extras_for_txt_formats[2.1-constraints.txt-expected0] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_omits_and_includ2') 215s poetry = 215s fmt = 'constraints.txt' 215s expected = ['bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'baz==7.8.9 ; python_ve...python_version == "2.7"', 'foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["fmt", "expected"], 215s [ 215s ( 215s "constraints.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s "requirements.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"bar[baz]==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_omits_and_includes_extras_for_txt_formats( 215s tmp_path: Path, poetry: Poetry, fmt: str, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "bar": { 215s "extras": ["baz"], 215s "version": ">=0.1.0", 215s } 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export(fmt, tmp_path, "exported.txt") 215s 215s with (tmp_path / "exported.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # It does not matter whether packages are exported with extras or not 215s # because all dependencies are listed explicitly. 215s if lock_version == "2.1": 215s expected = [req for req in expected if not req.startswith("bar[baz]")] 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2703: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _ test_exporter_omits_and_includes_extras_for_txt_formats[2.1-requirements.txt-expected1] _ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_omits_and_includ3') 215s poetry = 215s fmt = 'requirements.txt' 215s expected = ['bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"', 'baz==7.8.9 ; python_ve...python_version == "2.7"', 'foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"'] 215s lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ["fmt", "expected"], 215s [ 215s ( 215s "constraints.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ( 215s "requirements.txt", 215s [ 215s f"bar==4.5.6 ; {MARKER_PY}", 215s f"bar[baz]==4.5.6 ; {MARKER_PY}", 215s f"baz==7.8.9 ; {MARKER_PY}", 215s f"foo==1.2.3 ; {MARKER_PY}", 215s ], 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_omits_and_includes_extras_for_txt_formats( 215s tmp_path: Path, poetry: Poetry, fmt: str, expected: list[str], lock_version: str 215s ) -> None: 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "bar": { 215s "extras": ["baz"], 215s "version": ">=0.1.0", 215s } 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": { 215s "baz": { 215s "version": ">=0.1.0", 215s "optional": True, 215s "markers": "extra == 'baz'", 215s } 215s }, 215s "extras": {"baz": ["baz (>=0.1.0)"]}, 215s }, 215s { 215s "name": "baz", 215s "version": "7.8.9", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": [], "baz": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export(fmt, tmp_path, "exported.txt") 215s 215s with (tmp_path / "exported.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s # It does not matter whether packages are exported with extras or not 215s # because all dependencies are listed explicitly. 215s if lock_version == "2.1": 215s expected = [req for req in expected if not req.startswith("bar[baz]")] 215s > assert content == "\n".join(expected) + "\n" 215s E assert 'bar==4.5.6 ;...ion < "4.0"\n' == 'bar==4.5.6 ;...on == "2.7"\n' 215s E 215s E - bar==4.5.6 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + bar==4.5.6 ; python_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - baz==7.8.9 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^... 215s E 215s E ...Full output truncated (6 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2703: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _________ test_exporter_exports_extra_index_url_and_trusted_host[1.1] __________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_extra_in0') 215s poetry = , lock_version = '1.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_extra_index_url_and_trusted_host( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "http://example.com/simple", 215s ), 215s priority=Priority.EXPLICIT, 215s ) 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"bar": "*"}, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "http://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --trusted-host example.com 215s --extra-index-url http://example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s > assert content == expected 215s E assert '--trusted-ho...ion < "4.0"\n' == '--trusted-ho...on == "2.7"\n' 215s E 215s E Skipping 90 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"... 215s E 215s E ...Full output truncated (3 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2965: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities0-expected0] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_1_1_p0') 215s poetry = 215s priorities = [('custom-a', ), ('custom-b', )] 215s expected = ('a', 'b'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _________ test_exporter_exports_extra_index_url_and_trusted_host[2.1] __________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_exports_extra_in1') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_exports_extra_index_url_and_trusted_host( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s poetry.pool.add_repository( 215s LegacyRepository( 215s "custom", 215s "http://example.com/simple", 215s ), 215s priority=Priority.EXPLICIT, 215s ) 215s lock_data = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"bar": "*"}, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "http://example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = f"""\ 215s --trusted-host example.com 215s --extra-index-url http://example.com/simple 215s 215s bar==4.5.6 ; {MARKER_PY} 215s foo==1.2.3 ; {MARKER_PY} 215s """ 215s > assert content == expected 215s E assert '--trusted-ho...ion < "4.0"\n' == '--trusted-ho...on == "2.7"\n' 215s E 215s E Skipping 90 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E - foo==1.2.3 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"... 215s E 215s E ...Full output truncated (3 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:2965: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities1-expected1] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_1_1_p1') 215s poetry = 215s priorities = [('custom-b', ), ('custom-a', )] 215s expected = ('b', 'a'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities4-expected4] ______________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_index_urls_1_1_p0') 215s poetry = 215s priorities = [('PyPI', ), ('custom-a', ), ('custom-b', )] 215s expected = ('', 'a', 'b'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities2-expected2] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_1_1_p2') 215s poetry = 215s priorities = [('custom-b', ), ('custom-a', )] 215s expected = ('a', 'b'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities5-expected5] ______________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_index_urls_1_1_p1') 215s poetry = 215s priorities = [('PyPI', ), ('custom-a', ), ('custom-b', )] 215s expected = ('', 'a', 'b'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities3-expected3] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_1_1_p3') 215s poetry = 215s priorities = [('custom-b', ), ('custom-a', )] 215s expected = ('a', 'b'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[1.1-priorities6-expected6] ______________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_index_urls_1_1_p2') 215s poetry = 215s priorities = [('custom-a', ), ('custom-b', ), ('PyPI', )] 215s expected = ('', 'a', 'b'), lock_version = '1.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities0-expected0] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_2_1_p0') 215s poetry = 215s priorities = [('custom-a', ), ('custom-b', )] 215s expected = ('a', 'b'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities1-expected1] ______________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_index_urls_2_1_p0') 215s poetry = 215s priorities = [('custom-b', ), ('custom-a', )] 215s expected = ('b', 'a'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities2-expected2] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_2_1_p1') 215s poetry = 215s priorities = [('custom-b', ), ('custom-a', )] 215s expected = ('a', 'b'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities3-expected3] ______________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_index_urls_2_1_p1') 215s poetry = 215s priorities = [('custom-b', ), ('custom-a', )] 215s expected = ('a', 'b'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--index-url ...ha256:12345\n' == '--index-url ...ha256:12345\n' 215s E 215s E Skipping 107 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities4-expected4] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_2_1_p2') 215s poetry = 215s priorities = [('PyPI', ), ('custom-a', ), ('custom-b', )] 215s expected = ('', 'a', 'b'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities5-expected5] ______________ 215s [gw1] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw1/test_exporter_index_urls_2_1_p2') 215s poetry = 215s priorities = [('PyPI', ), ('custom-a', ), ('custom-b', )] 215s expected = ('', 'a', 'b'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _____________ test_exporter_index_urls[2.1-priorities6-expected6] ______________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_exporter_index_urls_2_1_p3') 215s poetry = 215s priorities = [('custom-a', ), ('custom-b', ), ('PyPI', )] 215s expected = ('', 'a', 'b'), lock_version = '2.1' 215s 215s @pytest.mark.parametrize( 215s ("priorities", "expected"), 215s [ 215s ([("custom-a", Priority.PRIMARY), ("custom-b", Priority.PRIMARY)], ("a", "b")), 215s ([("custom-b", Priority.PRIMARY), ("custom-a", Priority.PRIMARY)], ("b", "a")), 215s ( 215s [("custom-b", Priority.SUPPLEMENTAL), ("custom-a", Priority.PRIMARY)], 215s ("a", "b"), 215s ), 215s ([("custom-b", Priority.EXPLICIT), ("custom-a", Priority.PRIMARY)], ("a", "b")), 215s ( 215s [ 215s ("PyPI", Priority.PRIMARY), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("PyPI", Priority.EXPLICIT), 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ], 215s ("", "a", "b"), 215s ), 215s ( 215s [ 215s ("custom-a", Priority.PRIMARY), 215s ("custom-b", Priority.PRIMARY), 215s ("PyPI", Priority.SUPPLEMENTAL), 215s ], 215s ("", "a", "b"), 215s ), 215s ], 215s ) 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_exporter_index_urls( 215s tmp_path: Path, 215s poetry: Poetry, 215s priorities: list[tuple[str, Priority]], 215s expected: tuple[str, ...], 215s lock_version: str, 215s ) -> None: 215s pypi = poetry.pool.repository("PyPI") 215s poetry.pool.remove_repository("PyPI") 215s for name, prio in priorities: 215s if name.lower() == "pypi": 215s repo = pypi 215s else: 215s repo = LegacyRepository(name, f"https://{name[-1]}.example.com/simple") 215s poetry.pool.add_repository(repo, priority=prio) 215s 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1.2.3", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://a.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s { 215s "name": "bar", 215s "version": "4.5.6", 215s "optional": False, 215s "python-versions": "*", 215s "source": { 215s "type": "legacy", 215s "url": "https://b.example.com/simple", 215s "reference": "", 215s }, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": { 215s "foo": [{"name": "foo.whl", "hash": "12345"}], 215s "bar": [{"name": "bar.whl", "hash": "67890"}], 215s }, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["groups"] = ["dev"] 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s set_package_requires(poetry, dev={"bar"}) 215s 215s exporter = Exporter(poetry, NullIO()) 215s exporter.only_groups([MAIN_GROUP, "dev"]) 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected_urls = [ 215s f"--extra-index-url https://{name[-1]}.example.com/simple" 215s for name in expected[1:] 215s ] 215s if expected[0]: 215s expected_urls = [ 215s f"--index-url https://{expected[0]}.example.com/simple", 215s *expected_urls, 215s ] 215s url_string = "\n".join(expected_urls) 215s 215s expected_content = f"""\ 215s {url_string} 215s 215s bar==4.5.6 ; {MARKER_PY} \\ 215s --hash=sha256:67890 215s foo==1.2.3 ; {MARKER_PY} \\ 215s --hash=sha256:12345 215s """ 215s 215s > assert content == expected_content 215s E assert '--extra-inde...ha256:12345\n' == '--extra-inde...ha256:12345\n' 215s E 215s E Skipping 113 identical leading characters in diff, use -v to show 215s E - n_version >= "3.6" and python_version < "4.0" or python_version == "2.7" \ 215s E ? - ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^ ^ 215s E + n_version == "2.7" or python_version >= "3.6" and python_version < "4.0" \ 215s E ? + ^ ^ ^^ ^^ ^ ^ ^^^ ^ ^ ^ 215s E --hash=sha256:67890... 215s E 215s E ...Full output truncated (5 lines hidden), use '-vv' to show 215s 215s tests/test_exporter.py:3175: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s _______________________ test_dependency_walk_error[2.1] ________________________ 215s [gw0] linux -- Python 3.13.2 /usr/bin/python3.13 215s 215s tmp_path = PosixPath('/tmp/pytest-of-ubuntu/pytest-0/popen-gw0/test_dependency_walk_error_2_10') 215s poetry = , lock_version = '2.1' 215s 215s @pytest.mark.parametrize("lock_version", ("1.1", "2.1")) 215s def test_dependency_walk_error( 215s tmp_path: Path, poetry: Poetry, lock_version: str 215s ) -> None: 215s """ 215s With lock file version 2.1 we can export lock files 215s that resulted in a DependencyWalkerError with lower lock file versions. 215s 215s root 215s ├── foo >=0 ; python_version < "3.9" 215s ├── foo >=1 ; python_version >= "3.9" 215s ├── bar ==1 ; python_version < "3.9" 215s │ └── foo ==1 ; python_version < "3.9" 215s └── bar ==2 ; python_version >= "3.9" 215s └── foo ==2 ; python_version >= "3.9" 215s 215s Only considering the root dependency, foo 2 is a valid solution 215s for all environments. However, due to bar depending on foo, 215s foo 1 must be chosen for Python 3.8 and lower. 215s """ 215s lock_data: dict[str, Any] = { 215s "package": [ 215s { 215s "name": "foo", 215s "version": "1", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "foo", 215s "version": "2", 215s "optional": False, 215s "python-versions": "*", 215s }, 215s { 215s "name": "bar", 215s "version": "1", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"foo": "1"}, 215s }, 215s { 215s "name": "bar", 215s "version": "2", 215s "optional": False, 215s "python-versions": "*", 215s "dependencies": {"foo": "2"}, 215s }, 215s ], 215s "metadata": { 215s "lock-version": lock_version, 215s "python-versions": "*", 215s "content-hash": "123456789", 215s "files": {"foo": [], "bar": []}, 215s }, 215s } 215s fix_lock_data(lock_data) 215s if lock_version == "2.1": 215s lock_data["package"][0]["markers"] = "python_version < '3.9'" 215s lock_data["package"][1]["markers"] = "python_version >= '3.9'" 215s lock_data["package"][2]["markers"] = "python_version < '3.9'" 215s lock_data["package"][3]["markers"] = "python_version >= '3.9'" 215s poetry.locker.mock_lock_data(lock_data) # type: ignore[attr-defined] 215s poetry.package.python_versions = "^3.8" 215s poetry.package.add_dependency( 215s Factory.create_dependency( 215s name="foo", constraint={"version": ">=0", "python": "<3.9"} 215s ) 215s ) 215s poetry.package.add_dependency( 215s Factory.create_dependency( 215s name="foo", constraint={"version": ">=1", "python": ">=3.9"} 215s ) 215s ) 215s poetry.package.add_dependency( 215s Factory.create_dependency( 215s name="bar", constraint={"version": "1", "python": "<3.9"} 215s ) 215s ) 215s poetry.package.add_dependency( 215s Factory.create_dependency( 215s name="bar", constraint={"version": "2", "python": ">=3.9"} 215s ) 215s ) 215s 215s exporter = Exporter(poetry, NullIO()) 215s if lock_version == "1.1": 215s with pytest.raises(DependencyWalkerError): 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s return 215s 215s exporter.export("requirements.txt", tmp_path, "requirements.txt") 215s 215s with (tmp_path / "requirements.txt").open(encoding="utf-8") as f: 215s content = f.read() 215s 215s expected = """\ 215s bar==1 ; python_version >= "3.8" and python_version < "3.9" 215s bar==2 ; python_version >= "3.9" and python_version < "4.0" 215s foo==1 ; python_version >= "3.8" and python_version < "3.9" 215s foo==2 ; python_version >= "3.9" and python_version < "4.0" 215s """ 215s 215s > assert content == expected 215s E assert 'bar==1 ; pyt...ion < "4.0"\n' == 'bar==1 ; pyt...ion < "4.0"\n' 215s E 215s E - bar==1 ; python_version >= "3.8" and python_version < "3.9" 215s E + bar==1 ; python_version == "3.8" 215s E bar==2 ; python_version >= "3.9" and python_version < "4.0" 215s E - foo==1 ; python_version >= "3.8" and python_version < "3.9" 215s E + foo==1 ; python_version == "3.8" 215s E foo==2 ; python_version >= "3.9" and python_version < "4.0" 215s 215s tests/test_exporter.py:3281: AssertionError 215s ------------------------------ Captured log setup ------------------------------ 215s WARNING poetry.core.factory:factory.py:63 The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. 215s =========================== short test summary info ============================ 215s FAILED tests/command/test_command_export.py::test_export_includes_extras_by_flag[feature_bar-bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_includes_extras_by_flag[feature_bar feature_qux-bar==1.1.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nqux==1.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_exports_requirements_txt_file_locks_if_no_lock_file 215s FAILED tests/command/test_command_export.py::test_export_exports_requirements_txt_uses_lock_file 215s FAILED tests/command/test_command_export.py::test_export_with_all_extras - as... 215s FAILED tests/command/test_command_export.py::test_export_with_all_groups - as... 215s FAILED tests/command/test_command_export.py::test_export_prints_to_stdout_by_default 215s FAILED tests/command/test_command_export.py::test_export_uses_requirements_txt_format_by_default 215s FAILED tests/command/test_command_export.py::test_export_groups[-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_groups[--with dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_groups[--with opt-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_groups[--with dev,opt-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nopt==2.2.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_groups[--without dev-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/command/test_command_export.py::test_export_groups[--without opt-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_markers[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_markers[2.1] 215s FAILED tests/command/test_command_export.py::test_export_groups[--only main-foo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_poetry[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_poetry[2.1] 215s FAILED tests/command/test_command_export.py::test_export_groups[--only dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_pyinstaller[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_pyinstaller[2.1] 215s FAILED tests/command/test_command_export.py::test_export_groups[--only main,dev-baz==2.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\nfoo==1.0.0 ; python_version >= "3.6" and python_version < "4.0" or python_version == "2.7"\n] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_git_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[1.1-False-lines0] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[1.1-True-lines1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[2.1-False-lines0] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_cyclic[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_markers_any[2.1-True-lines1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_cyclic[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_circular_root_dependency[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_circular_root_dependency[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_sorted_hashes[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_packages_and_multiple_markers[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_standard_packages_and_hashes_disabled[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_dev_packages_by_default[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_dev_packages_by_default[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages_editable[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_packages_if_opted_in[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_directory_packages_editable[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_directory_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_optional_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_nested_directory_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_without_optional_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_optional_packages[1.1-extras0-lines0] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_file_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_optional_packages[2.1-extras0-lines0] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_file_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_can_export_requirements_txt_with_git_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[1.1-True-expected0] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[1.1-False-expected1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_url_false[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[2.1-True-expected0] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_url_false[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_dev_extras[2.1-False-expected1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_trusted_host[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_two_primary_sources[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_duplicate_sources[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_two_primary_sources[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_with_legacy_packages_and_credentials[2.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_to_standard_output[1.1] 215s FAILED tests/test_exporter.py::test_exporter_exports_requirements_txt_to_standard_output[2.1] 215s FAILED tests/test_exporter.py::test_exporter_doesnt_confuse_repeated_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[1.1-constraints.txt-expected0] 215s FAILED tests/test_exporter.py::test_exporter_prints_warning_for_constraints_txt_with_editable_packages[1.1] 215s FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[1.1-requirements.txt-expected1] 215s FAILED tests/test_exporter.py::test_exporter_prints_warning_for_constraints_txt_with_editable_packages[2.1] 215s FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[2.1-constraints.txt-expected0] 215s FAILED tests/test_exporter.py::test_exporter_omits_and_includes_extras_for_txt_formats[2.1-requirements.txt-expected1] 215s FAILED tests/test_exporter.py::test_exporter_exports_extra_index_url_and_trusted_host[1.1] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities0-expected0] 215s FAILED tests/test_exporter.py::test_exporter_exports_extra_index_url_and_trusted_host[2.1] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities1-expected1] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities4-expected4] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities2-expected2] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities5-expected5] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities3-expected3] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[1.1-priorities6-expected6] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities0-expected0] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities1-expected1] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities2-expected2] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities3-expected3] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities4-expected4] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities5-expected5] 215s FAILED tests/test_exporter.py::test_exporter_index_urls[2.1-priorities6-expected6] 215s FAILED tests/test_exporter.py::test_dependency_walk_error[2.1] - assert 'bar=... 215s ======================= 103 failed, 38 passed in 10.02s ======================== 215s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.reEi4H/autopkgtest_tmp/build; python3.13 -m pytest tests 215s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p 3.13 returned exit code 13 215s make: *** [/tmp/ZIeN3Zxhy2/run:4: pybuild-autopkgtest] Error 25 215s pybuild-autopkgtest: error: /tmp/ZIeN3Zxhy2/run pybuild-autopkgtest returned exit code 2 216s autopkgtest [09:22:04]: test pybuild-autopkgtest: -----------------------] 217s pybuild-autopkgtest FAIL non-zero exit status 25 217s autopkgtest [09:22:05]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 217s autopkgtest [09:22:05]: @@@@@@@@@@@@@@@@@@@@ summary 217s pybuild-autopkgtest FAIL non-zero exit status 25 222s nova [W] Skipping flock for amd64 222s Creating nova instance adt-plucky-amd64-poetry-plugin-export-20250313-091828-juju-7f2275-prod-proposed-migration-environment-15-015db105-802b-4571-a7be-9db6b87b3b38 from image adt/ubuntu-plucky-amd64-server-20250304.img (UUID 9c7d4da5-d95f-4c85-ac1f-51eb37e75c4c)... 222s nova [W] Timed out waiting for 7f69b350-52d3-423a-8974-1ba850f01077 to get deleted.