Running as unit: rb-build-amd64_22-58968.service ==================================================================================== Thu Sep 18 06:57:06 UTC 2025 - running /srv/jenkins/bin/reproducible_build.sh (for job reproducible_builder_amd64_22) on jenkins, called using "ionos5-amd64 ionos11-amd64" as arguments. Thu Sep 18 06:57:06 UTC 2025 - actually running "reproducible_build.sh" (md5sum cc591790ab2c8e13f5e554202b95c89c) as "/tmp/jenkins-script-XLp0Ie7H" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Thu Sep 18 06:57:06 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos5-amd64.debian.net is marked as down. Thu Sep 18 06:57:06 UTC 2025 - checking via ssh if ionos5-amd64.debian.net is up. removed '/tmp/read-only-fs-test-BTjAPC' Thu Sep 18 06:57:06 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos11-amd64.debian.net is marked as down. Thu Sep 18 06:57:06 UTC 2025 - checking via ssh if ionos11-amd64.debian.net is up. removed '/tmp/read-only-fs-test-XbIHXy' ok, let's check if pytest-bdd is building anywhere yet… ok, pytest-bdd is not building anywhere… UPDATE 1 ============================================================================= Initialising reproducibly build of pytest-bdd in unstable on amd64 on jenkins now. 1st build will be done on ionos5-amd64.debian.net. 2nd build will be done on ionos11-amd64.debian.net. ============================================================================= Thu Sep 18 06:57:29 UTC 2025 I: starting to build pytest-bdd/unstable/amd64 on jenkins on '2025-09-18 06:57' Thu Sep 18 06:57:29 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_22/58968/console.log 1758178649 amd64 unstable pytest-bdd Thu Sep 18 06:57:29 UTC 2025 I: Downloading source for unstable/pytest-bdd=7.1.2-2 --2025-09-18 06:57:29-- http://deb.debian.org/debian/pool/main/p/pytest-bdd/pytest-bdd_7.1.2-2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2213 (2.2K) [text/prs.lines.tag] Saving to: ‘pytest-bdd_7.1.2-2.dsc’ 0K .. 100% 248M=0s 2025-09-18 06:57:29 (248 MB/s) - ‘pytest-bdd_7.1.2-2.dsc’ saved [2213/2213] --2025-09-18 06:57:29-- http://deb.debian.org/debian/pool/main/p/pytest-bdd/pytest-bdd_7.1.2-2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2213 (2.2K) [text/prs.lines.tag] Saving to: ‘pytest-bdd_7.1.2-2.dsc’ 0K .. 100% 248M=0s 2025-09-18 06:57:29 (248 MB/s) - ‘pytest-bdd_7.1.2-2.dsc’ saved [2213/2213] Thu Sep 18 06:57:29 UTC 2025 I: pytest-bdd_7.1.2-2.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: pytest-bdd Binary: python3-pytest-bdd Architecture: all Version: 7.1.2-2 Maintainer: Debian Python Team Uploaders: Brian May Homepage: https://github.com/pytest-dev/pytest-bdd/ Standards-Version: 4.5.0 Vcs-Browser: https://salsa.debian.org/python-team/packages/pytest-bdd Vcs-Git: https://salsa.debian.org/python-team/packages/pytest-bdd.git Testsuite: autopkgtest-pkg-python Build-Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3-all, python3-execnet, python3-mako, python3-parse, python3-parse-type, python3-poetry, python3-pytest, python3-typing-extensions, python3-setuptools Package-List: python3-pytest-bdd deb python optional arch=all Checksums-Sha1: 5811f7cfe2041b73dcbf4297024ff36439225f27 81260 pytest-bdd_7.1.2.orig.tar.gz 78b6b7e9a1758887c6fda4855f9417a586c1451b 3056 pytest-bdd_7.1.2-2.debian.tar.xz Checksums-Sha256: 5e4f09f5cf8f0afa49606eb6eb604e8639a9df0575bca1d3435f558393a52a42 81260 pytest-bdd_7.1.2.orig.tar.gz 89f67efafd1fd51e770febcfd85de6e3f509b6db86c3fe77ed47cc7307a2ff6b 3056 pytest-bdd_7.1.2-2.debian.tar.xz Files: a7f46a1b34d5e1e40068c788490af4b6 81260 pytest-bdd_7.1.2.orig.tar.gz d91953f166b15505ff44f7c44392b3f7 3056 pytest-bdd_7.1.2-2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQJFBAEBCgAvFiEEj23hBDd/OxHnQXSHMfMURUShdBoFAmfpPjYRHHRjaGV0QGRl Ymlhbi5vcmcACgkQMfMURUShdBpwpg//cGs6vPr3d9ojVOebQ50ulBMWA+lHbuRv W6Qmm0Bh7z3rwBCD+RfNQVbKudxTe4nU2IPWok3DgCD4HIuEagPxmLB2uoVL76of KIVx0J1F6TuqMT2XLjoZIxnwXWFE7/snMuNLT9byH4cjZbVMm2qfWpaxQKn5AYXe SYg1t+wNhVOoWeeHX4FeymAM1DnboWRKnd+SyxPr4yGU71++xKbBa19v4PdBYrAO Tori48ZOgn0c6ciHjHdVQXnUBYkUWDGX8Y8xGczSyCxXOsfwBD/f0QdSiFUcI7E/ KA77by7Zw4ICsgDGwd8slUhqwKoxIKG9fQcxqpQDaB9IVwipIbNjd+ApX32g8G8i kOZNPBjpPINYc1LH2kEg0pJJn7nBRHNIY6KDxaOtS+4gXjz9UfGZ4/MvJ/Uc/PkE MkdanYPfx76ziqzirleue8A5irJdV0bnFfj97J9BGMXhHGC82gJ27Z/9rrT2XpIa GxGuQlQOPF2pPxC6SfGPOn2gcynE/6O5hxMsO4LMCJNu5fUGvBQ5Ku3vTs/s2+qz 8B4TT1wOdLr8xYgo8Z+uL5qfcZzL+auIt6N9TI+1Qxjy99XApyrjaX+Y4f+i/EYs FZ0na2bnm8dtUkNfijZ4Bz+Au/cBsLnSzCAekKDydbA125EG2mUgcJKuqGE68h1x crqzkdHVUq0= =iKLd -----END PGP SIGNATURE----- Thu Sep 18 06:57:29 UTC 2025 I: Checking whether the package is not for us Thu Sep 18 06:57:29 UTC 2025 I: Starting 1st build on remote node ionos5-amd64.debian.net. Thu Sep 18 06:57:29 UTC 2025 I: Preparing to do remote build '1' on ionos5-amd64.debian.net. Thu Sep 18 06:57:29 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos5-amd64.debian.net is marked as down. Thu Sep 18 06:57:29 UTC 2025 - checking via ssh if ionos5-amd64.debian.net is up. removed '/tmp/read-only-fs-test-KjBFFq' ==================================================================================== Wed Oct 21 13:20:30 UTC 2026 - running /srv/jenkins/bin/reproducible_build.sh (for job /srv/jenkins/bin/reproducible_build.sh) on ionos5-amd64, called using "1 pytest-bdd unstable /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z 7.1.2-2" as arguments. Wed Oct 21 13:20:30 UTC 2026 - actually running "reproducible_build.sh" (md5sum cc591790ab2c8e13f5e554202b95c89c) as "/tmp/jenkins-script-JOGhNQic" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Wed Oct 21 13:20:30 UTC 2026 I: Downloading source for unstable/pytest-bdd=7.1.2-2 Reading package lists... NOTICE: 'pytest-bdd' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/pytest-bdd.git Please use: git clone https://salsa.debian.org/python-team/packages/pytest-bdd.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 86.5 kB of source archives. Get:1 http://deb.debian.org/debian unstable/main pytest-bdd 7.1.2-2 (dsc) [2213 B] Get:2 http://deb.debian.org/debian unstable/main pytest-bdd 7.1.2-2 (tar) [81.3 kB] Get:3 http://deb.debian.org/debian unstable/main pytest-bdd 7.1.2-2 (diff) [3056 B] Fetched 86.5 kB in 0s (1155 kB/s) Download complete and in download only mode Reading package lists... NOTICE: 'pytest-bdd' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/pytest-bdd.git Please use: git clone https://salsa.debian.org/python-team/packages/pytest-bdd.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 86.5 kB of source archives. Get:1 http://deb.debian.org/debian unstable/main pytest-bdd 7.1.2-2 (dsc) [2213 B] Get:2 http://deb.debian.org/debian unstable/main pytest-bdd 7.1.2-2 (tar) [81.3 kB] Get:3 http://deb.debian.org/debian unstable/main pytest-bdd 7.1.2-2 (diff) [3056 B] Fetched 86.5 kB in 0s (1155 kB/s) Download complete and in download only mode ============================================================================= Building pytest-bdd in unstable on amd64 on ionos5-amd64 now. Date: Wed Oct 21 13:20:30 UTC 2026 Date UTC: Wed Oct 21 13:20:30 UTC 2026 ============================================================================= W: /root/.pbuilderrc does not exist I: Logging to b1/build.log I: pbuilder: network access will be disabled during build I: Current time: Wed Oct 21 01:20:30 -12 2026 I: pbuilder-time-stamp: 1792588830 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [pytest-bdd_7.1.2-2.dsc] I: copying [./pytest-bdd_7.1.2.orig.tar.gz] I: copying [./pytest-bdd_7.1.2-2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./pytest-bdd_7.1.2-2.dsc: no acceptable signature found dpkg-source: info: extracting pytest-bdd in pytest-bdd-7.1.2 dpkg-source: info: unpacking pytest-bdd_7.1.2.orig.tar.gz dpkg-source: info: unpacking pytest-bdd_7.1.2-2.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/1263792/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='f6cd56fbd9014f1daa96c72679f0d661' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='1263792' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z/pbuilderrc_7wVZ --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z/b1 --logfile b1/build.log pytest-bdd_7.1.2-2.dsc' SUDO_GID='110' SUDO_HOME='/var/lib/jenkins' SUDO_UID='105' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://213.165.73.152:3128' I: uname -a Linux ionos5-amd64 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/1263792/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3-all, python3-execnet, python3-mako, python3-parse, python3-parse-type, python3-poetry, python3-pytest, python3-typing-extensions, python3-setuptools dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19917 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-sequence-python3; however: Package dh-sequence-python3 is not installed. pbuilder-satisfydepends-dummy depends on pybuild-plugin-pyproject; however: Package pybuild-plugin-pyproject is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-execnet; however: Package python3-execnet is not installed. pbuilder-satisfydepends-dummy depends on python3-mako; however: Package python3-mako is not installed. pbuilder-satisfydepends-dummy depends on python3-parse; however: Package python3-parse is not installed. pbuilder-satisfydepends-dummy depends on python3-parse-type; however: Package python3-parse-type is not installed. pbuilder-satisfydepends-dummy depends on python3-poetry; however: Package python3-poetry is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-typing-extensions; however: Package python3-typing-extensions is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libffi8{a} libfile-stripnondeterminism-perl{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2-16{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-all{a} python3-autocommand{a} python3-bcrypt{a} python3-build{a} python3-cachecontrol{a} python3-certifi{a} python3-cffi-backend{a} python3-chardet{a} python3-charset-normalizer{a} python3-cleo{a} python3-cryptography{a} python3-distlib{a} python3-dulwich{a} python3-execnet{a} python3-fastjsonschema{a} python3-filelock{a} python3-findpython{a} python3-idna{a} python3-inflect{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.classes{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-jeepney{a} python3-keyring{a} python3-mako{a} python3-markupsafe{a} python3-minimal{a} python3-more-itertools{a} python3-msgpack{a} python3-packaging{a} python3-parse{a} python3-parse-type{a} python3-pbs-installer{a} python3-pip-whl{a} python3-pkg-resources{a} python3-pkginfo{a} python3-platformdirs{a} python3-pluggy{a} python3-poetry{a} python3-poetry-core{a} python3-pygments{a} python3-pyproject-hooks{a} python3-pytest{a} python3-rapidfuzz{a} python3-requests{a} python3-requests-toolbelt{a} python3-secretstorage{a} python3-setuptools{a} python3-setuptools-whl{a} python3-shellingham{a} python3-tomlkit{a} python3-trove-classifiers{a} python3-typeguard{a} python3-typing-extensions{a} python3-urllib3{a} python3-virtualenv{a} python3-wheel{a} python3-zipp{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python-pkginfo-doc python3-dev python3-fastimport python3-httpx python3-numpy python3-zstandard wget 0 packages upgraded, 107 newly installed, 0 to remove and 0 not upgraded. Need to get 30.2 MB of archives. After unpacking 116 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.7.2-1 [111 kB] Get: 2 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.7-1 [864 kB] Get: 3 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.7-1 [2216 kB] Get: 4 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.13.7-1 [27.2 kB] Get: 5 http://deb.debian.org/debian unstable/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian unstable/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian unstable/main amd64 tzdata all 2025b-5 [260 kB] Get: 8 http://deb.debian.org/debian unstable/main amd64 libffi8 amd64 3.5.2-2 [25.5 kB] Get: 9 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.3-3 [74.8 kB] Get: 10 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.3-3 [191 kB] Get: 11 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.7-1 [1960 kB] Get: 12 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.7-1 [761 kB] Get: 13 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.13.7-1 [10.2 kB] Get: 14 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.13.7-1 [28.3 kB] Get: 15 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.26 [27.0 kB] Get: 16 http://deb.debian.org/debian unstable/main amd64 openssl amd64 3.5.3-1 [1495 kB] Get: 17 http://deb.debian.org/debian unstable/main amd64 ca-certificates all 20250419 [162 kB] Get: 18 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 19 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 20 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 21 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.23.1-2+b1 [244 kB] Get: 22 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-2 [68.5 kB] Get: 23 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 24 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.41.1-3 [100 kB] Get: 25 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 27 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.20-1 [324 kB] Get: 28 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 29 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 30 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.17-4 [862 kB] Get: 31 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 32 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.26 [91.8 kB] Get: 33 http://deb.debian.org/debian unstable/main amd64 libtool all 2.5.4-5 [540 kB] Get: 34 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 21 [12.2 kB] Get: 35 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [19.9 kB] Get: 37 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.15.0-1 [8812 B] Get: 38 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.193-3 [192 kB] Get: 39 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.16-2 [108 kB] Get: 40 http://deb.debian.org/debian unstable/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 41 http://deb.debian.org/debian unstable/main amd64 libxml2-16 amd64 2.14.5+dfsg-0.2 [638 kB] Get: 42 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.23.1-2+b1 [1680 kB] Get: 43 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 44 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 45 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.26 [939 kB] Get: 46 http://deb.debian.org/debian unstable/main amd64 dh-python all 6.20250414 [116 kB] Get: 47 http://deb.debian.org/debian unstable/main amd64 python3-packaging all 25.0-1 [56.6 kB] Get: 48 http://deb.debian.org/debian unstable/main amd64 python3-pyproject-hooks all 1.2.0-1 [11.7 kB] Get: 49 http://deb.debian.org/debian unstable/main amd64 python3-wheel all 0.46.1-2 [21.7 kB] Get: 50 http://deb.debian.org/debian unstable/main amd64 python3-build all 1.2.2-4 [36.2 kB] Get: 51 http://deb.debian.org/debian unstable/main amd64 python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 52 http://deb.debian.org/debian unstable/main amd64 pybuild-plugin-pyproject all 6.20250414 [11.8 kB] Get: 53 http://deb.debian.org/debian unstable/main amd64 python3-all amd64 3.13.7-1 [1048 B] Get: 54 http://deb.debian.org/debian unstable/main amd64 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 python3-bcrypt amd64 4.3.0-1 [212 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 python3-certifi all 2025.1.31+ds-1 [9652 B] Get: 57 http://deb.debian.org/debian unstable/main amd64 python3-charset-normalizer amd64 3.4.3-1 [131 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 python3-idna all 3.10-1 [42.0 kB] Get: 59 http://deb.debian.org/debian unstable/main amd64 python3-urllib3 all 2.5.0-1 [116 kB] Get: 60 http://deb.debian.org/debian unstable/main amd64 python3-chardet all 5.2.0+dfsg-2 [108 kB] Get: 61 http://deb.debian.org/debian unstable/main amd64 python3-requests all 2.32.5+dfsg-1 [72.4 kB] Get: 62 http://deb.debian.org/debian unstable/main amd64 python3-msgpack amd64 1.0.3-3+b4 [84.5 kB] Get: 63 http://deb.debian.org/debian unstable/main amd64 python3-cachecontrol all 0.14.3-1 [18.4 kB] Get: 64 http://deb.debian.org/debian unstable/main amd64 python3-cffi-backend amd64 2.0.0-1 [102 kB] Get: 65 http://deb.debian.org/debian unstable/main amd64 python3-rapidfuzz amd64 3.12.2+ds-1 [1962 kB] Get: 66 http://deb.debian.org/debian unstable/main amd64 python3-cleo all 2.2.1-4 [55.7 kB] Get: 67 http://deb.debian.org/debian unstable/main amd64 python3-cryptography amd64 43.0.0-3 [941 kB] Get: 68 http://deb.debian.org/debian unstable/main amd64 python3-distlib all 0.4.0-1 [257 kB] Get: 69 http://deb.debian.org/debian unstable/main amd64 python3-dulwich amd64 0.22.7-2 [205 kB] Get: 70 http://deb.debian.org/debian unstable/main amd64 python3-execnet all 2.1.1-1 [40.2 kB] Get: 71 http://deb.debian.org/debian unstable/main amd64 python3-fastjsonschema all 2.21.1-1 [22.4 kB] Get: 72 http://deb.debian.org/debian unstable/main amd64 python3-filelock all 3.19.1-1 [12.6 kB] Get: 73 http://deb.debian.org/debian unstable/main amd64 python3-platformdirs all 4.4.0-1 [16.7 kB] Get: 74 http://deb.debian.org/debian unstable/main amd64 python3-findpython all 0.7.0-1 [15.7 kB] Get: 75 http://deb.debian.org/debian unstable/main amd64 python3-more-itertools all 10.8.0-1 [71.7 kB] Get: 76 http://deb.debian.org/debian unstable/main amd64 python3-typing-extensions all 4.15.0-1 [92.4 kB] Get: 77 http://deb.debian.org/debian unstable/main amd64 python3-typeguard all 4.4.4-1 [37.1 kB] Get: 78 http://deb.debian.org/debian unstable/main amd64 python3-inflect all 7.5.0-1 [33.0 kB] Get: 79 http://deb.debian.org/debian unstable/main amd64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 80 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.classes all 3.4.0-1 [7728 B] Get: 81 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 82 http://deb.debian.org/debian unstable/main amd64 python3-pkg-resources all 78.1.1-0.1 [224 kB] Get: 83 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 84 http://deb.debian.org/debian unstable/main amd64 python3-zipp all 3.23.0-1 [11.0 kB] Get: 85 http://deb.debian.org/debian unstable/main amd64 python3-setuptools all 78.1.1-0.1 [738 kB] Get: 86 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.context all 6.0.1-1 [8276 B] Get: 87 http://deb.debian.org/debian unstable/main amd64 python3-jeepney all 0.9.0-1 [33.4 kB] Get: 88 http://deb.debian.org/debian unstable/main amd64 python3-secretstorage all 3.4.0-1 [16.5 kB] Get: 89 http://deb.debian.org/debian unstable/main amd64 python3-keyring all 25.6.0-3 [54.9 kB] Get: 90 http://deb.debian.org/debian unstable/main amd64 python3-markupsafe amd64 2.1.5-1+b3 [14.0 kB] Get: 91 http://deb.debian.org/debian unstable/main amd64 python3-mako all 1.3.9-1 [83.6 kB] Get: 92 http://deb.debian.org/debian unstable/main amd64 python3-parse all 1.20.2-1 [26.7 kB] Get: 93 http://deb.debian.org/debian unstable/main amd64 python3-parse-type all 0.6.6-1 [24.5 kB] Get: 94 http://deb.debian.org/debian unstable/main amd64 python3-pbs-installer all 2025.08.28-1 [51.4 kB] Get: 95 http://deb.debian.org/debian unstable/main amd64 python3-pip-whl all 25.2+dfsg-1 [1428 kB] Get: 96 http://deb.debian.org/debian unstable/main amd64 python3-pkginfo all 1.12.1.2-2 [21.1 kB] Get: 97 http://deb.debian.org/debian unstable/main amd64 python3-pluggy all 1.6.0-1 [27.1 kB] Get: 98 http://deb.debian.org/debian unstable/main amd64 python3-poetry-core all 2.1.2-2 [229 kB] Get: 99 http://deb.debian.org/debian unstable/main amd64 python3-requests-toolbelt all 1.0.0-4 [40.3 kB] Get: 100 http://deb.debian.org/debian unstable/main amd64 python3-shellingham all 1.5.4-1 [11.0 kB] Get: 101 http://deb.debian.org/debian unstable/main amd64 python3-tomlkit all 0.13.2-1 [42.7 kB] Get: 102 http://deb.debian.org/debian unstable/main amd64 python3-trove-classifiers all 2025.9.8.13-1 [10.9 kB] Get: 103 http://deb.debian.org/debian unstable/main amd64 python3-setuptools-whl all 78.1.1-0.1 [1268 kB] Get: 104 http://deb.debian.org/debian unstable/main amd64 python3-virtualenv all 20.34.0+ds-1 [75.9 kB] Get: 105 http://deb.debian.org/debian unstable/main amd64 python3-poetry all 2.1.2+dfsg-1 [203 kB] Get: 106 http://deb.debian.org/debian unstable/main amd64 python3-pygments all 2.18.0+dfsg-2 [836 kB] Get: 107 http://deb.debian.org/debian unstable/main amd64 python3-pytest all 8.4.2-1 [266 kB] Fetched 30.2 MB in 13s (2311 kB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:amd64. (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 ... 19917 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.2-1_amd64.deb ... Unpacking libexpat1:amd64 (2.7.2-1) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../libpython3.13-minimal_3.13.7-1_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.7-1) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.7-1_amd64.deb ... Unpacking python3.13-minimal (3.13.7-1) ... Setting up libpython3.13-minimal:amd64 (3.13.7-1) ... Setting up libexpat1:amd64 (2.7.2-1) ... Setting up python3.13-minimal (3.13.7-1) ... Selecting previously unselected package python3-minimal. (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 ... 20251 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.7-1_amd64.deb ... Unpacking python3-minimal (3.13.7-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-5_all.deb ... Unpacking tzdata (2025b-5) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.5.2-2_amd64.deb ... Unpacking libffi8:amd64 (3.5.2-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.3-3_all.deb ... Unpacking readline-common (8.3-3) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.3-3_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.3-3) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.7-1_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.7-1) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.7-1_amd64.deb ... Unpacking python3.13 (3.13.7-1) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.7-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.7-1) ... Setting up python3-minimal (3.13.7-1) ... Selecting previously unselected package python3. (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 ... 21266 files and directories currently installed.) Preparing to unpack .../00-python3_3.13.7-1_amd64.deb ... Unpacking python3 (3.13.7-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.26_all.deb ... Unpacking sensible-utils (0.0.26) ... Selecting previously unselected package openssl. Preparing to unpack .../02-openssl_3.5.3-1_amd64.deb ... Unpacking openssl (3.5.3-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../03-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../05-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_0.23.1-2+b1_amd64.deb ... Unpacking gettext-base (0.23.1-2+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../08-libuchardet0_0.0.8-2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-2) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.41.1-3_amd64.deb ... Unpacking bsdextrautils (2.41.1-3) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../11-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../13-m4_1.4.20-1_amd64.deb ... Unpacking m4 (1.4.20-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../14-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../15-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../16-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../17-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../18-libdebhelper-perl_13.26_all.deb ... Unpacking libdebhelper-perl (13.26) ... Selecting previously unselected package libtool. Preparing to unpack .../19-libtool_2.5.4-5_all.deb ... Unpacking libtool (2.5.4-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../20-dh-autoreconf_21_all.deb ... Unpacking dh-autoreconf (21) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../21-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../22-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../23-dh-strip-nondeterminism_1.15.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.15.0-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../24-libelf1t64_0.193-3_amd64.deb ... Unpacking libelf1t64:amd64 (0.193-3) ... Selecting previously unselected package dwz. Preparing to unpack .../25-dwz_0.16-2_amd64.deb ... Unpacking dwz (0.16-2) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../26-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../27-libxml2-16_2.14.5+dfsg-0.2_amd64.deb ... Unpacking libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Selecting previously unselected package gettext. Preparing to unpack .../28-gettext_0.23.1-2+b1_amd64.deb ... Unpacking gettext (0.23.1-2+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../29-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../30-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../31-debhelper_13.26_all.deb ... Unpacking debhelper (13.26) ... Selecting previously unselected package dh-python. Preparing to unpack .../32-dh-python_6.20250414_all.deb ... Unpacking dh-python (6.20250414) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../33-python3-packaging_25.0-1_all.deb ... Unpacking python3-packaging (25.0-1) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../34-python3-pyproject-hooks_1.2.0-1_all.deb ... Unpacking python3-pyproject-hooks (1.2.0-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../35-python3-wheel_0.46.1-2_all.deb ... Unpacking python3-wheel (0.46.1-2) ... Selecting previously unselected package python3-build. Preparing to unpack .../36-python3-build_1.2.2-4_all.deb ... Unpacking python3-build (1.2.2-4) ... Selecting previously unselected package python3-installer. Preparing to unpack .../37-python3-installer_0.7.0+dfsg1-3_all.deb ... Unpacking python3-installer (0.7.0+dfsg1-3) ... Selecting previously unselected package pybuild-plugin-pyproject. Preparing to unpack .../38-pybuild-plugin-pyproject_6.20250414_all.deb ... Unpacking pybuild-plugin-pyproject (6.20250414) ... Selecting previously unselected package python3-all. Preparing to unpack .../39-python3-all_3.13.7-1_amd64.deb ... Unpacking python3-all (3.13.7-1) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../40-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../41-python3-bcrypt_4.3.0-1_amd64.deb ... Unpacking python3-bcrypt (4.3.0-1) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../42-python3-certifi_2025.1.31+ds-1_all.deb ... Unpacking python3-certifi (2025.1.31+ds-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../43-python3-charset-normalizer_3.4.3-1_amd64.deb ... Unpacking python3-charset-normalizer (3.4.3-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../44-python3-idna_3.10-1_all.deb ... Unpacking python3-idna (3.10-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../45-python3-urllib3_2.5.0-1_all.deb ... Unpacking python3-urllib3 (2.5.0-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../46-python3-chardet_5.2.0+dfsg-2_all.deb ... Unpacking python3-chardet (5.2.0+dfsg-2) ... Selecting previously unselected package python3-requests. Preparing to unpack .../47-python3-requests_2.32.5+dfsg-1_all.deb ... Unpacking python3-requests (2.32.5+dfsg-1) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../48-python3-msgpack_1.0.3-3+b4_amd64.deb ... Unpacking python3-msgpack (1.0.3-3+b4) ... Selecting previously unselected package python3-cachecontrol. Preparing to unpack .../49-python3-cachecontrol_0.14.3-1_all.deb ... Unpacking python3-cachecontrol (0.14.3-1) ... Selecting previously unselected package python3-cffi-backend:amd64. Preparing to unpack .../50-python3-cffi-backend_2.0.0-1_amd64.deb ... Unpacking python3-cffi-backend:amd64 (2.0.0-1) ... Selecting previously unselected package python3-rapidfuzz. Preparing to unpack .../51-python3-rapidfuzz_3.12.2+ds-1_amd64.deb ... Unpacking python3-rapidfuzz (3.12.2+ds-1) ... Selecting previously unselected package python3-cleo. Preparing to unpack .../52-python3-cleo_2.2.1-4_all.deb ... Unpacking python3-cleo (2.2.1-4) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../53-python3-cryptography_43.0.0-3_amd64.deb ... Unpacking python3-cryptography (43.0.0-3) ... Selecting previously unselected package python3-distlib. Preparing to unpack .../54-python3-distlib_0.4.0-1_all.deb ... Unpacking python3-distlib (0.4.0-1) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../55-python3-dulwich_0.22.7-2_amd64.deb ... Unpacking python3-dulwich (0.22.7-2) ... Selecting previously unselected package python3-execnet. Preparing to unpack .../56-python3-execnet_2.1.1-1_all.deb ... Unpacking python3-execnet (2.1.1-1) ... Selecting previously unselected package python3-fastjsonschema. Preparing to unpack .../57-python3-fastjsonschema_2.21.1-1_all.deb ... Unpacking python3-fastjsonschema (2.21.1-1) ... Selecting previously unselected package python3-filelock. Preparing to unpack .../58-python3-filelock_3.19.1-1_all.deb ... Unpacking python3-filelock (3.19.1-1) ... Selecting previously unselected package python3-platformdirs. Preparing to unpack .../59-python3-platformdirs_4.4.0-1_all.deb ... Unpacking python3-platformdirs (4.4.0-1) ... Selecting previously unselected package python3-findpython. Preparing to unpack .../60-python3-findpython_0.7.0-1_all.deb ... Unpacking python3-findpython (0.7.0-1) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../61-python3-more-itertools_10.8.0-1_all.deb ... Unpacking python3-more-itertools (10.8.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../62-python3-typing-extensions_4.15.0-1_all.deb ... Unpacking python3-typing-extensions (4.15.0-1) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../63-python3-typeguard_4.4.4-1_all.deb ... Unpacking python3-typeguard (4.4.4-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../64-python3-inflect_7.5.0-1_all.deb ... Unpacking python3-inflect (7.5.0-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../65-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-jaraco.classes. Preparing to unpack .../66-python3-jaraco.classes_3.4.0-1_all.deb ... Unpacking python3-jaraco.classes (3.4.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../67-python3-jaraco.functools_4.1.0-1_all.deb ... Unpacking python3-jaraco.functools (4.1.0-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../68-python3-pkg-resources_78.1.1-0.1_all.deb ... Unpacking python3-pkg-resources (78.1.1-0.1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../69-python3-jaraco.text_4.0.0-1_all.deb ... Unpacking python3-jaraco.text (4.0.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../70-python3-zipp_3.23.0-1_all.deb ... Unpacking python3-zipp (3.23.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../71-python3-setuptools_78.1.1-0.1_all.deb ... Unpacking python3-setuptools (78.1.1-0.1) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../72-python3-jaraco.context_6.0.1-1_all.deb ... Unpacking python3-jaraco.context (6.0.1-1) ... Selecting previously unselected package python3-jeepney. Preparing to unpack .../73-python3-jeepney_0.9.0-1_all.deb ... Unpacking python3-jeepney (0.9.0-1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../74-python3-secretstorage_3.4.0-1_all.deb ... Unpacking python3-secretstorage (3.4.0-1) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../75-python3-keyring_25.6.0-3_all.deb ... Unpacking python3-keyring (25.6.0-3) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../76-python3-markupsafe_2.1.5-1+b3_amd64.deb ... Unpacking python3-markupsafe (2.1.5-1+b3) ... Selecting previously unselected package python3-mako. Preparing to unpack .../77-python3-mako_1.3.9-1_all.deb ... Unpacking python3-mako (1.3.9-1) ... Selecting previously unselected package python3-parse. Preparing to unpack .../78-python3-parse_1.20.2-1_all.deb ... Unpacking python3-parse (1.20.2-1) ... Selecting previously unselected package python3-parse-type. Preparing to unpack .../79-python3-parse-type_0.6.6-1_all.deb ... Unpacking python3-parse-type (0.6.6-1) ... Selecting previously unselected package python3-pbs-installer. Preparing to unpack .../80-python3-pbs-installer_2025.08.28-1_all.deb ... Unpacking python3-pbs-installer (2025.08.28-1) ... Selecting previously unselected package python3-pip-whl. Preparing to unpack .../81-python3-pip-whl_25.2+dfsg-1_all.deb ... Unpacking python3-pip-whl (25.2+dfsg-1) ... Selecting previously unselected package python3-pkginfo. Preparing to unpack .../82-python3-pkginfo_1.12.1.2-2_all.deb ... Unpacking python3-pkginfo (1.12.1.2-2) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../83-python3-pluggy_1.6.0-1_all.deb ... Unpacking python3-pluggy (1.6.0-1) ... Selecting previously unselected package python3-poetry-core. Preparing to unpack .../84-python3-poetry-core_2.1.2-2_all.deb ... Unpacking python3-poetry-core (2.1.2-2) ... Selecting previously unselected package python3-requests-toolbelt. Preparing to unpack .../85-python3-requests-toolbelt_1.0.0-4_all.deb ... Unpacking python3-requests-toolbelt (1.0.0-4) ... Selecting previously unselected package python3-shellingham. Preparing to unpack .../86-python3-shellingham_1.5.4-1_all.deb ... Unpacking python3-shellingham (1.5.4-1) ... Selecting previously unselected package python3-tomlkit. Preparing to unpack .../87-python3-tomlkit_0.13.2-1_all.deb ... Unpacking python3-tomlkit (0.13.2-1) ... Selecting previously unselected package python3-trove-classifiers. Preparing to unpack .../88-python3-trove-classifiers_2025.9.8.13-1_all.deb ... Unpacking python3-trove-classifiers (2025.9.8.13-1) ... Selecting previously unselected package python3-setuptools-whl. Preparing to unpack .../89-python3-setuptools-whl_78.1.1-0.1_all.deb ... Unpacking python3-setuptools-whl (78.1.1-0.1) ... Selecting previously unselected package python3-virtualenv. Preparing to unpack .../90-python3-virtualenv_20.34.0+ds-1_all.deb ... Unpacking python3-virtualenv (20.34.0+ds-1) ... Selecting previously unselected package python3-poetry. Preparing to unpack .../91-python3-poetry_2.1.2+dfsg-1_all.deb ... Unpacking python3-poetry (2.1.2+dfsg-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../92-python3-pygments_2.18.0+dfsg-2_all.deb ... Unpacking python3-pygments (2.18.0+dfsg-2) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../93-python3-pytest_8.4.2-1_all.deb ... Unpacking python3-pytest (8.4.2-1) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up python3-setuptools-whl (78.1.1-0.1) ... Setting up bsdextrautils (2.41.1-3) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Setting up libdebhelper-perl (13.26) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up gettext-base (0.23.1-2+b1) ... Setting up m4 (1.4.20-1) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.193-3) ... Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' Local time is now: Wed Oct 21 13:23:00 UTC 2026. Universal Time is now: Wed Oct 21 13:23:00 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up autopoint (0.23.1-2) ... Setting up autoconf (2.72-3.1) ... Setting up libffi8:amd64 (3.5.2-2) ... Setting up dwz (0.16-2) ... Setting up sensible-utils (0.0.26) ... Setting up libuchardet0:amd64 (0.0.8-2) ... Setting up netbase (6.5) ... Setting up openssl (3.5.3-1) ... Setting up readline-common (8.3-3) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... Setting up gettext (0.23.1-2+b1) ... Setting up libtool (2.5.4-5) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (21) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up libreadline8t64:amd64 (8.3-3) ... Setting up dh-strip-nondeterminism (1.15.0-1) ... Setting up groff-base (1.23.0-9) ... Setting up libpython3.13-stdlib:amd64 (3.13.7-1) ... Setting up libpython3-stdlib:amd64 (3.13.7-1) ... Setting up python3.13 (3.13.7-1) ... Setting up python3-pip-whl (25.2+dfsg-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up python3 (3.13.7-1) ... Setting up python3-distlib (0.4.0-1) ... Setting up python3-zipp (3.23.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up python3-markupsafe (2.1.5-1+b3) ... Setting up python3-platformdirs (4.4.0-1) ... Setting up python3-pygments (2.18.0+dfsg-2) ... Setting up python3-packaging (25.0-1) ... Setting up python3-chardet (5.2.0+dfsg-2) ... Setting up python3-pyproject-hooks (1.2.0-1) ... Setting up python3-certifi (2025.1.31+ds-1) ... Setting up python3-poetry-core (2.1.2-2) ... Setting up python3-idna (3.10-1) ... Setting up python3-typing-extensions (4.15.0-1) ... Setting up python3-jeepney (0.9.0-1) ... Setting up python3-installer (0.7.0+dfsg1-3) ... Setting up python3-urllib3 (2.5.0-1) ... Setting up python3-pluggy (1.6.0-1) ... Setting up python3-fastjsonschema (2.21.1-1) ... Setting up python3-trove-classifiers (2025.9.8.13-1) ... Setting up python3-pbs-installer (2025.08.28-1) ... Setting up python3-dulwich (0.22.7-2) ... Setting up python3-parse (1.20.2-1) ... Setting up python3-msgpack (1.0.3-3+b4) ... Setting up python3-execnet (2.1.1-1) ... Setting up python3-shellingham (1.5.4-1) ... Setting up python3-tomlkit (0.13.2-1) ... Setting up python3-cffi-backend:amd64 (2.0.0-1) ... Setting up python3-mako (1.3.9-1) ... Setting up dh-python (6.20250414) ... Setting up python3-more-itertools (10.8.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-rapidfuzz (3.12.2+ds-1) ... Setting up python3-filelock (3.19.1-1) ... Setting up python3-findpython (0.7.0-1) ... Setting up python3-jaraco.classes (3.4.0-1) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-jaraco.context (6.0.1-1) ... Setting up python3-pkginfo (1.12.1.2-2) ... Setting up python3-charset-normalizer (3.4.3-1) ... Setting up python3-pytest (8.4.2-1) ... Setting up python3-bcrypt (4.3.0-1) ... Setting up python3-typeguard (4.4.4-1) ... Setting up python3-virtualenv (20.34.0+ds-1) ... Setting up python3-all (3.13.7-1) ... Setting up debhelper (13.26) ... Setting up python3-wheel (0.46.1-2) ... Setting up python3-inflect (7.5.0-1) ... Setting up python3-parse-type (0.6.6-1) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-cryptography (43.0.0-3) ... Setting up python3-requests (2.32.5+dfsg-1) ... Setting up python3-cleo (2.2.1-4) ... Setting up python3-cachecontrol (0.14.3-1) ... Setting up python3-build (1.2.2-4) ... Setting up python3-pkg-resources (78.1.1-0.1) ... Setting up python3-requests-toolbelt (1.0.0-4) ... Setting up python3-setuptools (78.1.1-0.1) ... Setting up pybuild-plugin-pyproject (6.20250414) ... Setting up python3-secretstorage (3.4.0-1) ... Setting up python3-keyring (25.6.0-3) ... Setting up python3-poetry (2.1.2+dfsg-1) ... Processing triggers for libc-bin (2.41-12) ... Processing triggers for ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/pytest-bdd-7.1.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../pytest-bdd_7.1.2-2_source.changes dpkg-buildpackage: info: source package pytest-bdd dpkg-buildpackage: info: source version 7.1.2-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Alexandre Detiste dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" module I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/pytest-bdd-7.1.2/.pybuild/cpython3_3.13_pytest-bdd * Building wheel... Successfully built pytest_bdd-7.1.2-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/pytest-bdd-7.1.2' dh_auto_install I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir dh_auto_test -- --system=custom --test-args="{interpreter} -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters'" I: pybuild base:311: python3.13 -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters' ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /build/reproducible-path/pytest-bdd-7.1.2 configfile: pytest.ini testpaths: tests plugins: bdd-7.1.2, typeguard-4.4.4 collected 122 items / 2 deselected / 120 selected tests/args/cfparse/test_args.py FF [ 1%] tests/args/parse/test_args.py FF [ 3%] tests/args/regex/test_args.py FFF [ 5%] tests/args/test_common.py FF [ 7%] tests/feature/test_alias.py F [ 8%] tests/feature/test_background.py FF [ 10%] tests/feature/test_cucumber_json.py F [ 10%] tests/feature/test_description.py F [ 11%] tests/feature/test_feature_base_dir.py ....... [ 17%] tests/feature/test_gherkin_terminal_reporter.py FF.FFFFFFFFF [ 27%] tests/feature/test_multiline.py ..... [ 31%] tests/feature/test_no_scenario.py . [ 32%] tests/feature/test_no_sctrict_gherkin.py FF [ 34%] tests/feature/test_outline.py .... [ 37%] tests/feature/test_outline_empty_values.py F [ 38%] tests/feature/test_report.py Fs [ 40%] tests/feature/test_same_function_name.py F [ 40%] tests/feature/test_scenario.py ....F........F [ 52%] tests/feature/test_scenarios.py ........ [ 59%] tests/feature/test_steps.py FFFFFFFFFF [ 67%] tests/feature/test_tags.py FFFFF....... [ 77%] tests/feature/test_wrong.py . [ 78%] tests/generation/test_generate_missing.py .FF [ 80%] tests/library/test_parent.py .F..F [ 85%] tests/scripts/test_generate.py . [ 85%] tests/scripts/test_main.py . [ 86%] tests/scripts/test_migrate.py . [ 87%] tests/steps/test_common.py ...FFFF. [ 94%] tests/steps/test_given.py F [ 95%] tests/steps/test_unicode.py FF [ 96%] tests/test_hooks.py F.F. [100%] =================================== FAILURES =================================== ________________ test_every_step_takes_param_with_the_same_name ________________ pytester = def test_every_step_takes_param_with_the_same_name(pytester): """Test every step takes param with the same name.""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 1 Euro When I pay 2 Euro And I pay 1 Euro Then I should have 0 Euro And I should have 999999 Euro # In my dream... """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Every step takes a parameter with the same name") def test_arguments(): pass @pytest.fixture def values(): return [1, 2, 1, 0, 999999] @given(parsers.cfparse("I have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) @when(parsers.cfparse("I pay {euro:d} Euro")) def _(euro, values, request): assert euro == values.pop(0) @then(parsers.cfparse("I should have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/cfparse/test_args.py:57: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_every_step_takes_param_with_the_same_name0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ______ ERROR collecting test_every_step_takes_param_with_the_same_name.py ______ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_every_step_takes_param_with_the_same_name.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_every_step_takes_param_with_the_same_name.py - pytest.PytestWarnin... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.87s =============================== ____________________________ test_argument_in_when _____________________________ pytester = def test_argument_in_when(pytester): """Test step arguments in when steps.""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Argument in when Given I have an argument 1 When I get argument 5 Then My argument should be 5 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Argument in when") def test_arguments(): pass @pytest.fixture def arguments(): return dict() @given(parsers.cfparse("I have an argument {arg:Number}", extra_types=dict(Number=int))) def _(arguments, arg): arguments["arg"] = arg @when(parsers.cfparse("I get argument {arg:d}")) def _(arguments, arg): arguments["arg"] = arg @then(parsers.cfparse("My argument should be {arg:d}")) def _(arguments, arg): assert arguments["arg"] == arg """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/cfparse/test_args.py:109: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_argument_in_when0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_argument_in_when.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_argument_in_when.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_argument_in_when.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.40s =============================== _______________ test_every_steps_takes_param_with_the_same_name ________________ pytester = def test_every_steps_takes_param_with_the_same_name(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 1 Euro When I pay 2 Euro And I pay 1 Euro Then I should have 0 Euro And I should have 999999 Euro # In my dream... """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Every step takes a parameter with the same name") def test_arguments(): pass @pytest.fixture def values(): return [1, 2, 1, 0, 999999] @given(parsers.parse("I have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) @when(parsers.parse("I pay {euro:d} Euro")) def _(euro, values, request): assert euro == values.pop(0) @then(parsers.parse("I should have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/parse/test_args.py:56: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_every_steps_takes_param_with_the_same_name0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____ ERROR collecting test_every_steps_takes_param_with_the_same_name.py ______ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_every_steps_takes_param_with_the_same_name.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_every_steps_takes_param_with_the_same_name.py - pytest.PytestWarni... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.30s =============================== _________________________ test_argument_in_when_step_1 _________________________ pytester = def test_argument_in_when_step_1(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Argument in when Given I have an argument 1 When I get argument 5 Then My argument should be 5 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @pytest.fixture def arguments(): return dict() @scenario("arguments.feature", "Argument in when") def test_arguments(): pass @given(parsers.parse("I have an argument {arg:Number}", extra_types=dict(Number=int))) def _(arguments, arg): arguments["arg"] = arg @when(parsers.parse("I get argument {arg:d}")) def _(arguments, arg): arguments["arg"] = arg @then(parsers.parse("My argument should be {arg:d}")) def _(arguments, arg): assert arguments["arg"] == arg """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/parse/test_args.py:107: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_argument_in_when_step_10 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________ ERROR collecting test_argument_in_when_step_1.py _______________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_argument_in_when_step_1.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_argument_in_when_step_1.py - pytest.PytestWarning: usefixtures() i... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 1.04s =============================== _______________ test_every_steps_takes_param_with_the_same_name ________________ pytester = def test_every_steps_takes_param_with_the_same_name(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 1 Euro When I pay 2 Euro And I pay 1 Euro Then I should have 0 Euro And I should have 999999 Euro """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Every step takes a parameter with the same name") def test_arguments(): pass @pytest.fixture def values(): return [1, 2, 1, 0, 999999] @given(parsers.re(r"I have (?P\d+) Euro"), converters=dict(euro=int)) def _(euro, values): assert euro == values.pop(0) @when(parsers.re(r"I pay (?P\d+) Euro"), converters=dict(euro=int)) def _(euro, values, request): assert euro == values.pop(0) @then(parsers.re(r"I should have (?P\d+) Euro"), converters=dict(euro=int)) def _(euro, values): assert euro == values.pop(0) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/regex/test_args.py:55: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_every_steps_takes_param_with_the_same_name1 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____ ERROR collecting test_every_steps_takes_param_with_the_same_name.py ______ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_every_steps_takes_param_with_the_same_name.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_every_steps_takes_param_with_the_same_name.py - pytest.PytestWarni... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.73s =============================== _______________________________ test_exact_match _______________________________ pytester = def test_exact_match(pytester): """Test that parsers.re does an exact match (fullmatch) of the whole string. This tests exists because in the past we only used re.match, which only finds a match at the beginning of the string, so if there were any more characters not matching at the end, they were ignored""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 2 Euro # Step that should not be found: When I pay 1 Euro by mistake Then I should have 1 Euro left """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenarios scenarios("arguments.feature") @given(parsers.re(r"I have (?P\d+) Euro"), converters={"amount": int}, target_fixture="wallet") def _(amount): return {"EUR": amount} # Purposefully using a re that will not match the step "When I pay 1 Euro and 50 cents" @when(parsers.re(r"I pay (?P\d+) Euro"), converters={"amount": int}) def _(amount, wallet): wallet["EUR"] -= amount @then(parsers.re(r"I should have (?P\d+) Euro left"), converters={"amount": int}) def _(amount, wallet): assert wallet["EUR"] == amount """ ) ) result = pytester.runpytest() > result.assert_outcomes(failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/regex/test_args.py:105: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_exact_match0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_exact_match.py _____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_exact_match.py::test_every_step_takes_a_parameter_with_the_same_name without arguments has no effect =========================== short test summary info ============================ ERROR test_exact_match.py - pytest.PytestWarning: usefixtures() in test_exact... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.20s =============================== ____________________________ test_argument_in_when _____________________________ pytester = def test_argument_in_when(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Argument in when, step 1 Given I have an argument 1 When I get argument 5 Then My argument should be 5 """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenario @pytest.fixture def arguments(): return dict() @scenario("arguments.feature", "Argument in when, step 1") def test_arguments(): pass @given(parsers.re(r"I have an argument (?P\d+)")) def _(arguments, arg): arguments["arg"] = arg @when(parsers.re(r"I get argument (?P\d+)")) def _(arguments, arg): arguments["arg"] = arg @then(parsers.re(r"My argument should be (?P\d+)")) def _(arguments, arg): assert arguments["arg"] == arg """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/regex/test_args.py:159: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_argument_in_when1 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_argument_in_when.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_argument_in_when.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_argument_in_when.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.28s =============================== __________________ test_reuse_same_step_different_converters ___________________ pytester = def test_reuse_same_step_different_converters(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Reuse same step with different converters Scenario: Step function should be able to be decorated multiple times with different converters Given I have a foo with int value 42 And I have a foo with str value 42 And I have a foo with float value 42 When pass Then pass """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenarios from pytest_bdd.utils import dump_obj scenarios("arguments.feature") @given(parsers.re(r"^I have a foo with int value (?P.*?)$"), converters={"value": int}) @given(parsers.re(r"^I have a foo with str value (?P.*?)$"), converters={"value": str}) @given(parsers.re(r"^I have a foo with float value (?P.*?)$"), converters={"value": float}) def _(value): dump_obj(value) return value @then("pass") @when("pass") def _(): pass """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/test_common.py:47: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_reuse_same_step_different_converters0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ________ ERROR collecting test_reuse_same_step_different_converters.py _________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_reuse_same_step_different_converters.py::test_step_function_should_be_able_to_be_decorated_multiple_times_with_different_converters without arguments has no effect =========================== short test summary info ============================ ERROR test_reuse_same_step_different_converters.py - pytest.PytestWarning: us... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== ____________________ test_string_steps_dont_take_precedence ____________________ pytester = def test_string_steps_dont_take_precedence(pytester): """Test that normal steps don't take precedence over the other steps.""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step precedence Scenario: String steps don't take precedence over other steps Given I have a foo with value 42 When pass Then pass """ ), ) pytester.makeconftest( textwrap.dedent( """ from pytest_bdd import given, when, then, parsers from pytest_bdd.utils import dump_obj @given("I have a foo with value 42") def _(): dump_obj("str") return 42 @then("pass") @when("pass") def _(): pass """ ) ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenarios from pytest_bdd.utils import dump_obj scenarios("arguments.feature") @given(parsers.re(r"^I have a foo with value (?P.*?)$")) def _(value): dump_obj("re") return 42 """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/test_common.py:113: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_string_steps_dont_take_precedence0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_string_steps_dont_take_precedence.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_string_steps_dont_take_precedence.py::test_string_steps_dont_take_precedence_over_other_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_string_steps_dont_take_precedence.py - pytest.PytestWarning: usefi... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== _______________________________ test_step_alias ________________________________ pytester = def test_step_alias(pytester): pytester.makefile( ".feature", alias=textwrap.dedent( """\ Feature: Step aliases Scenario: Multiple step aliases Given I have an empty list And I have foo (which is 1) in my list # Alias of the "I have foo (which is 1) in my list" And I have bar (alias of foo) in my list When I do crash (which is 2) And I do boom (alias of crash) Then my list should be [1, 1, 2, 2] """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenario @scenario("alias.feature", "Multiple step aliases") def test_alias(): pass @given("I have an empty list", target_fixture="results") def _(): return [] @given("I have foo (which is 1) in my list") @given("I have bar (alias of foo) in my list") def _(results): results.append(1) @when("I do crash (which is 2)") @when("I do boom (alias of crash)") def _(results): results.append(2) @then("my list should be [1, 1, 2, 2]") def _(results): assert results == [1, 1, 2, 2] """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_alias.py:60: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_alias0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_alias.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_alias.py::test_alias without arguments has no effect =========================== short test summary info ============================ ERROR test_step_alias.py - pytest.PytestWarning: usefixtures() in test_step_a... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.32s =============================== ____________________________ test_background_basic _____________________________ pytester = def test_background_basic(pytester): """Test feature background.""" pytester.makefile(".feature", background=textwrap.dedent(FEATURE)) pytester.makeconftest(textwrap.dedent(STEPS)) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenario @scenario("background.feature", "Basic usage") def test_background(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_background.py:95: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_background_basic0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_background_basic.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_background_basic.py::test_background without arguments has no effect =========================== short test summary info ============================ ERROR test_background_basic.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== _________________________ test_background_check_order __________________________ pytester = def test_background_check_order(pytester): """Test feature background to ensure that background steps are executed first.""" pytester.makefile(".feature", background=textwrap.dedent(FEATURE)) pytester.makeconftest(textwrap.dedent(STEPS)) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenario @scenario("background.feature", "Background steps are executed first") def test_background(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_background.py:118: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_background_check_order0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________ ERROR collecting test_background_check_order.py ________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_background_check_order.py::test_background without arguments has no effect =========================== short test summary info ============================ ERROR test_background_check_order.py - pytest.PytestWarning: usefixtures() in... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.28s =============================== _______________________________ test_step_trace ________________________________ pytester = def test_step_trace(pytester): """Test step trace.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = scenario-passing-tag scenario-failing-tag scenario-outline-passing-tag feature-tag """ ), ) pytester.makefile( ".feature", test=textwrap.dedent( """ @feature-tag Feature: One passing scenario, one failing scenario @scenario-passing-tag Scenario: Passing Given a passing step And some other passing step @scenario-failing-tag Scenario: Failing Given a passing step And a failing step @scenario-outline-passing-tag Scenario Outline: Passing outline Given type and value Examples: example1 | type | value | | str | hello | | int | 42 | | float | 1.0 | """ ), ) pytester.makepyfile( textwrap.dedent( """ import pytest from pytest_bdd import given, when, scenario, parsers @given('a passing step') def _(): return 'pass' @given('some other passing step') def _(): return 'pass' @given('a failing step') def _(): raise Exception('Error') @given(parsers.parse('type {type} and value {value}')) def _(): return 'pass' @scenario('test.feature', 'Passing') def test_passing(): pass @scenario('test.feature', 'Failing') def test_failing(): pass @scenario('test.feature', 'Passing outline') def test_passing_outline(): pass """ ) ) result, jsonobject = runandparse(pytester) > result.assert_outcomes(passed=4, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 3 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 4} E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_cucumber_json.py:113: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace0 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_trace.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_trace.py::test_passing without arguments has no effect - generated json file: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace0/cucumber.json - =========================== short test summary info ============================ ERROR test_step_trace.py - pytest.PytestWarning: usefixtures() in test_step_t... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== _______________________________ test_description _______________________________ pytester = def test_description(pytester): """Test description for the feature.""" pytester.makefile( ".feature", description=textwrap.dedent( """\ Feature: Description In order to achieve something I want something Because it will be cool Some description goes here. Scenario: Description Also, the scenario can have a description. It goes here between the scenario name and the first step. Given I have a bar """ ), ) pytester.makepyfile( textwrap.dedent( """\ import textwrap from pytest_bdd import given, scenario @scenario("description.feature", "Description") def test_description(): pass @given("I have a bar") def _(): return "bar" def test_feature_description(): assert test_description.__scenario__.feature.description == textwrap.dedent( \"\"\"\\ In order to achieve something I want something Because it will be cool Some description goes here.\"\"\" ) def test_scenario_description(): assert test_description.__scenario__.description == textwrap.dedent( \"\"\"\\ Also, the scenario can have a description. It goes here between the scenario name and the first step.\"\"\" ) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=3) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 3} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_description.py:70: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_description0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_description.py _____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_description.py::test_description without arguments has no effect =========================== short test summary info ============================ ERROR test_description.py - pytest.PytestWarning: usefixtures() in test_descr... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.61s =============================== _____ test_default_output_should_be_the_same_as_regular_terminal_reporter ______ pytester = def test_default_output_should_be_the_same_as_regular_terminal_reporter(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile(TEST) regular = pytester.runpytest() gherkin = pytester.runpytest("--gherkin-terminal-reporter") > regular.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:45: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_default_output_should_be_the_same_as_regular_terminal_reporter0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_default_output_should_be_the_same_as_regular_terminal_reporter.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_default_output_should_be_the_same_as_regular_terminal_reporter.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_default_output_should_be_the_same_as_regular_terminal_reporter.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_default_output_should_be_the_same_as_regular_terminal_reporter0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_default_output_should_be_the_same_as_regular_terminal_reporter.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_default_output_should_be_the_same_as_regular_terminal_reporter.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_default_output_should_be_the_same_as_regular_terminal_reporter.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.25s =============================== _ test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line _ pytester = def test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile(TEST) result = pytester.runpytest("--gherkin-terminal-reporter", "-v") > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:58: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line0 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== ______ test_double_verbose_mode_should_display_full_scenario_description _______ pytester = def test_double_verbose_mode_should_display_full_scenario_description(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile(TEST) result = pytester.runpytest("--gherkin-terminal-reporter", "-vv") > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:89: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_double_verbose_mode_should_display_full_scenario_description0 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_double_verbose_mode_should_display_full_scenario_description.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_double_verbose_mode_should_display_full_scenario_description.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_double_verbose_mode_should_display_full_scenario_description.py - pytest.PytestWarning: usefixtures() in test_double_verbose_mode_should_display_full_scenario_description.py::test_scenario_1 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== ____________________ test_error_message_for_missing_steps[] ____________________ pytester = verbosity = '' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_for_missing_steps(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios('.') """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_for_missing_steps0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_error_message_for_missing_steps.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_for_missing_steps.py - pytest.PytestWarning: usefixt... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.31s =============================== ___________________ test_error_message_for_missing_steps[-v] ___________________ pytester = verbosity = '-v' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_for_missing_steps(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios('.') """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_for_missing_steps1 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_error_message_for_missing_steps.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_for_missing_steps.py - pytest.PytestWarning: usefixt... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.43s =============================== __________________ test_error_message_for_missing_steps[-vv] ___________________ pytester = verbosity = '-vv' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_for_missing_steps(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios('.') """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_for_missing_steps2 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_error_message_for_missing_steps.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_for_missing_steps.py - pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.48s =============================== ___________________ test_error_message_should_be_displayed[] ___________________ pytester = verbosity = '' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_should_be_displayed(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:148: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_should_be_displayed0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_error_message_should_be_displayed.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_should_be_displayed.py - pytest.PytestWarning: usefi... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== __________________ test_error_message_should_be_displayed[-v] __________________ pytester = verbosity = '-v' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_should_be_displayed(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:148: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_should_be_displayed1 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_error_message_should_be_displayed.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_should_be_displayed.py - pytest.PytestWarning: usefi... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== _________________ test_error_message_should_be_displayed[-vv] __________________ pytester = verbosity = '-vv' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_should_be_displayed(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:148: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_should_be_displayed2 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_error_message_should_be_displayed.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_should_be_displayed.py - pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== ___ test_local_variables_should_be_displayed_when_showlocals_option_is_used ____ pytester = def test_local_variables_should_be_displayed_when_showlocals_option_is_used(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): local_var = "MULTIPASS" raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", "--showlocals") > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:183: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_local_variables_should_be_displayed_when_showlocals_option_is_used0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_local_variables_should_be_displayed_when_showlocals_option_is_used.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} self = /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True hook_name = 'pytest_pycollect_makeitem' kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f675126ead0> /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ after = .after at 0x7f67510784a0> before = .before at 0x7f6751079e40> caller_kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} firstresult = True hook_impls = [>] hook_name = 'pytest_pycollect_makeitem' oldcall = outcome = /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ caller_kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} firstresult = True hook_impls = [>] hook_name = 'pytest_pycollect_makeitem' oldcall = /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ collector = name = 'test_scenario_1' obj = .decorator..scenario_wrapper at 0x7f6750ffb4c0> /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = None clscol = None funcobj = .decorator..scenario_wrapper at 0x7f6750ffb4c0> module = modulecol = name = 'test_scenario_1' self = /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>, 'name': 'test_scenario_1'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>, 'name': 'test_scenario_1'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = k = () kw = {'callobj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>, 'name': 'test_scenario_1', 'parent': } /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = callobj = .decorator..scenario_wrapper at 0x7f6750ffb4c0> callspec = None config = None fixtureinfo = None fm = <_pytest.fixtures.FixtureManager object at 0x7f675126f250> keywords = None name = 'test_scenario_1' originalname = None parent = self = session = None /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ argnames = ('request', '_pytest_bdd_example') autousenames = cls = None func = .decorator..scenario_wrapper at 0x7f6750ffb4c0> node = self = <_pytest.fixtures.FixtureManager object at 0x7f675126f250> usefixturesnames = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ seqs = (, , ('request', '_pytest_bdd_example')) /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ .0 = seq = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( mark = Mark(name='usefixtures', args=(), kwargs={}) marker_node = node = self = <_pytest.fixtures.FixtureManager object at 0x7f675126f250> /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_local_variables_should_be_displayed_when_showlocals_option_is_used.py::test_scenario_1 without arguments has no effect lineno = 266 path = '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py' self = warning = PytestWarning('usefixtures() in test_local_variables_should_be_displayed_when_showlocals_option_is_used.py::test_scenario_1 without arguments has no effect') =========================== short test summary info ============================ ERROR test_local_variables_should_be_displayed_when_showlocals_option_is_used.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.27s =============================== ___________ test_step_parameters_should_be_replaced_by_their_values ____________ pytester = def test_step_parameters_should_be_replaced_by_their_values(pytester): example = {"start": 10, "eat": 3, "left": 7} pytester.makefile( ".feature", test=textwrap.dedent( """\ Feature: Gherkin terminal output feature Scenario Outline: Scenario example 2 Given there are cucumbers When I eat cucumbers Then I should have cucumbers Examples: | start | eat | left | |{start}|{eat}|{left}| """.format( **example ) ), ) pytester.makepyfile( test_gherkin=textwrap.dedent( """\ from pytest_bdd import given, when, scenario, then, parsers @given(parsers.parse('there are {start} cucumbers'), target_fixture="start_cucumbers") def _(start): return start @when(parsers.parse('I eat {eat} cucumbers')) def _(start_cucumbers, eat): pass @then(parsers.parse('I should have {left} cucumbers')) def _(start_cucumbers, left): pass @scenario('test.feature', 'Scenario example 2') def test_scenario_2(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", "-vv") > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:233: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_parameters_should_be_replaced_by_their_values0 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _______________________ ERROR collecting test_gherkin.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_gherkin.py::test_scenario_2 without arguments has no effect =========================== short test summary info ============================ ERROR test_gherkin.py - pytest.PytestWarning: usefixtures() in test_gherkin.py::test_scenario_2 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ______________________ test_background_no_strict_gherkin _______________________ pytester = def test_background_no_strict_gherkin(pytester): """Test background no strict gherkin.""" pytester.makepyfile( test_gherkin=""" import pytest from pytest_bdd import when, scenario @scenario( "no_strict_gherkin_background.feature", "Test background", ) def test_background(): pass @pytest.fixture def foo(): return {} @when('foo has a value "bar"') def _(foo): foo["bar"] = "bar" return foo["bar"] @when('foo is not boolean') def _(foo): assert foo is not bool @when('foo has not a value "baz"') def _(foo): assert "baz" not in foo """ ) pytester.makefile( ".feature", no_strict_gherkin_background=""" Feature: No strict Gherkin Background support Background: When foo has a value "bar" And foo is not boolean And foo has not a value "baz" Scenario: Test background """, ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_no_sctrict_gherkin.py:57: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_background_no_strict_gherkin0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________________ ERROR collecting test_gherkin.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_gherkin.py::test_background without arguments has no effect =========================== short test summary info ============================ ERROR test_gherkin.py - pytest.PytestWarning: usefixtures() in test_gherkin.p... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.28s =============================== _______________________ test_scenario_no_strict_gherkin ________________________ pytester = def test_scenario_no_strict_gherkin(pytester): """Test scenario no strict gherkin.""" pytester.makepyfile( test_gherkin=""" import pytest from pytest_bdd import when, scenario @scenario( "no_strict_gherkin_scenario.feature", "Test scenario", ) def test_scenario(): pass @pytest.fixture def foo(): return {} @when('foo has a value "bar"') def _(foo): foo["bar"] = "bar" return foo["bar"] @when('foo is not boolean') def _(foo): assert foo is not bool @when('foo has not a value "baz"') def _(foo): assert "baz" not in foo """ ) pytester.makefile( ".feature", no_strict_gherkin_scenario=""" Feature: No strict Gherkin Scenario support Scenario: Test scenario When foo has a value "bar" And foo is not boolean And foo has not a value "baz" """, ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_no_sctrict_gherkin.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_scenario_no_strict_gherkin0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________________ ERROR collecting test_gherkin.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_gherkin.py::test_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_gherkin.py - pytest.PytestWarning: usefixtures() in test_gherkin.p... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.35s =============================== ___________________ test_scenario_with_empty_example_values ____________________ pytester = def test_scenario_with_empty_example_values(pytester): pytester.makefile( ".feature", outline=textwrap.dedent( """\ Feature: Outline Scenario Outline: Outlined with empty example values Given there are cucumbers When I eat cucumbers Then I should have cucumbers Examples: | start | eat | left | | # | | | """ ), ) pytester.makeconftest(textwrap.dedent(STEPS)) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd.utils import dump_obj from pytest_bdd import scenario import json @scenario("outline.feature", "Outlined with empty example values") def test_outline(): pass """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_outline_empty_values.py:62: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_scenario_with_empty_example_values0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _________ ERROR collecting test_scenario_with_empty_example_values.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_scenario_with_empty_example_values.py::test_outline without arguments has no effect =========================== short test summary info ============================ ERROR test_scenario_with_empty_example_values.py - pytest.PytestWarning: usef... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _______________________________ test_step_trace ________________________________ pytester = def test_step_trace(pytester): """Test step trace.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = feature-tag scenario-passing-tag scenario-failing-tag """ ), ) feature = pytester.makefile( ".feature", test=textwrap.dedent( """ @feature-tag Feature: One passing scenario, one failing scenario @scenario-passing-tag Scenario: Passing Given a passing step And some other passing step @scenario-failing-tag Scenario: Failing Given a passing step And a failing step Scenario Outline: Outlined Given there are cucumbers When I eat cucumbers Then I should have cucumbers Examples: | start | eat | left | | 12 | 5 | 7 | | 5 | 4 | 1 | """ ), ) relpath = feature.relative_to(pytester.path.parent) pytester.makepyfile( textwrap.dedent( """ import pytest from pytest_bdd import given, when, then, scenarios, parsers @given('a passing step') def _(): return 'pass' @given('some other passing step') def _(): return 'pass' @given('a failing step') def _(): raise Exception('Error') @given(parsers.parse('there are {start:d} cucumbers'), target_fixture="cucumbers") def _(start): assert isinstance(start, int) return {"start": start} @when(parsers.parse('I eat {eat:g} cucumbers')) def _(cucumbers, eat): assert isinstance(eat, float) cucumbers['eat'] = eat @then(parsers.parse('I should have {left} cucumbers')) def _(cucumbers, left): assert isinstance(left, str) assert cucumbers['start'] - cucumbers['eat'] == int(left) scenarios('test.feature') """ ) ) result = pytester.inline_run("-vvl") assert result.ret > report = result.matchreport("test_passing", when="call").scenario ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_report.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.pytester.HookRecorder object at 0x7f6751106040> inamepart = 'test_passing' names = ('pytest_runtest_logreport', 'pytest_collectreport'), when = 'call' def matchreport( self, inamepart: str = "", names: str | Iterable[str] = ( "pytest_runtest_logreport", "pytest_collectreport", ), when: str | None = None, ) -> CollectReport | TestReport: """Return a testreport whose dotted import path matches.""" values = [] for rep in self.getreports(names=names): if not when and rep.when != "call" and rep.passed: # setup/teardown passing reports - let's ignore those continue if when and rep.when != when: continue if not inamepart or inamepart in rep.nodeid.split("::"): values.append(rep) if not values: > raise ValueError( f"could not find test report matching {inamepart!r}: " "no test reports at all!" ) E ValueError: could not find test report matching 'test_passing': no test reports at all! /usr/lib/python3/dist-packages/_pytest/pytester.py:373: ValueError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace1 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_trace.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} self = /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True hook_name = 'pytest_pycollect_makeitem' kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} methods = [>, >] self = <_pytest.config.PytestPluginManager object at 0x7f6751216fd0> /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ after = .after at 0x7f67511f9620> before = .before at 0x7f67511fb560> caller_kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} firstresult = True hook_impls = [>, >] hook_name = 'pytest_pycollect_makeitem' oldcall = outcome = /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ caller_kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} firstresult = True hook_impls = [>, >] hook_name = 'pytest_pycollect_makeitem' oldcall = /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ collector = name = 'test_passing' obj = .decorator..scenario_wrapper at 0x7f675124ea20> /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = None clscol = None funcobj = .decorator..scenario_wrapper at 0x7f675124ea20> module = modulecol = name = 'test_passing' self = /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f675124ea20>, 'name': 'test_passing'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f675124ea20>, 'name': 'test_passing'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = k = () kw = {'callobj': .decorator..scenario_wrapper at 0x7f675124ea20>, 'name': 'test_passing', 'parent': } /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = callobj = .decorator..scenario_wrapper at 0x7f675124ea20> callspec = None config = None fixtureinfo = None fm = <_pytest.fixtures.FixtureManager object at 0x7f6751215bd0> keywords = None name = 'test_passing' originalname = None parent = self = session = None /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ argnames = ('request', '_pytest_bdd_example') autousenames = cls = None func = .decorator..scenario_wrapper at 0x7f675124ea20> node = self = <_pytest.fixtures.FixtureManager object at 0x7f6751215bd0> usefixturesnames = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ seqs = (, , ('request', '_pytest_bdd_example')) /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ .0 = seq = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( mark = Mark(name='usefixtures', args=(), kwargs={}) marker_node = node = self = <_pytest.fixtures.FixtureManager object at 0x7f6751215bd0> /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_trace.py::test_passing without arguments has no effect lineno = 266 path = '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py' self = warning = PytestWarning('usefixtures() in test_step_trace.py::test_passing without arguments has no effect') =========================== short test summary info ============================ ERROR test_step_trace.py - pytest.PytestWarning: usefixtures() in test_step_trace.py::test_passing without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== __________________ test_when_function_name_same_as_step_name ___________________ pytester = def test_when_function_name_same_as_step_name(pytester): pytester.makefile( ".feature", same_name=textwrap.dedent( """\ Feature: Function name same as step name Scenario: When function name same as step name When something """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import when, scenario @scenario("same_name.feature", "When function name same as step name") def test_same_name(): pass @when("something") def _(): return "something" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_same_function_name.py:33: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_when_function_name_same_as_step_name0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ________ ERROR collecting test_when_function_name_same_as_step_name.py _________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_when_function_name_same_as_step_name.py::test_same_name without arguments has no effect =========================== short test summary info ============================ ERROR test_when_function_name_same_as_step_name.py - pytest.PytestWarning: us... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== ____________________________ test_scenario_comments ____________________________ pytester = def test_scenario_comments(pytester): """Test comments inside scenario.""" pytester.makefile( ".feature", comments=textwrap.dedent( """\ Feature: Comments Scenario: Comments # Comment Given I have a bar Scenario: Strings that are not comments Given comments should be at the start of words Then this is not a#comment And this is not "#acomment" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import re import pytest from pytest_bdd import parsers, given, then, scenario @scenario("comments.feature", "Comments") def test_1(): pass @scenario("comments.feature", "Strings that are not comments") def test_2(): pass @given("I have a bar") def _(): return "bar" @given("comments should be at the start of words") def _(): pass @then(parsers.parse("this is not {acomment}")) def _(acomment): assert re.search("a.*comment", acomment) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_scenario.py:93: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_scenario_comments0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_scenario_comments.py __________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_scenario_comments.py::test_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_scenario_comments.py - pytest.PytestWarning: usefixtures() in test... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _____________________ test_angular_brakets_are_not_parsed ______________________ pytester = def test_angular_brakets_are_not_parsed(pytester): """Test that angular brackets are not parsed for "Scenario"s. (They should be parsed only when used in "Scenario Outline") """ pytester.makefile( ".feature", simple=""" Feature: Simple feature Scenario: Simple scenario Given I have a Then pass Scenario Outline: Outlined scenario Given I have a templated Then pass Examples: | foo | | bar | """, ) pytester.makepyfile( """ from pytest_bdd import scenarios, given, then, parsers scenarios("simple.feature") @given("I have a ") def _(): return "tag" @given(parsers.parse("I have a templated {foo}")) def _(foo): return "foo" @then("pass") def _(): pass """ ) result = pytester.runpytest() > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_scenario.py:194: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_angular_brakets_are_not_parsed0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_angular_brakets_are_not_parsed.py ____________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_angular_brakets_are_not_parsed.py::test_simple_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_angular_brakets_are_not_parsed.py - pytest.PytestWarning: usefixtu... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== __________________________________ test_steps __________________________________ pytester = def test_steps(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: Executed step by step Given I have a foo fixture with value "foo" And there is a list When I append 1 to the list And I append 2 to the list And I append 3 to the list Then foo should have value "foo" But the list should be [1, 2, 3] """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @scenario("steps.feature", "Executed step by step") def test_steps(): pass @given('I have a foo fixture with value "foo"', target_fixture="foo") def _(): return "foo" @given("there is a list", target_fixture="results") def _(): return [] @when("I append 1 to the list") def _(results): results.append(1) @when("I append 2 to the list") def _(results): results.append(2) @when("I append 3 to the list") def _(results): results.append(3) @then('foo should have value "foo"') def _(foo): assert foo == "foo" @then("the list should be [1, 2, 3]") def _(results): assert results == [1, 2, 3] """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:72: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ________________________ ERROR collecting test_steps.py ________________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_steps.py - pytest.PytestWarning: usefixtures() in test_steps.py::t... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.44s =============================== ______________ test_step_function_can_be_decorated_multiple_times ______________ pytester = def test_step_function_can_be_decorated_multiple_times(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps decoration Scenario: Step function can be decorated multiple times Given there is a foo with value 42 And there is a second foo with value 43 When I do nothing And I do nothing again Then I make no mistakes And I make no mistakes again """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario, parsers @scenario("steps.feature", "Step function can be decorated multiple times") def test_steps(): pass @given(parsers.parse("there is a foo with value {value}"), target_fixture="foo") @given(parsers.parse("there is a second foo with value {value}"), target_fixture="second_foo") def _(value): return value @when("I do nothing") @when("I do nothing again") def _(): pass @then("I make no mistakes") @then("I make no mistakes again") def _(): assert True """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:124: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_function_can_be_decorated_multiple_times0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ____ ERROR collecting test_step_function_can_be_decorated_multiple_times.py ____ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_function_can_be_decorated_multiple_times.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_step_function_can_be_decorated_multiple_times.py - pytest.PytestWa... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.54s =============================== _____________________ test_all_steps_can_provide_fixtures ______________________ pytester = def test_all_steps_can_provide_fixtures(pytester): """Test that given/when/then can all provide fixtures.""" pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Step fixture Scenario: Given steps can provide fixture Given Foo is "bar" Then foo should be "bar" Scenario: When steps can provide fixture When Foo is "baz" Then foo should be "baz" Scenario: Then steps can provide fixture Then foo is "qux" And foo should be "qux" """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, parsers, scenarios scenarios("steps.feature") @given(parsers.parse('Foo is "{value}"'), target_fixture="foo") def _(value): return value @when(parsers.parse('Foo is "{value}"'), target_fixture="foo") def _(value): return value @then(parsers.parse('Foo is "{value}"'), target_fixture="foo") def _(value): return value @then(parsers.parse('foo should be "{value}"')) def _(foo, value): assert foo == value """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=3, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 3} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:177: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_all_steps_can_provide_fixtures0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_all_steps_can_provide_fixtures.py ____________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_all_steps_can_provide_fixtures.py::test_given_steps_can_provide_fixture without arguments has no effect =========================== short test summary info ============================ ERROR test_all_steps_can_provide_fixtures.py - pytest.PytestWarning: usefixtu... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.40s =============================== _______________________________ test_when_first ________________________________ pytester = def test_when_first(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: When step can be the first When I do nothing Then I make no mistakes """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import when, then, scenario @scenario("steps.feature", "When step can be the first") def test_steps(): pass @when("I do nothing") def _(): pass @then("I make no mistakes") def _(): assert True """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:217: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_when_first0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_when_first.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_when_first.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_when_first.py - pytest.PytestWarning: usefixtures() in test_when_f... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.31s =============================== ____________________________ test_then_after_given _____________________________ pytester = def test_then_after_given(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: Then step can follow Given step Given I have a foo fixture with value "foo" Then foo should have value "foo" """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, then, scenario @scenario("steps.feature", "Then step can follow Given step") def test_steps(): pass @given('I have a foo fixture with value "foo"', target_fixture="foo") def _(): return "foo" @then('foo should have value "foo"') def _(foo): assert foo == "foo" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:257: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_then_after_given0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_then_after_given.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_then_after_given.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_then_after_given.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.36s =============================== ________________________________ test_conftest _________________________________ pytester = def test_conftest(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: All steps are declared in the conftest Given I have a bar Then bar should have value "bar" """ ), ) pytester.makeconftest( textwrap.dedent( """\ from pytest_bdd import given, then @given("I have a bar", target_fixture="bar") def _(): return "bar" @then('bar should have value "bar"') def _(bar): assert bar == "bar" """ ) ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenario @scenario("steps.feature", "All steps are declared in the conftest") def test_steps(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:307: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_conftest0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ______________________ ERROR collecting test_conftest.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_conftest.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_conftest.py - pytest.PytestWarning: usefixtures() in test_conftest... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.46s =============================== _____________________________ test_multiple_given ______________________________ pytester = def test_multiple_given(pytester): """Using the same given fixture raises an error.""" pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Scenario: Using the same given twice Given foo is "foo" And foo is "bar" Then foo should be "bar" """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import parsers, given, then, scenario @given(parsers.parse("foo is {value}"), target_fixture="foo") def _(value): return value @then(parsers.parse("foo should be {value}")) def _(foo, value): assert foo == value @scenario("steps.feature", "Using the same given twice") def test_given_twice(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:349: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_multiple_given0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting test_multiple_given.py ____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_multiple_given.py::test_given_twice without arguments has no effect =========================== short test summary info ============================ ERROR test_multiple_given.py - pytest.PytestWarning: usefixtures() in test_mu... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.37s =============================== _______________________________ test_step_hooks ________________________________ pytester = def test_step_hooks(pytester): """When step fails.""" pytester.makefile( ".feature", test=""" Scenario: When step has hook on failure Given I have a bar When it fails Scenario: When step's dependency a has failure Given I have a bar When it's dependency fails Scenario: When step is not found Given not found Scenario: When step validation error happens Given foo And foo """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, when, scenario @given('I have a bar') def _(): return 'bar' @when('it fails') def _(): raise Exception('when fails') @given('I have a bar') def _(): return 'bar' @pytest.fixture def dependency(): raise Exception('dependency fails') @when("it's dependency fails") def _(dependency): pass @scenario('test.feature', "When step's dependency a has failure") def test_when_dependency_fails(): pass @scenario('test.feature', 'When step has hook on failure') def test_when_fails(): pass @scenario('test.feature', 'When step is not found') def test_when_not_found(): pass @when('foo') def _(): return 'foo' @scenario('test.feature', 'When step validation error happens') def test_when_step_validation_error(): pass """ ) reprec = pytester.inline_run("-k test_when_fails") reprec.assertoutcome(failed=1) calls = reprec.getcalls("pytest_bdd_before_scenario") > assert calls[0].request ^^^^^^^^ E IndexError: list index out of range /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:423: IndexError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_hooks0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_hooks.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_hooks.py::test_when_dependency_fails without arguments has no effect =========================== short test summary info ============================ ERROR test_step_hooks.py - pytest.PytestWarning: usefixtures() in test_step_h... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.32s =============================== _______________________________ test_step_trace ________________________________ pytester = def test_step_trace(pytester): """Test step trace.""" pytester.makeini( """ [pytest] console_output_style=classic """ ) pytester.makefile( ".feature", test=""" Scenario: When step has failure Given I have a bar When it fails Scenario: When step is not found Given not found Scenario: When step validation error happens Given foo And foo """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, when, scenario @given('I have a bar') def _(): return 'bar' @when('it fails') def _(): raise Exception('when fails') @scenario('test.feature', 'When step has failure') def test_when_fails_inline(): pass @scenario('test.feature', 'When step has failure') def test_when_fails_decorated(): pass @scenario('test.feature', 'When step is not found') def test_when_not_found(): pass @when('foo') def _(): return 'foo' @scenario('test.feature', 'When step validation error happens') def test_when_step_validation_error(): pass """ ) result = pytester.runpytest("-k test_when_fails_inline", "-vv") > result.assert_outcomes(failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:521: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace2 configfile: tox.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_trace.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_trace.py::test_when_fails_inline without arguments has no effect =========================== short test summary info ============================ ERROR test_step_trace.py - pytest.PytestWarning: usefixtures() in test_step_trace.py::test_when_fails_inline without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.32s =============================== ____________________________ test_steps_with_yield _____________________________ pytester = def test_steps_with_yield(pytester): """Test that steps definition containing a yield statement work the same way as pytest fixture do, that is the code after the yield is executed during teardown.""" pytester.makefile( ".feature", a="""\ Feature: A feature Scenario: A scenario When I setup stuff Then stuff should be 42 """, ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenarios scenarios("a.feature") @when("I setup stuff", target_fixture="stuff") def _(): print("Setting up...") yield 42 print("Tearing down...") @then("stuff should be 42") def _(stuff): assert stuff == 42 print("Asserted stuff is 42") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:579: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps_with_yield0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_steps_with_yield.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps_with_yield.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_steps_with_yield.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ______________________________ test_tags_selector ______________________________ pytester = def test_tags_selector(pytester): """Test tests selection by tags.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = feature_tag_1 feature_tag_2 scenario_tag_01 scenario_tag_02 scenario_tag_10 scenario_tag_20 """ ), ) pytester.makefile( ".feature", test=""" @feature_tag_1 @feature_tag_2 Feature: Tags @scenario_tag_01 @scenario_tag_02 Scenario: Tags Given I have a bar @scenario_tag_10 @scenario_tag_20 Scenario: Tags 2 Given I have a bar """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' scenarios('test.feature') """ ) result = pytester.runpytest("-m", "scenario_tag_10 and not scenario_tag_01", "-vv") outcomes = result.parseoutcomes() > assert outcomes["passed"] == 1 ^^^^^^^^^^^^^^^^^^ E KeyError: 'passed' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:56: KeyError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tags_selector0 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ____________________ ERROR collecting test_tags_selector.py ____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_tags_selector.py::test_tags without arguments has no effect =========================== short test summary info ============================ ERROR test_tags_selector.py - pytest.PytestWarning: usefixtures() in test_tags_selector.py::test_tags without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _____________________ test_tags_after_background_issue_160 _____________________ pytester = def test_tags_after_background_issue_160(pytester): """Make sure using a tag after background works.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = tag """ ), ) pytester.makefile( ".feature", test=""" Feature: Tags after background Background: Given I have a bar @tag Scenario: Tags Given I have a baz Scenario: Tags 2 Given I have a baz """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' @given('I have a baz') def _(): return 'baz' scenarios('test.feature') """ ) result = pytester.runpytest("-m", "tag", "-vv").parseoutcomes() > assert result["passed"] == 1 ^^^^^^^^^^^^^^^^ E KeyError: 'passed' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:114: KeyError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tags_after_background_issue_1600 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_tags_after_background_issue_160.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_tags_after_background_issue_160.py::test_tags without arguments has no effect =========================== short test summary info ============================ ERROR test_tags_after_background_issue_160.py - pytest.PytestWarning: usefixtures() in test_tags_after_background_issue_160.py::test_tags without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _____________________________ test_apply_tag_hook ______________________________ pytester = def test_apply_tag_hook(pytester): pytester.makeconftest( """ import pytest @pytest.hookimpl(tryfirst=True) def pytest_bdd_apply_tag(tag, function): if tag == 'todo': marker = pytest.mark.skipif(True, reason="Not implemented yet") marker(function) return True else: # Fall back to pytest-bdd's default behavior return None """ ) pytester.makefile( ".feature", test=""" Feature: Customizing tag handling @todo Scenario: Tags Given I have a bar @xfail Scenario: Tags 2 Given I have a bar """, ) pytester.makepyfile( """ from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' scenarios('test.feature') """ ) result = pytester.runpytest("-rsx") > result.stdout.fnmatch_lines(["SKIP*: Not implemented yet"]) E Failed: nomatch: 'SKIP*: Not implemented yet' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_apply_tag_hook0' E and: 'plugins: bdd-7.1.2, typeguard-4.4.4' E and: 'collected 0 items / 1 error' E and: '' E and: '==================================== ERRORS ====================================' E and: '___________________ ERROR collecting test_apply_tag_hook.py ____________________' E and: '/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__' E and: ' return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec' E and: ' return self._inner_hookexec(hook_name, methods, kwargs, firstresult)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec' E and: ' return outcome.get_result()' E and: ' ^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/pluggy/_manager.py:472: in ' E and: ' lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem' E and: ' return list(collector._genfunctions(name, obj))' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions' E and: ' definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent' E and: ' return super().from_parent(parent=parent, **kw)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent' E and: ' return cls._create(parent=parent, **kw)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create' E and: ' return super().__call__(*k, **kw) # type: ignore[no-any-return,misc]' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__' E and: ' fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo' E and: ' initialnames = deduplicate_names(autousenames, usefixturesnames, argnames)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names' E and: ' return tuple(dict.fromkeys(name for seq in seqs for name in seq))' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in ' E and: ' return tuple(dict.fromkeys(name for seq in seqs for name in seq))' E and: ' ^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames' E and: ' marker_node.warn(' E and: '/usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn' E and: ' warnings.warn_explicit(' E and: 'E pytest.PytestWarning: usefixtures() in test_apply_tag_hook.py::test_tags without arguments has no effect' E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!' E and: '=============================== 1 error in 0.34s ===============================' E remains unmatched: 'SKIP*: Not implemented yet' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:160: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_apply_tag_hook0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting test_apply_tag_hook.py ____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_apply_tag_hook.py::test_tags without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.34s =============================== _____________________________ test_tag_with_spaces _____________________________ pytester = def test_tag_with_spaces(pytester): pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = test with spaces """ ), ) pytester.makeconftest( """ import pytest @pytest.hookimpl(tryfirst=True) def pytest_bdd_apply_tag(tag, function): assert tag == 'test with spaces' """ ) pytester.makefile( ".feature", test=""" Feature: Tag with spaces @test with spaces Scenario: Tags Given I have a bar """, ) pytester.makepyfile( """ from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' scenarios('test.feature') """ ) result = pytester.runpytest_subprocess() > result.stdout.fnmatch_lines(["*= 1 passed * =*"]) E Failed: nomatch: '*= 1 passed * =*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0' E and: 'configfile: pytest.ini' E and: 'plugins: bdd-7.1.2, typeguard-4.4.4' E and: 'collected 1 item' E and: '' E and: 'test_tag_with_spaces.py . [100%]' E and: '' E and: '=============================== warnings summary ===============================' E and: '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267' E and: ' ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_tag_with_spaces.py::test_tags without arguments has no effect' E and: ' @pytest.mark.usefixtures(*func_args)' E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html' E and: '========================= 1 passed, 1 warning in 0.01s =========================' E remains unmatched: '*= 1 passed * =*' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:206: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.13 -mpytest --basetemp=/tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0/runpytest-0 in: /tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0 ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collected 1 item test_tag_with_spaces.py . [100%] =============================== warnings summary =============================== ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267 ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_tag_with_spaces.py::test_tags without arguments has no effect @pytest.mark.usefixtures(*func_args) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========================= 1 passed, 1 warning in 0.01s ========================= _____________________________ test_at_in_scenario ______________________________ pytester = def test_at_in_scenario(pytester): pytester.makefile( ".feature", test=""" Feature: At sign in a scenario Scenario: Tags Given I have a foo@bar Scenario: Second Given I have a baz """, ) pytester.makepyfile( """ from pytest_bdd import given, scenarios @given('I have a foo@bar') def _(): return 'foo@bar' @given('I have a baz') def _(): return 'baz' scenarios('test.feature') """ ) strict_option = "--strict-markers" result = pytester.runpytest_subprocess(strict_option) > result.stdout.fnmatch_lines(["*= 2 passed * =*"]) E Failed: nomatch: '*= 2 passed * =*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0' E and: 'plugins: bdd-7.1.2, typeguard-4.4.4' E and: 'collected 2 items' E and: '' E and: 'test_at_in_scenario.py .. [100%]' E and: '' E and: '=============================== warnings summary ===============================' E and: '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267' E and: ' ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_tags without arguments has no effect' E and: ' @pytest.mark.usefixtures(*func_args)' E and: '' E and: '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267' E and: ' ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_second without arguments has no effect' E and: ' @pytest.mark.usefixtures(*func_args)' E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html' E and: '======================== 2 passed, 2 warnings in 0.01s =========================' E remains unmatched: '*= 2 passed * =*' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:239: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.13 -mpytest --basetemp=/tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0/runpytest-0 --strict-markers in: /tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0 ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 2 items test_at_in_scenario.py .. [100%] =============================== warnings summary =============================== ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267 ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_tags without arguments has no effect @pytest.mark.usefixtures(*func_args) ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267 ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_second without arguments has no effect @pytest.mark.usefixtures(*func_args) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ======================== 2 passed, 2 warnings in 0.01s ========================= ____________________________ test_generate_missing _____________________________ pytester = def test_generate_missing(pytester): """Test generate missing command.""" pytester.makefile( ".feature", generation=textwrap.dedent( """\ Feature: Missing code generation Background: Given I have a foobar Scenario: Scenario tests which are already bound to the tests stay as is Given I have a bar Scenario: Code is generated for scenarios which are not bound to any tests Given I have a bar Scenario: Code is generated for scenario steps which are not yet defined(implemented) Given I have a custom bar """ ), ) pytester.makepyfile( textwrap.dedent( """\ import functools from pytest_bdd import scenario, given scenario = functools.partial(scenario, "generation.feature") @given("I have a bar") def _(): return "bar" @scenario("Scenario tests which are already bound to the tests stay as is") def test_foo(): pass @scenario("Code is generated for scenario steps which are not yet defined(implemented)") def test_missing_steps(): pass """ ) ) result = pytester.runpytest("--generate-missing", "--feature", "generation.feature") > result.assert_outcomes(passed=0, failed=0, errors=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 5 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/generation/test_generate_missing.py:67: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error Scenario "Code is generated for scenario steps which are not yet defined(implemented)" is not bound to any test in the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:14 Scenario "Code is generated for scenarios which are not bound to any tests" is not bound to any test in the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:10 Scenario "Scenario tests which are already bound to the tests stay as is" is not bound to any test in the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:6 -------------------------------------------------------------------------------- Step Given "I have a foobar" is not defined in the background of the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:4 -------------------------------------------------------------------------------- Please place the code above to the test file(s): """Missing code generation feature tests.""" from pytest_bdd import ( given, scenario, then, when, ) @scenario('test_generate_missing0/generation.feature', 'Code is generated for scenario steps which are not yet defined(implemented)') def test_code_is_generated_for_scenario_steps_which_are_not_yet_definedimplemented(): """Code is generated for scenario steps which are not yet defined(implemented).""" @scenario('test_generate_missing0/generation.feature', 'Code is generated for scenarios which are not bound to any tests') def test_code_is_generated_for_scenarios_which_are_not_bound_to_any_tests(): """Code is generated for scenarios which are not bound to any tests.""" @scenario('test_generate_missing0/generation.feature', 'Scenario tests which are already bound to the tests stay as is') def test_scenario_tests_which_are_already_bound_to_the_tests_stay_as_is(): """Scenario tests which are already bound to the tests stay as is.""" @given('I have a foobar') def _(): """I have a foobar.""" raise NotImplementedError ==================================== ERRORS ==================================== __________________ ERROR collecting test_generate_missing.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_generate_missing.py::test_foo without arguments has no effect =========================== short test summary info ============================ ERROR test_generate_missing.py - pytest.PytestWarning: usefixtures() in test_... =============================== 1 error in 0.19s =============================== ___________________ test_generate_missing_with_step_parsers ____________________ pytester = def test_generate_missing_with_step_parsers(pytester): """Test that step parsers are correctly discovered and won't be part of the missing steps.""" pytester.makefile( ".feature", generation=textwrap.dedent( """\ Feature: Missing code generation with step parsers Scenario: Step parsers are correctly discovered Given I use the string parser without parameter And I use parsers.parse with parameter 1 And I use parsers.re with parameter 2 And I use parsers.cfparse with parameter 3 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import functools from pytest_bdd import scenarios, given, parsers scenarios("generation.feature") @given("I use the string parser without parameter") def _(): return None @given(parsers.parse("I use parsers.parse with parameter {param}")) def _(param): return param @given(parsers.re(r"^I use parsers.re with parameter (?P.*?)$")) def _(param): return param @given(parsers.cfparse("I use parsers.cfparse with parameter {param:d}")) def _(param): return param """ ) ) result = pytester.runpytest("--generate-missing", "--feature", "generation.feature") > result.assert_outcomes(passed=0, failed=0, errors=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 5 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/generation/test_generate_missing.py:135: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing_with_step_parsers0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error Scenario "Step parsers are correctly discovered" is not bound to any test in the feature "Missing code generation with step parsers" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing_with_step_parsers0/generation.feature:3 -------------------------------------------------------------------------------- Please place the code above to the test file(s): """Missing code generation with step parsers feature tests.""" from pytest_bdd import ( given, scenario, then, when, ) @scenario('test_generate_missing_with_step_parsers0/generation.feature', 'Step parsers are correctly discovered') def test_step_parsers_are_correctly_discovered(): """Step parsers are correctly discovered.""" ==================================== ERRORS ==================================== _________ ERROR collecting test_generate_missing_with_step_parsers.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_generate_missing_with_step_parsers.py::test_step_parsers_are_correctly_discovered without arguments has no effect =========================== short test summary info ============================ ERROR test_generate_missing_with_step_parsers.py - pytest.PytestWarning: usef... =============================== 1 error in 0.19s =============================== ____________________________ test_global_when_step _____________________________ pytester = def test_global_when_step(pytester): """Test when step defined in the parent conftest.""" pytester.makefile( ".feature", global_when=textwrap.dedent( """\ Feature: Global when Scenario: Global when step defined in parent conftest When I use a when step from the parent conftest """ ), ) pytester.makeconftest( textwrap.dedent( """\ from pytest_bdd import when from pytest_bdd.utils import dump_obj @when("I use a when step from the parent conftest") def _(): dump_obj("global when step") """ ) ) pytester.mkpydir("subdir").joinpath("test_global_when.py").write_text( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios("../global_when.feature") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/library/test_parent.py:101: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_global_when_step0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _________________ ERROR collecting subdir/test_global_when.py __________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in subdir/test_global_when.py::test_global_when_step_defined_in_parent_conftest without arguments has no effect =========================== short test summary info ============================ ERROR subdir/test_global_when.py - pytest.PytestWarning: usefixtures() in sub... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ___________________ test_uses_correct_step_in_the_hierarchy ____________________ pytester = def test_uses_correct_step_in_the_hierarchy(pytester): """ Test regression found in issue #524, where we couldn't find the correct step implemntation in the hierarchy of files/folder as expected. This test uses many files and folders that act as decoy, while the real step implementation is defined in the last file (test_b/test_b.py). """ pytester.makefile( ".feature", specific=textwrap.dedent( """\ Feature: Specificity of steps Scenario: Overlapping steps Given I have a specific thing Then pass """ ), ) pytester.makeconftest( textwrap.dedent( """\ from pytest_bdd import parsers, given, then from pytest_bdd.utils import dump_obj import pytest @given(parsers.re("(?P.*)")) def root_conftest_catchall(thing): dump_obj(thing + " (catchall) root_conftest") @given(parsers.parse("I have a {thing} thing")) def root_conftest(thing): dump_obj(thing + " root_conftest") @given("I have a specific thing") def root_conftest_specific(): dump_obj("specific" + "(specific) root_conftest") @then("pass") def _(): pass """ ) ) # Adding deceiving @when steps around the real test, so that we can check if the right one is used # the right one is the one in test_b/test_b.py # We purposefully use test_a and test_c as decoys (while test_b/test_b is "good one"), so that we can test that # we pick the right one. pytester.makepyfile( test_a="""\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_a_catch_all(thing): dump_obj(thing + " (catchall) test_a") @given(parsers.parse("I have a specific thing")) def in_root_test_a_specific(): dump_obj("specific" + " (specific) test_a") @given(parsers.parse("I have a {thing} thing")) def in_root_test_a(thing): dump_obj(thing + " root_test_a") """ ) pytester.makepyfile( test_c="""\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_c_catch_all(thing): dump_obj(thing + " (catchall) test_c") @given(parsers.parse("I have a specific thing")) def in_root_test_c_specific(): dump_obj("specific" + " (specific) test_c") @given(parsers.parse("I have a {thing} thing")) def in_root_test_c(thing): dump_obj(thing + " root_test_b") """ ) test_b_folder = pytester.mkpydir("test_b") # More decoys: test_b/test_a.py and test_b/test_c.py test_b_folder.joinpath("test_a.py").write_text( textwrap.dedent( """\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_b_test_a_catch_all(thing): dump_obj(thing + " (catchall) test_b_test_a") @given(parsers.parse("I have a specific thing")) def in_test_b_test_a_specific(): dump_obj("specific" + " (specific) test_b_test_a") @given(parsers.parse("I have a {thing} thing")) def in_test_b_test_a(thing): dump_obj(thing + " test_b_test_a") """ ) ) test_b_folder.joinpath("test_c.py").write_text( textwrap.dedent( """\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_b_test_c_catch_all(thing): dump_obj(thing + " (catchall) test_b_test_c") @given(parsers.parse("I have a specific thing")) def in_test_b_test_c_specific(): dump_obj("specific" + " (specific) test_a_test_c") @given(parsers.parse("I have a {thing} thing")) def in_test_b_test_c(thing): dump_obj(thing + " test_c_test_a") """ ) ) # Finally, the file with the actual step definition that should be used test_b_folder.joinpath("test_b.py").write_text( textwrap.dedent( """\ from pytest_bdd import scenarios, given, parsers from pytest_bdd.utils import dump_obj scenarios("../specific.feature") @given(parsers.parse("I have a {thing} thing")) def in_test_b_test_b(thing): dump_obj(f"{thing} test_b_test_b") """ ) ) test_b_folder.joinpath("test_b_alternative.py").write_text( textwrap.dedent( """\ from pytest_bdd import scenarios, given, parsers from pytest_bdd.utils import dump_obj scenarios("../specific.feature") # Here we try to use an argument different from the others, # to make sure it doesn't matter if a new step parser string is encountered. @given(parsers.parse("I have a {t} thing")) def in_test_b_test_b(t): dump_obj(f"{t} test_b_test_b") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 2,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 2} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/library/test_parent.py:403: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_uses_correct_step_in_the_hierarchy0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 2 errors ==================================== ERRORS ==================================== ______________________ ERROR collecting test_b/test_b.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_b/test_b.py::test_overlapping_steps without arguments has no effect ________________ ERROR collecting test_b/test_b_alternative.py _________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_b/test_b_alternative.py::test_overlapping_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_b/test_b.py - pytest.PytestWarning: usefixtures() in test_b/test_b... ERROR test_b/test_b_alternative.py - pytest.PytestWarning: usefixtures() in t... !!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!! ============================== 2 errors in 0.48s =============================== _________________ test_step_function_multiple_target_fixtures __________________ pytester = def test_step_function_multiple_target_fixtures(pytester): pytester.makefile( ".feature", target_fixture=textwrap.dedent( """\ Feature: Multiple target fixtures for step function Scenario: A step can be decorated multiple times with different target fixtures Given there is a foo with value "test foo" And there is a bar with value "test bar" Then foo should be "test foo" And bar should be "test bar" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenarios, parsers from pytest_bdd.utils import dump_obj scenarios("target_fixture.feature") @given(parsers.parse('there is a foo with value "{value}"'), target_fixture="foo") @given(parsers.parse('there is a bar with value "{value}"'), target_fixture="bar") def _(value): return value @then(parsers.parse('foo should be "{expected_value}"')) def _(foo, expected_value): dump_obj(foo) assert foo == expected_value @then(parsers.parse('bar should be "{expected_value}"')) def _(bar, expected_value): dump_obj(bar) assert bar == expected_value """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:74: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_function_multiple_target_fixtures0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______ ERROR collecting test_step_function_multiple_target_fixtures.py ________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_function_multiple_target_fixtures.py::test_a_step_can_be_decorated_multiple_times_with_different_target_fixtures without arguments has no effect =========================== short test summary info ============================ ERROR test_step_function_multiple_target_fixtures.py - pytest.PytestWarning: ... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.37s =============================== _______________________ test_step_functions_same_parser ________________________ pytester = def test_step_functions_same_parser(pytester): pytester.makefile( ".feature", target_fixture=textwrap.dedent( """\ Feature: A feature Scenario: A scenario Given there is a foo with value "(?P\\w+)" And there is a foo with value "testfoo" When pass Then pass """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenarios, parsers from pytest_bdd.utils import dump_obj scenarios("target_fixture.feature") STEP = r'there is a foo with value "(?P\\w+)"' @given(STEP) def _(): dump_obj(('str',)) @given(parsers.re(STEP)) def _(value): dump_obj(('re', value)) @when("pass") @then("pass") def _(): pass """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:122: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_functions_same_parser0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________ ERROR collecting test_step_functions_same_parser.py ______________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_functions_same_parser.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_step_functions_same_parser.py - pytest.PytestWarning: usefixtures(... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ____________________ test_user_implements_a_step_generator _____________________ pytester = def test_user_implements_a_step_generator(pytester): """Test advanced use cases, like the implementation of custom step generators.""" pytester.makefile( ".feature", user_step_generator=textwrap.dedent( """\ Feature: A feature Scenario: A scenario Given I have 10 EUR And the wallet is verified And I have a wallet When I pay 1 EUR Then I should have 9 EUR in my wallet """ ), ) pytester.makepyfile( textwrap.dedent( """\ import re from dataclasses import dataclass, fields import pytest from pytest_bdd import given, when, then, scenarios, parsers from pytest_bdd.utils import dump_obj @dataclass class Wallet: verified: bool amount_eur: int amount_usd: int amount_gbp: int amount_jpy: int def pay(self, amount: int, currency: str) -> None: if not self.verified: raise ValueError("Wallet account is not verified") currency = currency.lower() field = f"amount_{currency}" setattr(self, field, getattr(self, field) - amount) @pytest.fixture def wallet__verified(): return False @pytest.fixture def wallet__amount_eur(): return 0 @pytest.fixture def wallet__amount_usd(): return 0 @pytest.fixture def wallet__amount_gbp(): return 0 @pytest.fixture def wallet__amount_jpy(): return 0 @pytest.fixture() def wallet( wallet__verified, wallet__amount_eur, wallet__amount_usd, wallet__amount_gbp, wallet__amount_jpy, ): return Wallet( verified=wallet__verified, amount_eur=wallet__amount_eur, amount_usd=wallet__amount_usd, amount_gbp=wallet__amount_gbp, amount_jpy=wallet__amount_jpy, ) def generate_wallet_steps(model_name="wallet", stacklevel=1): stacklevel += 1 @given("I have a wallet", target_fixture=model_name, stacklevel=stacklevel) def _(wallet): return wallet @given( parsers.re(r"the wallet is (?Pnot)?verified"), target_fixture=f"{model_name}__verified", stacklevel=2, ) def _(negation: str): if negation: return False return True # Generate steps for currency fields: for field in fields(Wallet): match = re.fullmatch(r"amount_(?P[a-z]{3})", field.name) if not match: continue currency = match["currency"] @given( parsers.parse(f"I have {{value:d}} {currency.upper()}"), target_fixture=f"{model_name}__amount_{currency}", stacklevel=2, ) def _(value: int, _currency=currency) -> int: dump_obj(f"given {value} {_currency.upper()}") return value @when( parsers.parse(f"I pay {{value:d}} {currency.upper()}"), stacklevel=2, ) def _(wallet: Wallet, value: int, _currency=currency) -> None: dump_obj(f"pay {value} {_currency.upper()}") wallet.pay(value, _currency) @then( parsers.parse(f"I should have {{value:d}} {currency.upper()} in my wallet"), stacklevel=2, ) def _(wallet: Wallet, value: int, _currency=currency) -> None: dump_obj(f"assert {value} {_currency.upper()}") assert getattr(wallet, f"amount_{_currency}") == value generate_wallet_steps() scenarios("user_step_generator.feature") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:270: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_user_implements_a_step_generator0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_user_implements_a_step_generator.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_user_implements_a_step_generator.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_user_implements_a_step_generator.py - pytest.PytestWarning: usefix... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== ____________________________ test_step_catches_all _____________________________ pytester = def test_step_catches_all(pytester): """Test that the @step(...) decorator works for all kind of steps.""" pytester.makefile( ".feature", step_catches_all=textwrap.dedent( """\ Feature: A feature Scenario: A scenario Given foo And foo parametrized 1 When foo And foo parametrized 2 Then foo And foo parametrized 3 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import step, scenarios, parsers from pytest_bdd.utils import dump_obj scenarios("step_catches_all.feature") @step("foo") def _(): dump_obj("foo") @step(parsers.parse("foo parametrized {n:d}")) def _(n): dump_obj(("foo parametrized", n)) """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:315: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_catches_all0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_step_catches_all.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_catches_all.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_step_catches_all.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.36s =============================== _____________________________ test_given_injection _____________________________ pytester = def test_given_injection(pytester): pytester.makefile( ".feature", given=textwrap.dedent( """\ Feature: Given Scenario: Test given fixture injection Given I have injecting given Then foo should be "injected foo" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, then, scenario @scenario("given.feature", "Test given fixture injection") def test_given(): pass @given("I have injecting given", target_fixture="foo") def _(): return "injected foo" @then('foo should be "injected foo"') def _(foo): assert foo == "injected foo" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_given.py:40: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_given_injection0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting test_given_injection.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_given_injection.py::test_given without arguments has no effect =========================== short test summary info ============================ ERROR test_given_injection.py - pytest.PytestWarning: usefixtures() in test_g... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.24s =============================== ___________________ test_steps_in_feature_file_have_unicode ____________________ pytester = def test_steps_in_feature_file_have_unicode(pytester): pytester.makefile( ".feature", unicode=textwrap.dedent( """\ Feature: Юнікодні символи Scenario: Кроки в .feature файлі містять юнікод Given у мене є рядок який містить 'якийсь контент' Then I should see that the string equals to content 'якийсь контент' Scenario: Given names have unicode types Given I have an alias with a unicode type for foo Then foo should be "foo" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import sys import pytest from pytest_bdd import parsers, given, then, scenario @scenario("unicode.feature", "Кроки в .feature файлі містять юнікод") def test_unicode(): pass @pytest.fixture def string(): return {"content": ""} @given(parsers.parse(u"у мене є рядок який містить '{content}'")) def _(content, string): string["content"] = content given(u"I have an alias with a unicode type for foo", target_fixture="foo") @then(parsers.parse("I should see that the string equals to content '{content}'")) def _(content, string): assert string["content"] == content """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_unicode.py:55: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps_in_feature_file_have_unicode0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _________ ERROR collecting test_steps_in_feature_file_have_unicode.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps_in_feature_file_have_unicode.py::test_unicode without arguments has no effect =========================== short test summary info ============================ ERROR test_steps_in_feature_file_have_unicode.py - pytest.PytestWarning: usef... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.42s =============================== ______________________ test_steps_in_py_file_have_unicode ______________________ pytester = def test_steps_in_py_file_have_unicode(pytester): pytester.makefile( ".feature", unicode=textwrap.dedent( """\ Feature: Юнікодні символи Scenario: Steps in .py file have unicode Given there is an other string with content 'якийсь контент' Then I should see that the other string equals to content 'якийсь контент' """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, then, scenario @scenario("unicode.feature", "Steps in .py file have unicode") def test_unicode(): pass @pytest.fixture def string(): return {"content": ""} @given("there is an other string with content 'якийсь контент'") def _(string): string["content"] = u"с каким-то контентом" @then("I should see that the other string equals to content 'якийсь контент'") def _(string): assert string["content"] == u"с каким-то контентом" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_unicode.py:99: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps_in_py_file_have_unicode0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ____________ ERROR collecting test_steps_in_py_file_have_unicode.py ____________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps_in_py_file_have_unicode.py::test_unicode without arguments has no effect =========================== short test summary info ============================ ERROR test_steps_in_py_file_have_unicode.py - pytest.PytestWarning: usefixtur... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.30s =============================== _____________________ test_conftest_module_evaluated_twice _____________________ pytester = def test_conftest_module_evaluated_twice(pytester): """Regression test for https://github.com/pytest-dev/pytest-bdd/issues/62""" pytester.makeconftest("") subdir = pytester.mkpydir("subdir") subdir.joinpath("conftest.py").write_text( textwrap.dedent( r""" def pytest_pyfunc_call(pyfuncitem): print('\npytest_pyfunc_call hook') def pytest_generate_tests(metafunc): print('\npytest_generate_tests hook') """ ) ) subdir.joinpath("test_foo.py").write_text( textwrap.dedent( r""" from pytest_bdd import scenario @scenario('foo.feature', 'Some scenario') def test_foo(): pass """ ) ) subdir.joinpath("foo.feature").write_text( textwrap.dedent( r""" Feature: The feature Scenario: Some scenario """ ) ) result = pytester.runpytest("-s") > assert result.stdout.lines.count("pytest_pyfunc_call hook") == 1 E AssertionError: assert 0 == 1 E + where 0 = ('pytest_pyfunc_call hook') E + where = ['============================= test session starts ==============================', 'platform linux -- Python 3.13.7,.../test_conftest_module_evaluated_twice0', 'plugins: bdd-7.1.2, typeguard-4.4.4', 'collected 0 items / 1 error', '', ...].count E + where ['============================= test session starts ==============================', 'platform linux -- Python 3.13.7,.../test_conftest_module_evaluated_twice0', 'plugins: bdd-7.1.2, typeguard-4.4.4', 'collected 0 items / 1 error', '', ...] = <_pytest.pytester.LineMatcher object at 0x7f6750ebd550>.lines E + where <_pytest.pytester.LineMatcher object at 0x7f6750ebd550> = .stdout /build/reproducible-path/pytest-bdd-7.1.2/tests/test_hooks.py:46: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_conftest_module_evaluated_twice0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting subdir/test_foo.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in subdir/test_foo.py::test_foo without arguments has no effect =========================== short test summary info ============================ ERROR subdir/test_foo.py - pytest.PytestWarning: usefixtures() in subdir/test... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.37s =============================== _____________ test_pytest_bdd_after_scenario_called_after_scenario _____________ pytester = def test_pytest_bdd_after_scenario_called_after_scenario(pytester): """Regression test for https://github.com/pytest-dev/pytest-bdd/pull/577""" pytester.makefile( ".feature", foo=textwrap.dedent( """\ Feature: A feature Scenario: Scenario 1 Given foo When bar Then baz Scenario: Scenario 2 When bar Then baz """ ), ) pytester.makepyfile( """ import pytest from pytest_bdd import given, when, then, scenarios scenarios("foo.feature") @given("foo") @when("bar") @then("baz") def _(): pass """ ) pytester.makeconftest( """ from pytest_bdd.utils import dump_obj def pytest_bdd_after_scenario(request, feature, scenario): dump_obj([feature, scenario]) """ ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/test_hooks.py:129: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_pytest_bdd_after_scenario_called_after_scenario0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___ ERROR collecting test_pytest_bdd_after_scenario_called_after_scenario.py ___ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_pytest_bdd_after_scenario_called_after_scenario.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_pytest_bdd_after_scenario_called_after_scenario.py - pytest.Pytest... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.40s =============================== =========================== short test summary info ============================ FAILED tests/args/cfparse/test_args.py::test_every_step_takes_param_with_the_same_name FAILED tests/args/cfparse/test_args.py::test_argument_in_when - AssertionErro... FAILED tests/args/parse/test_args.py::test_every_steps_takes_param_with_the_same_name FAILED tests/args/parse/test_args.py::test_argument_in_when_step_1 - Assertio... FAILED tests/args/regex/test_args.py::test_every_steps_takes_param_with_the_same_name FAILED tests/args/regex/test_args.py::test_exact_match - AssertionError: asse... FAILED tests/args/regex/test_args.py::test_argument_in_when - AssertionError:... FAILED tests/args/test_common.py::test_reuse_same_step_different_converters FAILED tests/args/test_common.py::test_string_steps_dont_take_precedence - As... FAILED tests/feature/test_alias.py::test_step_alias - AssertionError: assert ... FAILED tests/feature/test_background.py::test_background_basic - AssertionErr... FAILED tests/feature/test_background.py::test_background_check_order - Assert... FAILED tests/feature/test_cucumber_json.py::test_step_trace - AssertionError:... FAILED tests/feature/test_description.py::test_description - AssertionError: ... FAILED tests/feature/test_gherkin_terminal_reporter.py::test_default_output_should_be_the_same_as_regular_terminal_reporter FAILED tests/feature/test_gherkin_terminal_reporter.py::test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line FAILED tests/feature/test_gherkin_terminal_reporter.py::test_double_verbose_mode_should_display_full_scenario_description FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[-v] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[-vv] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_should_be_displayed[] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_should_be_displayed[-v] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_should_be_displayed[-vv] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_local_variables_should_be_displayed_when_showlocals_option_is_used FAILED tests/feature/test_gherkin_terminal_reporter.py::test_step_parameters_should_be_replaced_by_their_values FAILED tests/feature/test_no_sctrict_gherkin.py::test_background_no_strict_gherkin FAILED tests/feature/test_no_sctrict_gherkin.py::test_scenario_no_strict_gherkin FAILED tests/feature/test_outline_empty_values.py::test_scenario_with_empty_example_values FAILED tests/feature/test_report.py::test_step_trace - ValueError: could not ... FAILED tests/feature/test_same_function_name.py::test_when_function_name_same_as_step_name FAILED tests/feature/test_scenario.py::test_scenario_comments - AssertionErro... FAILED tests/feature/test_scenario.py::test_angular_brakets_are_not_parsed - ... FAILED tests/feature/test_steps.py::test_steps - AssertionError: assert {'err... FAILED tests/feature/test_steps.py::test_step_function_can_be_decorated_multiple_times FAILED tests/feature/test_steps.py::test_all_steps_can_provide_fixtures - Ass... FAILED tests/feature/test_steps.py::test_when_first - AssertionError: assert ... FAILED tests/feature/test_steps.py::test_then_after_given - AssertionError: a... FAILED tests/feature/test_steps.py::test_conftest - AssertionError: assert {'... FAILED tests/feature/test_steps.py::test_multiple_given - AssertionError: ass... FAILED tests/feature/test_steps.py::test_step_hooks - IndexError: list index ... FAILED tests/feature/test_steps.py::test_step_trace - AssertionError: assert ... FAILED tests/feature/test_steps.py::test_steps_with_yield - AssertionError: a... FAILED tests/feature/test_tags.py::test_tags_selector - KeyError: 'passed' FAILED tests/feature/test_tags.py::test_tags_after_background_issue_160 - Key... FAILED tests/feature/test_tags.py::test_apply_tag_hook - Failed: nomatch: 'SK... FAILED tests/feature/test_tags.py::test_tag_with_spaces - Failed: nomatch: '*... FAILED tests/feature/test_tags.py::test_at_in_scenario - Failed: nomatch: '*=... FAILED tests/generation/test_generate_missing.py::test_generate_missing - Ass... FAILED tests/generation/test_generate_missing.py::test_generate_missing_with_step_parsers FAILED tests/library/test_parent.py::test_global_when_step - AssertionError: ... FAILED tests/library/test_parent.py::test_uses_correct_step_in_the_hierarchy FAILED tests/steps/test_common.py::test_step_function_multiple_target_fixtures FAILED tests/steps/test_common.py::test_step_functions_same_parser - Assertio... FAILED tests/steps/test_common.py::test_user_implements_a_step_generator - As... FAILED tests/steps/test_common.py::test_step_catches_all - AssertionError: as... FAILED tests/steps/test_given.py::test_given_injection - AssertionError: asse... FAILED tests/steps/test_unicode.py::test_steps_in_feature_file_have_unicode FAILED tests/steps/test_unicode.py::test_steps_in_py_file_have_unicode - Asse... FAILED tests/test_hooks.py::test_conftest_module_evaluated_twice - AssertionE... FAILED tests/test_hooks.py::test_pytest_bdd_after_scenario_called_after_scenario =========== 60 failed, 59 passed, 1 skipped, 2 deselected in 40.37s ============ E: pybuild pybuild:389: test: plugin custom failed with: exit code=1: python3.13 -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 --system=custom "--test-args={interpreter} -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters'" returned exit code 13 make[1]: *** [debian/rules:11: override_dh_auto_test] Error 25 make[1]: Leaving directory '/build/reproducible-path/pytest-bdd-7.1.2' make: *** [debian/rules:6: binary] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/1263792 and its subdirectories Starting cleanup. All cleanup done. Wed Oct 21 13:24:20 UTC 2026 - reproducible_build.sh stopped running as /tmp/jenkins-script-JOGhNQic, removing. /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z: total 16 drwxrwxr-x 2 jenkins jenkins 4096 Sep 18 07:01 b1 drwxrwxr-x 2 jenkins jenkins 4096 Sep 18 06:57 b2 -rw-rw-r-- 1 jenkins jenkins 2213 Mar 30 13:04 pytest-bdd_7.1.2-2.dsc -rw------- 1 jenkins jenkins 3334 Sep 18 06:57 rbuildlog.4EuGhlw /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z/b1: total 424 -rw-r--r-- 1 jenkins jenkins 430129 Sep 18 07:01 build.log /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z/b2: total 0 Thu Sep 18 07:01:20 UTC 2025 I: Deleting $TMPDIR on ionos5-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Wed Oct 21 01:20:30 -12 2026 I: pbuilder-time-stamp: 1792588830 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [pytest-bdd_7.1.2-2.dsc] I: copying [./pytest-bdd_7.1.2.orig.tar.gz] I: copying [./pytest-bdd_7.1.2-2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./pytest-bdd_7.1.2-2.dsc: no acceptable signature found dpkg-source: info: extracting pytest-bdd in pytest-bdd-7.1.2 dpkg-source: info: unpacking pytest-bdd_7.1.2.orig.tar.gz dpkg-source: info: unpacking pytest-bdd_7.1.2-2.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/1263792/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='f6cd56fbd9014f1daa96c72679f0d661' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='1263792' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z/pbuilderrc_7wVZ --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.SVpneJ3z/b1 --logfile b1/build.log pytest-bdd_7.1.2-2.dsc' SUDO_GID='110' SUDO_HOME='/var/lib/jenkins' SUDO_UID='105' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://213.165.73.152:3128' I: uname -a Linux ionos5-amd64 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/1263792/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3-all, python3-execnet, python3-mako, python3-parse, python3-parse-type, python3-poetry, python3-pytest, python3-typing-extensions, python3-setuptools dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19917 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-sequence-python3; however: Package dh-sequence-python3 is not installed. pbuilder-satisfydepends-dummy depends on pybuild-plugin-pyproject; however: Package pybuild-plugin-pyproject is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-execnet; however: Package python3-execnet is not installed. pbuilder-satisfydepends-dummy depends on python3-mako; however: Package python3-mako is not installed. pbuilder-satisfydepends-dummy depends on python3-parse; however: Package python3-parse is not installed. pbuilder-satisfydepends-dummy depends on python3-parse-type; however: Package python3-parse-type is not installed. pbuilder-satisfydepends-dummy depends on python3-poetry; however: Package python3-poetry is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-typing-extensions; however: Package python3-typing-extensions is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libffi8{a} libfile-stripnondeterminism-perl{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2-16{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-all{a} python3-autocommand{a} python3-bcrypt{a} python3-build{a} python3-cachecontrol{a} python3-certifi{a} python3-cffi-backend{a} python3-chardet{a} python3-charset-normalizer{a} python3-cleo{a} python3-cryptography{a} python3-distlib{a} python3-dulwich{a} python3-execnet{a} python3-fastjsonschema{a} python3-filelock{a} python3-findpython{a} python3-idna{a} python3-inflect{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.classes{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-jeepney{a} python3-keyring{a} python3-mako{a} python3-markupsafe{a} python3-minimal{a} python3-more-itertools{a} python3-msgpack{a} python3-packaging{a} python3-parse{a} python3-parse-type{a} python3-pbs-installer{a} python3-pip-whl{a} python3-pkg-resources{a} python3-pkginfo{a} python3-platformdirs{a} python3-pluggy{a} python3-poetry{a} python3-poetry-core{a} python3-pygments{a} python3-pyproject-hooks{a} python3-pytest{a} python3-rapidfuzz{a} python3-requests{a} python3-requests-toolbelt{a} python3-secretstorage{a} python3-setuptools{a} python3-setuptools-whl{a} python3-shellingham{a} python3-tomlkit{a} python3-trove-classifiers{a} python3-typeguard{a} python3-typing-extensions{a} python3-urllib3{a} python3-virtualenv{a} python3-wheel{a} python3-zipp{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python-pkginfo-doc python3-dev python3-fastimport python3-httpx python3-numpy python3-zstandard wget 0 packages upgraded, 107 newly installed, 0 to remove and 0 not upgraded. Need to get 30.2 MB of archives. After unpacking 116 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.7.2-1 [111 kB] Get: 2 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.7-1 [864 kB] Get: 3 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.7-1 [2216 kB] Get: 4 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.13.7-1 [27.2 kB] Get: 5 http://deb.debian.org/debian unstable/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian unstable/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian unstable/main amd64 tzdata all 2025b-5 [260 kB] Get: 8 http://deb.debian.org/debian unstable/main amd64 libffi8 amd64 3.5.2-2 [25.5 kB] Get: 9 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.3-3 [74.8 kB] Get: 10 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.3-3 [191 kB] Get: 11 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.7-1 [1960 kB] Get: 12 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.7-1 [761 kB] Get: 13 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.13.7-1 [10.2 kB] Get: 14 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.13.7-1 [28.3 kB] Get: 15 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.26 [27.0 kB] Get: 16 http://deb.debian.org/debian unstable/main amd64 openssl amd64 3.5.3-1 [1495 kB] Get: 17 http://deb.debian.org/debian unstable/main amd64 ca-certificates all 20250419 [162 kB] Get: 18 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 19 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 20 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 21 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.23.1-2+b1 [244 kB] Get: 22 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-2 [68.5 kB] Get: 23 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 24 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.41.1-3 [100 kB] Get: 25 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 27 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.20-1 [324 kB] Get: 28 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 29 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 30 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.17-4 [862 kB] Get: 31 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 32 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.26 [91.8 kB] Get: 33 http://deb.debian.org/debian unstable/main amd64 libtool all 2.5.4-5 [540 kB] Get: 34 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 21 [12.2 kB] Get: 35 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [19.9 kB] Get: 37 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.15.0-1 [8812 B] Get: 38 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.193-3 [192 kB] Get: 39 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.16-2 [108 kB] Get: 40 http://deb.debian.org/debian unstable/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 41 http://deb.debian.org/debian unstable/main amd64 libxml2-16 amd64 2.14.5+dfsg-0.2 [638 kB] Get: 42 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.23.1-2+b1 [1680 kB] Get: 43 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 44 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 45 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.26 [939 kB] Get: 46 http://deb.debian.org/debian unstable/main amd64 dh-python all 6.20250414 [116 kB] Get: 47 http://deb.debian.org/debian unstable/main amd64 python3-packaging all 25.0-1 [56.6 kB] Get: 48 http://deb.debian.org/debian unstable/main amd64 python3-pyproject-hooks all 1.2.0-1 [11.7 kB] Get: 49 http://deb.debian.org/debian unstable/main amd64 python3-wheel all 0.46.1-2 [21.7 kB] Get: 50 http://deb.debian.org/debian unstable/main amd64 python3-build all 1.2.2-4 [36.2 kB] Get: 51 http://deb.debian.org/debian unstable/main amd64 python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 52 http://deb.debian.org/debian unstable/main amd64 pybuild-plugin-pyproject all 6.20250414 [11.8 kB] Get: 53 http://deb.debian.org/debian unstable/main amd64 python3-all amd64 3.13.7-1 [1048 B] Get: 54 http://deb.debian.org/debian unstable/main amd64 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 python3-bcrypt amd64 4.3.0-1 [212 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 python3-certifi all 2025.1.31+ds-1 [9652 B] Get: 57 http://deb.debian.org/debian unstable/main amd64 python3-charset-normalizer amd64 3.4.3-1 [131 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 python3-idna all 3.10-1 [42.0 kB] Get: 59 http://deb.debian.org/debian unstable/main amd64 python3-urllib3 all 2.5.0-1 [116 kB] Get: 60 http://deb.debian.org/debian unstable/main amd64 python3-chardet all 5.2.0+dfsg-2 [108 kB] Get: 61 http://deb.debian.org/debian unstable/main amd64 python3-requests all 2.32.5+dfsg-1 [72.4 kB] Get: 62 http://deb.debian.org/debian unstable/main amd64 python3-msgpack amd64 1.0.3-3+b4 [84.5 kB] Get: 63 http://deb.debian.org/debian unstable/main amd64 python3-cachecontrol all 0.14.3-1 [18.4 kB] Get: 64 http://deb.debian.org/debian unstable/main amd64 python3-cffi-backend amd64 2.0.0-1 [102 kB] Get: 65 http://deb.debian.org/debian unstable/main amd64 python3-rapidfuzz amd64 3.12.2+ds-1 [1962 kB] Get: 66 http://deb.debian.org/debian unstable/main amd64 python3-cleo all 2.2.1-4 [55.7 kB] Get: 67 http://deb.debian.org/debian unstable/main amd64 python3-cryptography amd64 43.0.0-3 [941 kB] Get: 68 http://deb.debian.org/debian unstable/main amd64 python3-distlib all 0.4.0-1 [257 kB] Get: 69 http://deb.debian.org/debian unstable/main amd64 python3-dulwich amd64 0.22.7-2 [205 kB] Get: 70 http://deb.debian.org/debian unstable/main amd64 python3-execnet all 2.1.1-1 [40.2 kB] Get: 71 http://deb.debian.org/debian unstable/main amd64 python3-fastjsonschema all 2.21.1-1 [22.4 kB] Get: 72 http://deb.debian.org/debian unstable/main amd64 python3-filelock all 3.19.1-1 [12.6 kB] Get: 73 http://deb.debian.org/debian unstable/main amd64 python3-platformdirs all 4.4.0-1 [16.7 kB] Get: 74 http://deb.debian.org/debian unstable/main amd64 python3-findpython all 0.7.0-1 [15.7 kB] Get: 75 http://deb.debian.org/debian unstable/main amd64 python3-more-itertools all 10.8.0-1 [71.7 kB] Get: 76 http://deb.debian.org/debian unstable/main amd64 python3-typing-extensions all 4.15.0-1 [92.4 kB] Get: 77 http://deb.debian.org/debian unstable/main amd64 python3-typeguard all 4.4.4-1 [37.1 kB] Get: 78 http://deb.debian.org/debian unstable/main amd64 python3-inflect all 7.5.0-1 [33.0 kB] Get: 79 http://deb.debian.org/debian unstable/main amd64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 80 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.classes all 3.4.0-1 [7728 B] Get: 81 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 82 http://deb.debian.org/debian unstable/main amd64 python3-pkg-resources all 78.1.1-0.1 [224 kB] Get: 83 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 84 http://deb.debian.org/debian unstable/main amd64 python3-zipp all 3.23.0-1 [11.0 kB] Get: 85 http://deb.debian.org/debian unstable/main amd64 python3-setuptools all 78.1.1-0.1 [738 kB] Get: 86 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.context all 6.0.1-1 [8276 B] Get: 87 http://deb.debian.org/debian unstable/main amd64 python3-jeepney all 0.9.0-1 [33.4 kB] Get: 88 http://deb.debian.org/debian unstable/main amd64 python3-secretstorage all 3.4.0-1 [16.5 kB] Get: 89 http://deb.debian.org/debian unstable/main amd64 python3-keyring all 25.6.0-3 [54.9 kB] Get: 90 http://deb.debian.org/debian unstable/main amd64 python3-markupsafe amd64 2.1.5-1+b3 [14.0 kB] Get: 91 http://deb.debian.org/debian unstable/main amd64 python3-mako all 1.3.9-1 [83.6 kB] Get: 92 http://deb.debian.org/debian unstable/main amd64 python3-parse all 1.20.2-1 [26.7 kB] Get: 93 http://deb.debian.org/debian unstable/main amd64 python3-parse-type all 0.6.6-1 [24.5 kB] Get: 94 http://deb.debian.org/debian unstable/main amd64 python3-pbs-installer all 2025.08.28-1 [51.4 kB] Get: 95 http://deb.debian.org/debian unstable/main amd64 python3-pip-whl all 25.2+dfsg-1 [1428 kB] Get: 96 http://deb.debian.org/debian unstable/main amd64 python3-pkginfo all 1.12.1.2-2 [21.1 kB] Get: 97 http://deb.debian.org/debian unstable/main amd64 python3-pluggy all 1.6.0-1 [27.1 kB] Get: 98 http://deb.debian.org/debian unstable/main amd64 python3-poetry-core all 2.1.2-2 [229 kB] Get: 99 http://deb.debian.org/debian unstable/main amd64 python3-requests-toolbelt all 1.0.0-4 [40.3 kB] Get: 100 http://deb.debian.org/debian unstable/main amd64 python3-shellingham all 1.5.4-1 [11.0 kB] Get: 101 http://deb.debian.org/debian unstable/main amd64 python3-tomlkit all 0.13.2-1 [42.7 kB] Get: 102 http://deb.debian.org/debian unstable/main amd64 python3-trove-classifiers all 2025.9.8.13-1 [10.9 kB] Get: 103 http://deb.debian.org/debian unstable/main amd64 python3-setuptools-whl all 78.1.1-0.1 [1268 kB] Get: 104 http://deb.debian.org/debian unstable/main amd64 python3-virtualenv all 20.34.0+ds-1 [75.9 kB] Get: 105 http://deb.debian.org/debian unstable/main amd64 python3-poetry all 2.1.2+dfsg-1 [203 kB] Get: 106 http://deb.debian.org/debian unstable/main amd64 python3-pygments all 2.18.0+dfsg-2 [836 kB] Get: 107 http://deb.debian.org/debian unstable/main amd64 python3-pytest all 8.4.2-1 [266 kB] Fetched 30.2 MB in 13s (2311 kB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:amd64. (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 ... 19917 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.2-1_amd64.deb ... Unpacking libexpat1:amd64 (2.7.2-1) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../libpython3.13-minimal_3.13.7-1_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.7-1) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.7-1_amd64.deb ... Unpacking python3.13-minimal (3.13.7-1) ... Setting up libpython3.13-minimal:amd64 (3.13.7-1) ... Setting up libexpat1:amd64 (2.7.2-1) ... Setting up python3.13-minimal (3.13.7-1) ... Selecting previously unselected package python3-minimal. (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 ... 20251 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.7-1_amd64.deb ... Unpacking python3-minimal (3.13.7-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-5_all.deb ... Unpacking tzdata (2025b-5) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.5.2-2_amd64.deb ... Unpacking libffi8:amd64 (3.5.2-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.3-3_all.deb ... Unpacking readline-common (8.3-3) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.3-3_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.3-3) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.7-1_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.7-1) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.7-1_amd64.deb ... Unpacking python3.13 (3.13.7-1) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.7-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.7-1) ... Setting up python3-minimal (3.13.7-1) ... Selecting previously unselected package python3. (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 ... 21266 files and directories currently installed.) Preparing to unpack .../00-python3_3.13.7-1_amd64.deb ... Unpacking python3 (3.13.7-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.26_all.deb ... Unpacking sensible-utils (0.0.26) ... Selecting previously unselected package openssl. Preparing to unpack .../02-openssl_3.5.3-1_amd64.deb ... Unpacking openssl (3.5.3-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../03-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../05-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_0.23.1-2+b1_amd64.deb ... Unpacking gettext-base (0.23.1-2+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../08-libuchardet0_0.0.8-2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-2) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.41.1-3_amd64.deb ... Unpacking bsdextrautils (2.41.1-3) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../11-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../13-m4_1.4.20-1_amd64.deb ... Unpacking m4 (1.4.20-1) ... Selecting previously unselected package autoconf. Preparing to unpack .../14-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../15-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../16-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../17-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../18-libdebhelper-perl_13.26_all.deb ... Unpacking libdebhelper-perl (13.26) ... Selecting previously unselected package libtool. Preparing to unpack .../19-libtool_2.5.4-5_all.deb ... Unpacking libtool (2.5.4-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../20-dh-autoreconf_21_all.deb ... Unpacking dh-autoreconf (21) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../21-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../22-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../23-dh-strip-nondeterminism_1.15.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.15.0-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../24-libelf1t64_0.193-3_amd64.deb ... Unpacking libelf1t64:amd64 (0.193-3) ... Selecting previously unselected package dwz. Preparing to unpack .../25-dwz_0.16-2_amd64.deb ... Unpacking dwz (0.16-2) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../26-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../27-libxml2-16_2.14.5+dfsg-0.2_amd64.deb ... Unpacking libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Selecting previously unselected package gettext. Preparing to unpack .../28-gettext_0.23.1-2+b1_amd64.deb ... Unpacking gettext (0.23.1-2+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../29-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../30-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../31-debhelper_13.26_all.deb ... Unpacking debhelper (13.26) ... Selecting previously unselected package dh-python. Preparing to unpack .../32-dh-python_6.20250414_all.deb ... Unpacking dh-python (6.20250414) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../33-python3-packaging_25.0-1_all.deb ... Unpacking python3-packaging (25.0-1) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../34-python3-pyproject-hooks_1.2.0-1_all.deb ... Unpacking python3-pyproject-hooks (1.2.0-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../35-python3-wheel_0.46.1-2_all.deb ... Unpacking python3-wheel (0.46.1-2) ... Selecting previously unselected package python3-build. Preparing to unpack .../36-python3-build_1.2.2-4_all.deb ... Unpacking python3-build (1.2.2-4) ... Selecting previously unselected package python3-installer. Preparing to unpack .../37-python3-installer_0.7.0+dfsg1-3_all.deb ... Unpacking python3-installer (0.7.0+dfsg1-3) ... Selecting previously unselected package pybuild-plugin-pyproject. Preparing to unpack .../38-pybuild-plugin-pyproject_6.20250414_all.deb ... Unpacking pybuild-plugin-pyproject (6.20250414) ... Selecting previously unselected package python3-all. Preparing to unpack .../39-python3-all_3.13.7-1_amd64.deb ... Unpacking python3-all (3.13.7-1) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../40-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../41-python3-bcrypt_4.3.0-1_amd64.deb ... Unpacking python3-bcrypt (4.3.0-1) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../42-python3-certifi_2025.1.31+ds-1_all.deb ... Unpacking python3-certifi (2025.1.31+ds-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../43-python3-charset-normalizer_3.4.3-1_amd64.deb ... Unpacking python3-charset-normalizer (3.4.3-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../44-python3-idna_3.10-1_all.deb ... Unpacking python3-idna (3.10-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../45-python3-urllib3_2.5.0-1_all.deb ... Unpacking python3-urllib3 (2.5.0-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../46-python3-chardet_5.2.0+dfsg-2_all.deb ... Unpacking python3-chardet (5.2.0+dfsg-2) ... Selecting previously unselected package python3-requests. Preparing to unpack .../47-python3-requests_2.32.5+dfsg-1_all.deb ... Unpacking python3-requests (2.32.5+dfsg-1) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../48-python3-msgpack_1.0.3-3+b4_amd64.deb ... Unpacking python3-msgpack (1.0.3-3+b4) ... Selecting previously unselected package python3-cachecontrol. Preparing to unpack .../49-python3-cachecontrol_0.14.3-1_all.deb ... Unpacking python3-cachecontrol (0.14.3-1) ... Selecting previously unselected package python3-cffi-backend:amd64. Preparing to unpack .../50-python3-cffi-backend_2.0.0-1_amd64.deb ... Unpacking python3-cffi-backend:amd64 (2.0.0-1) ... Selecting previously unselected package python3-rapidfuzz. Preparing to unpack .../51-python3-rapidfuzz_3.12.2+ds-1_amd64.deb ... Unpacking python3-rapidfuzz (3.12.2+ds-1) ... Selecting previously unselected package python3-cleo. Preparing to unpack .../52-python3-cleo_2.2.1-4_all.deb ... Unpacking python3-cleo (2.2.1-4) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../53-python3-cryptography_43.0.0-3_amd64.deb ... Unpacking python3-cryptography (43.0.0-3) ... Selecting previously unselected package python3-distlib. Preparing to unpack .../54-python3-distlib_0.4.0-1_all.deb ... Unpacking python3-distlib (0.4.0-1) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../55-python3-dulwich_0.22.7-2_amd64.deb ... Unpacking python3-dulwich (0.22.7-2) ... Selecting previously unselected package python3-execnet. Preparing to unpack .../56-python3-execnet_2.1.1-1_all.deb ... Unpacking python3-execnet (2.1.1-1) ... Selecting previously unselected package python3-fastjsonschema. Preparing to unpack .../57-python3-fastjsonschema_2.21.1-1_all.deb ... Unpacking python3-fastjsonschema (2.21.1-1) ... Selecting previously unselected package python3-filelock. Preparing to unpack .../58-python3-filelock_3.19.1-1_all.deb ... Unpacking python3-filelock (3.19.1-1) ... Selecting previously unselected package python3-platformdirs. Preparing to unpack .../59-python3-platformdirs_4.4.0-1_all.deb ... Unpacking python3-platformdirs (4.4.0-1) ... Selecting previously unselected package python3-findpython. Preparing to unpack .../60-python3-findpython_0.7.0-1_all.deb ... Unpacking python3-findpython (0.7.0-1) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../61-python3-more-itertools_10.8.0-1_all.deb ... Unpacking python3-more-itertools (10.8.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../62-python3-typing-extensions_4.15.0-1_all.deb ... Unpacking python3-typing-extensions (4.15.0-1) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../63-python3-typeguard_4.4.4-1_all.deb ... Unpacking python3-typeguard (4.4.4-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../64-python3-inflect_7.5.0-1_all.deb ... Unpacking python3-inflect (7.5.0-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../65-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-jaraco.classes. Preparing to unpack .../66-python3-jaraco.classes_3.4.0-1_all.deb ... Unpacking python3-jaraco.classes (3.4.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../67-python3-jaraco.functools_4.1.0-1_all.deb ... Unpacking python3-jaraco.functools (4.1.0-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../68-python3-pkg-resources_78.1.1-0.1_all.deb ... Unpacking python3-pkg-resources (78.1.1-0.1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../69-python3-jaraco.text_4.0.0-1_all.deb ... Unpacking python3-jaraco.text (4.0.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../70-python3-zipp_3.23.0-1_all.deb ... Unpacking python3-zipp (3.23.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../71-python3-setuptools_78.1.1-0.1_all.deb ... Unpacking python3-setuptools (78.1.1-0.1) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../72-python3-jaraco.context_6.0.1-1_all.deb ... Unpacking python3-jaraco.context (6.0.1-1) ... Selecting previously unselected package python3-jeepney. Preparing to unpack .../73-python3-jeepney_0.9.0-1_all.deb ... Unpacking python3-jeepney (0.9.0-1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../74-python3-secretstorage_3.4.0-1_all.deb ... Unpacking python3-secretstorage (3.4.0-1) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../75-python3-keyring_25.6.0-3_all.deb ... Unpacking python3-keyring (25.6.0-3) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../76-python3-markupsafe_2.1.5-1+b3_amd64.deb ... Unpacking python3-markupsafe (2.1.5-1+b3) ... Selecting previously unselected package python3-mako. Preparing to unpack .../77-python3-mako_1.3.9-1_all.deb ... Unpacking python3-mako (1.3.9-1) ... Selecting previously unselected package python3-parse. Preparing to unpack .../78-python3-parse_1.20.2-1_all.deb ... Unpacking python3-parse (1.20.2-1) ... Selecting previously unselected package python3-parse-type. Preparing to unpack .../79-python3-parse-type_0.6.6-1_all.deb ... Unpacking python3-parse-type (0.6.6-1) ... Selecting previously unselected package python3-pbs-installer. Preparing to unpack .../80-python3-pbs-installer_2025.08.28-1_all.deb ... Unpacking python3-pbs-installer (2025.08.28-1) ... Selecting previously unselected package python3-pip-whl. Preparing to unpack .../81-python3-pip-whl_25.2+dfsg-1_all.deb ... Unpacking python3-pip-whl (25.2+dfsg-1) ... Selecting previously unselected package python3-pkginfo. Preparing to unpack .../82-python3-pkginfo_1.12.1.2-2_all.deb ... Unpacking python3-pkginfo (1.12.1.2-2) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../83-python3-pluggy_1.6.0-1_all.deb ... Unpacking python3-pluggy (1.6.0-1) ... Selecting previously unselected package python3-poetry-core. Preparing to unpack .../84-python3-poetry-core_2.1.2-2_all.deb ... Unpacking python3-poetry-core (2.1.2-2) ... Selecting previously unselected package python3-requests-toolbelt. Preparing to unpack .../85-python3-requests-toolbelt_1.0.0-4_all.deb ... Unpacking python3-requests-toolbelt (1.0.0-4) ... Selecting previously unselected package python3-shellingham. Preparing to unpack .../86-python3-shellingham_1.5.4-1_all.deb ... Unpacking python3-shellingham (1.5.4-1) ... Selecting previously unselected package python3-tomlkit. Preparing to unpack .../87-python3-tomlkit_0.13.2-1_all.deb ... Unpacking python3-tomlkit (0.13.2-1) ... Selecting previously unselected package python3-trove-classifiers. Preparing to unpack .../88-python3-trove-classifiers_2025.9.8.13-1_all.deb ... Unpacking python3-trove-classifiers (2025.9.8.13-1) ... Selecting previously unselected package python3-setuptools-whl. Preparing to unpack .../89-python3-setuptools-whl_78.1.1-0.1_all.deb ... Unpacking python3-setuptools-whl (78.1.1-0.1) ... Selecting previously unselected package python3-virtualenv. Preparing to unpack .../90-python3-virtualenv_20.34.0+ds-1_all.deb ... Unpacking python3-virtualenv (20.34.0+ds-1) ... Selecting previously unselected package python3-poetry. Preparing to unpack .../91-python3-poetry_2.1.2+dfsg-1_all.deb ... Unpacking python3-poetry (2.1.2+dfsg-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../92-python3-pygments_2.18.0+dfsg-2_all.deb ... Unpacking python3-pygments (2.18.0+dfsg-2) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../93-python3-pytest_8.4.2-1_all.deb ... Unpacking python3-pytest (8.4.2-1) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up python3-setuptools-whl (78.1.1-0.1) ... Setting up bsdextrautils (2.41.1-3) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Setting up libdebhelper-perl (13.26) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up gettext-base (0.23.1-2+b1) ... Setting up m4 (1.4.20-1) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.193-3) ... Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' Local time is now: Wed Oct 21 13:23:00 UTC 2026. Universal Time is now: Wed Oct 21 13:23:00 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up autopoint (0.23.1-2) ... Setting up autoconf (2.72-3.1) ... Setting up libffi8:amd64 (3.5.2-2) ... Setting up dwz (0.16-2) ... Setting up sensible-utils (0.0.26) ... Setting up libuchardet0:amd64 (0.0.8-2) ... Setting up netbase (6.5) ... Setting up openssl (3.5.3-1) ... Setting up readline-common (8.3-3) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... Setting up gettext (0.23.1-2+b1) ... Setting up libtool (2.5.4-5) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (21) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up libreadline8t64:amd64 (8.3-3) ... Setting up dh-strip-nondeterminism (1.15.0-1) ... Setting up groff-base (1.23.0-9) ... Setting up libpython3.13-stdlib:amd64 (3.13.7-1) ... Setting up libpython3-stdlib:amd64 (3.13.7-1) ... Setting up python3.13 (3.13.7-1) ... Setting up python3-pip-whl (25.2+dfsg-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up python3 (3.13.7-1) ... Setting up python3-distlib (0.4.0-1) ... Setting up python3-zipp (3.23.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up python3-markupsafe (2.1.5-1+b3) ... Setting up python3-platformdirs (4.4.0-1) ... Setting up python3-pygments (2.18.0+dfsg-2) ... Setting up python3-packaging (25.0-1) ... Setting up python3-chardet (5.2.0+dfsg-2) ... Setting up python3-pyproject-hooks (1.2.0-1) ... Setting up python3-certifi (2025.1.31+ds-1) ... Setting up python3-poetry-core (2.1.2-2) ... Setting up python3-idna (3.10-1) ... Setting up python3-typing-extensions (4.15.0-1) ... Setting up python3-jeepney (0.9.0-1) ... Setting up python3-installer (0.7.0+dfsg1-3) ... Setting up python3-urllib3 (2.5.0-1) ... Setting up python3-pluggy (1.6.0-1) ... Setting up python3-fastjsonschema (2.21.1-1) ... Setting up python3-trove-classifiers (2025.9.8.13-1) ... Setting up python3-pbs-installer (2025.08.28-1) ... Setting up python3-dulwich (0.22.7-2) ... Setting up python3-parse (1.20.2-1) ... Setting up python3-msgpack (1.0.3-3+b4) ... Setting up python3-execnet (2.1.1-1) ... Setting up python3-shellingham (1.5.4-1) ... Setting up python3-tomlkit (0.13.2-1) ... Setting up python3-cffi-backend:amd64 (2.0.0-1) ... Setting up python3-mako (1.3.9-1) ... Setting up dh-python (6.20250414) ... Setting up python3-more-itertools (10.8.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-rapidfuzz (3.12.2+ds-1) ... Setting up python3-filelock (3.19.1-1) ... Setting up python3-findpython (0.7.0-1) ... Setting up python3-jaraco.classes (3.4.0-1) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-jaraco.context (6.0.1-1) ... Setting up python3-pkginfo (1.12.1.2-2) ... Setting up python3-charset-normalizer (3.4.3-1) ... Setting up python3-pytest (8.4.2-1) ... Setting up python3-bcrypt (4.3.0-1) ... Setting up python3-typeguard (4.4.4-1) ... Setting up python3-virtualenv (20.34.0+ds-1) ... Setting up python3-all (3.13.7-1) ... Setting up debhelper (13.26) ... Setting up python3-wheel (0.46.1-2) ... Setting up python3-inflect (7.5.0-1) ... Setting up python3-parse-type (0.6.6-1) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-cryptography (43.0.0-3) ... Setting up python3-requests (2.32.5+dfsg-1) ... Setting up python3-cleo (2.2.1-4) ... Setting up python3-cachecontrol (0.14.3-1) ... Setting up python3-build (1.2.2-4) ... Setting up python3-pkg-resources (78.1.1-0.1) ... Setting up python3-requests-toolbelt (1.0.0-4) ... Setting up python3-setuptools (78.1.1-0.1) ... Setting up pybuild-plugin-pyproject (6.20250414) ... Setting up python3-secretstorage (3.4.0-1) ... Setting up python3-keyring (25.6.0-3) ... Setting up python3-poetry (2.1.2+dfsg-1) ... Processing triggers for libc-bin (2.41-12) ... Processing triggers for ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/pytest-bdd-7.1.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../pytest-bdd_7.1.2-2_source.changes dpkg-buildpackage: info: source package pytest-bdd dpkg-buildpackage: info: source version 7.1.2-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Alexandre Detiste dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" module I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/pytest-bdd-7.1.2/.pybuild/cpython3_3.13_pytest-bdd * Building wheel... Successfully built pytest_bdd-7.1.2-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/pytest-bdd-7.1.2' dh_auto_install I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir dh_auto_test -- --system=custom --test-args="{interpreter} -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters'" I: pybuild base:311: python3.13 -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters' ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /build/reproducible-path/pytest-bdd-7.1.2 configfile: pytest.ini testpaths: tests plugins: bdd-7.1.2, typeguard-4.4.4 collected 122 items / 2 deselected / 120 selected tests/args/cfparse/test_args.py FF [ 1%] tests/args/parse/test_args.py FF [ 3%] tests/args/regex/test_args.py FFF [ 5%] tests/args/test_common.py FF [ 7%] tests/feature/test_alias.py F [ 8%] tests/feature/test_background.py FF [ 10%] tests/feature/test_cucumber_json.py F [ 10%] tests/feature/test_description.py F [ 11%] tests/feature/test_feature_base_dir.py ....... [ 17%] tests/feature/test_gherkin_terminal_reporter.py FF.FFFFFFFFF [ 27%] tests/feature/test_multiline.py ..... [ 31%] tests/feature/test_no_scenario.py . [ 32%] tests/feature/test_no_sctrict_gherkin.py FF [ 34%] tests/feature/test_outline.py .... [ 37%] tests/feature/test_outline_empty_values.py F [ 38%] tests/feature/test_report.py Fs [ 40%] tests/feature/test_same_function_name.py F [ 40%] tests/feature/test_scenario.py ....F........F [ 52%] tests/feature/test_scenarios.py ........ [ 59%] tests/feature/test_steps.py FFFFFFFFFF [ 67%] tests/feature/test_tags.py FFFFF....... [ 77%] tests/feature/test_wrong.py . [ 78%] tests/generation/test_generate_missing.py .FF [ 80%] tests/library/test_parent.py .F..F [ 85%] tests/scripts/test_generate.py . [ 85%] tests/scripts/test_main.py . [ 86%] tests/scripts/test_migrate.py . [ 87%] tests/steps/test_common.py ...FFFF. [ 94%] tests/steps/test_given.py F [ 95%] tests/steps/test_unicode.py FF [ 96%] tests/test_hooks.py F.F. [100%] =================================== FAILURES =================================== ________________ test_every_step_takes_param_with_the_same_name ________________ pytester = def test_every_step_takes_param_with_the_same_name(pytester): """Test every step takes param with the same name.""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 1 Euro When I pay 2 Euro And I pay 1 Euro Then I should have 0 Euro And I should have 999999 Euro # In my dream... """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Every step takes a parameter with the same name") def test_arguments(): pass @pytest.fixture def values(): return [1, 2, 1, 0, 999999] @given(parsers.cfparse("I have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) @when(parsers.cfparse("I pay {euro:d} Euro")) def _(euro, values, request): assert euro == values.pop(0) @then(parsers.cfparse("I should have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/cfparse/test_args.py:57: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_every_step_takes_param_with_the_same_name0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ______ ERROR collecting test_every_step_takes_param_with_the_same_name.py ______ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_every_step_takes_param_with_the_same_name.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_every_step_takes_param_with_the_same_name.py - pytest.PytestWarnin... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.87s =============================== ____________________________ test_argument_in_when _____________________________ pytester = def test_argument_in_when(pytester): """Test step arguments in when steps.""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Argument in when Given I have an argument 1 When I get argument 5 Then My argument should be 5 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Argument in when") def test_arguments(): pass @pytest.fixture def arguments(): return dict() @given(parsers.cfparse("I have an argument {arg:Number}", extra_types=dict(Number=int))) def _(arguments, arg): arguments["arg"] = arg @when(parsers.cfparse("I get argument {arg:d}")) def _(arguments, arg): arguments["arg"] = arg @then(parsers.cfparse("My argument should be {arg:d}")) def _(arguments, arg): assert arguments["arg"] == arg """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/cfparse/test_args.py:109: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_argument_in_when0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_argument_in_when.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_argument_in_when.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_argument_in_when.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.40s =============================== _______________ test_every_steps_takes_param_with_the_same_name ________________ pytester = def test_every_steps_takes_param_with_the_same_name(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 1 Euro When I pay 2 Euro And I pay 1 Euro Then I should have 0 Euro And I should have 999999 Euro # In my dream... """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Every step takes a parameter with the same name") def test_arguments(): pass @pytest.fixture def values(): return [1, 2, 1, 0, 999999] @given(parsers.parse("I have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) @when(parsers.parse("I pay {euro:d} Euro")) def _(euro, values, request): assert euro == values.pop(0) @then(parsers.parse("I should have {euro:d} Euro")) def _(euro, values): assert euro == values.pop(0) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/parse/test_args.py:56: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_every_steps_takes_param_with_the_same_name0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____ ERROR collecting test_every_steps_takes_param_with_the_same_name.py ______ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_every_steps_takes_param_with_the_same_name.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_every_steps_takes_param_with_the_same_name.py - pytest.PytestWarni... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.30s =============================== _________________________ test_argument_in_when_step_1 _________________________ pytester = def test_argument_in_when_step_1(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Argument in when Given I have an argument 1 When I get argument 5 Then My argument should be 5 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import parsers, given, when, then, scenario @pytest.fixture def arguments(): return dict() @scenario("arguments.feature", "Argument in when") def test_arguments(): pass @given(parsers.parse("I have an argument {arg:Number}", extra_types=dict(Number=int))) def _(arguments, arg): arguments["arg"] = arg @when(parsers.parse("I get argument {arg:d}")) def _(arguments, arg): arguments["arg"] = arg @then(parsers.parse("My argument should be {arg:d}")) def _(arguments, arg): assert arguments["arg"] == arg """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/parse/test_args.py:107: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_argument_in_when_step_10 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________ ERROR collecting test_argument_in_when_step_1.py _______________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_argument_in_when_step_1.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_argument_in_when_step_1.py - pytest.PytestWarning: usefixtures() i... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 1.04s =============================== _______________ test_every_steps_takes_param_with_the_same_name ________________ pytester = def test_every_steps_takes_param_with_the_same_name(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 1 Euro When I pay 2 Euro And I pay 1 Euro Then I should have 0 Euro And I should have 999999 Euro """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenario @scenario("arguments.feature", "Every step takes a parameter with the same name") def test_arguments(): pass @pytest.fixture def values(): return [1, 2, 1, 0, 999999] @given(parsers.re(r"I have (?P\d+) Euro"), converters=dict(euro=int)) def _(euro, values): assert euro == values.pop(0) @when(parsers.re(r"I pay (?P\d+) Euro"), converters=dict(euro=int)) def _(euro, values, request): assert euro == values.pop(0) @then(parsers.re(r"I should have (?P\d+) Euro"), converters=dict(euro=int)) def _(euro, values): assert euro == values.pop(0) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/regex/test_args.py:55: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_every_steps_takes_param_with_the_same_name1 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____ ERROR collecting test_every_steps_takes_param_with_the_same_name.py ______ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_every_steps_takes_param_with_the_same_name.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_every_steps_takes_param_with_the_same_name.py - pytest.PytestWarni... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.73s =============================== _______________________________ test_exact_match _______________________________ pytester = def test_exact_match(pytester): """Test that parsers.re does an exact match (fullmatch) of the whole string. This tests exists because in the past we only used re.match, which only finds a match at the beginning of the string, so if there were any more characters not matching at the end, they were ignored""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Every step takes a parameter with the same name Given I have 2 Euro # Step that should not be found: When I pay 1 Euro by mistake Then I should have 1 Euro left """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenarios scenarios("arguments.feature") @given(parsers.re(r"I have (?P\d+) Euro"), converters={"amount": int}, target_fixture="wallet") def _(amount): return {"EUR": amount} # Purposefully using a re that will not match the step "When I pay 1 Euro and 50 cents" @when(parsers.re(r"I pay (?P\d+) Euro"), converters={"amount": int}) def _(amount, wallet): wallet["EUR"] -= amount @then(parsers.re(r"I should have (?P\d+) Euro left"), converters={"amount": int}) def _(amount, wallet): assert wallet["EUR"] == amount """ ) ) result = pytester.runpytest() > result.assert_outcomes(failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/regex/test_args.py:105: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_exact_match0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_exact_match.py _____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_exact_match.py::test_every_step_takes_a_parameter_with_the_same_name without arguments has no effect =========================== short test summary info ============================ ERROR test_exact_match.py - pytest.PytestWarning: usefixtures() in test_exact... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.20s =============================== ____________________________ test_argument_in_when _____________________________ pytester = def test_argument_in_when(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step arguments Scenario: Argument in when, step 1 Given I have an argument 1 When I get argument 5 Then My argument should be 5 """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenario @pytest.fixture def arguments(): return dict() @scenario("arguments.feature", "Argument in when, step 1") def test_arguments(): pass @given(parsers.re(r"I have an argument (?P\d+)")) def _(arguments, arg): arguments["arg"] = arg @when(parsers.re(r"I get argument (?P\d+)")) def _(arguments, arg): arguments["arg"] = arg @then(parsers.re(r"My argument should be (?P\d+)")) def _(arguments, arg): assert arguments["arg"] == arg """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/regex/test_args.py:159: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_argument_in_when1 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_argument_in_when.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_argument_in_when.py::test_arguments without arguments has no effect =========================== short test summary info ============================ ERROR test_argument_in_when.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.28s =============================== __________________ test_reuse_same_step_different_converters ___________________ pytester = def test_reuse_same_step_different_converters(pytester): pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Reuse same step with different converters Scenario: Step function should be able to be decorated multiple times with different converters Given I have a foo with int value 42 And I have a foo with str value 42 And I have a foo with float value 42 When pass Then pass """ ), ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenarios from pytest_bdd.utils import dump_obj scenarios("arguments.feature") @given(parsers.re(r"^I have a foo with int value (?P.*?)$"), converters={"value": int}) @given(parsers.re(r"^I have a foo with str value (?P.*?)$"), converters={"value": str}) @given(parsers.re(r"^I have a foo with float value (?P.*?)$"), converters={"value": float}) def _(value): dump_obj(value) return value @then("pass") @when("pass") def _(): pass """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/test_common.py:47: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_reuse_same_step_different_converters0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ________ ERROR collecting test_reuse_same_step_different_converters.py _________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_reuse_same_step_different_converters.py::test_step_function_should_be_able_to_be_decorated_multiple_times_with_different_converters without arguments has no effect =========================== short test summary info ============================ ERROR test_reuse_same_step_different_converters.py - pytest.PytestWarning: us... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== ____________________ test_string_steps_dont_take_precedence ____________________ pytester = def test_string_steps_dont_take_precedence(pytester): """Test that normal steps don't take precedence over the other steps.""" pytester.makefile( ".feature", arguments=textwrap.dedent( """\ Feature: Step precedence Scenario: String steps don't take precedence over other steps Given I have a foo with value 42 When pass Then pass """ ), ) pytester.makeconftest( textwrap.dedent( """ from pytest_bdd import given, when, then, parsers from pytest_bdd.utils import dump_obj @given("I have a foo with value 42") def _(): dump_obj("str") return 42 @then("pass") @when("pass") def _(): pass """ ) ) pytester.makepyfile( textwrap.dedent( r""" import pytest from pytest_bdd import parsers, given, when, then, scenarios from pytest_bdd.utils import dump_obj scenarios("arguments.feature") @given(parsers.re(r"^I have a foo with value (?P.*?)$")) def _(value): dump_obj("re") return 42 """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/args/test_common.py:113: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_string_steps_dont_take_precedence0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_string_steps_dont_take_precedence.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_string_steps_dont_take_precedence.py::test_string_steps_dont_take_precedence_over_other_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_string_steps_dont_take_precedence.py - pytest.PytestWarning: usefi... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== _______________________________ test_step_alias ________________________________ pytester = def test_step_alias(pytester): pytester.makefile( ".feature", alias=textwrap.dedent( """\ Feature: Step aliases Scenario: Multiple step aliases Given I have an empty list And I have foo (which is 1) in my list # Alias of the "I have foo (which is 1) in my list" And I have bar (alias of foo) in my list When I do crash (which is 2) And I do boom (alias of crash) Then my list should be [1, 1, 2, 2] """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenario @scenario("alias.feature", "Multiple step aliases") def test_alias(): pass @given("I have an empty list", target_fixture="results") def _(): return [] @given("I have foo (which is 1) in my list") @given("I have bar (alias of foo) in my list") def _(results): results.append(1) @when("I do crash (which is 2)") @when("I do boom (alias of crash)") def _(results): results.append(2) @then("my list should be [1, 1, 2, 2]") def _(results): assert results == [1, 1, 2, 2] """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_alias.py:60: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_alias0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_alias.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_alias.py::test_alias without arguments has no effect =========================== short test summary info ============================ ERROR test_step_alias.py - pytest.PytestWarning: usefixtures() in test_step_a... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.32s =============================== ____________________________ test_background_basic _____________________________ pytester = def test_background_basic(pytester): """Test feature background.""" pytester.makefile(".feature", background=textwrap.dedent(FEATURE)) pytester.makeconftest(textwrap.dedent(STEPS)) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenario @scenario("background.feature", "Basic usage") def test_background(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_background.py:95: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_background_basic0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_background_basic.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_background_basic.py::test_background without arguments has no effect =========================== short test summary info ============================ ERROR test_background_basic.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== _________________________ test_background_check_order __________________________ pytester = def test_background_check_order(pytester): """Test feature background to ensure that background steps are executed first.""" pytester.makefile(".feature", background=textwrap.dedent(FEATURE)) pytester.makeconftest(textwrap.dedent(STEPS)) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenario @scenario("background.feature", "Background steps are executed first") def test_background(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_background.py:118: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_background_check_order0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________ ERROR collecting test_background_check_order.py ________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_background_check_order.py::test_background without arguments has no effect =========================== short test summary info ============================ ERROR test_background_check_order.py - pytest.PytestWarning: usefixtures() in... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.28s =============================== _______________________________ test_step_trace ________________________________ pytester = def test_step_trace(pytester): """Test step trace.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = scenario-passing-tag scenario-failing-tag scenario-outline-passing-tag feature-tag """ ), ) pytester.makefile( ".feature", test=textwrap.dedent( """ @feature-tag Feature: One passing scenario, one failing scenario @scenario-passing-tag Scenario: Passing Given a passing step And some other passing step @scenario-failing-tag Scenario: Failing Given a passing step And a failing step @scenario-outline-passing-tag Scenario Outline: Passing outline Given type and value Examples: example1 | type | value | | str | hello | | int | 42 | | float | 1.0 | """ ), ) pytester.makepyfile( textwrap.dedent( """ import pytest from pytest_bdd import given, when, scenario, parsers @given('a passing step') def _(): return 'pass' @given('some other passing step') def _(): return 'pass' @given('a failing step') def _(): raise Exception('Error') @given(parsers.parse('type {type} and value {value}')) def _(): return 'pass' @scenario('test.feature', 'Passing') def test_passing(): pass @scenario('test.feature', 'Failing') def test_failing(): pass @scenario('test.feature', 'Passing outline') def test_passing_outline(): pass """ ) ) result, jsonobject = runandparse(pytester) > result.assert_outcomes(passed=4, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 3 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 4} E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_cucumber_json.py:113: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace0 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_trace.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_trace.py::test_passing without arguments has no effect - generated json file: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace0/cucumber.json - =========================== short test summary info ============================ ERROR test_step_trace.py - pytest.PytestWarning: usefixtures() in test_step_t... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== _______________________________ test_description _______________________________ pytester = def test_description(pytester): """Test description for the feature.""" pytester.makefile( ".feature", description=textwrap.dedent( """\ Feature: Description In order to achieve something I want something Because it will be cool Some description goes here. Scenario: Description Also, the scenario can have a description. It goes here between the scenario name and the first step. Given I have a bar """ ), ) pytester.makepyfile( textwrap.dedent( """\ import textwrap from pytest_bdd import given, scenario @scenario("description.feature", "Description") def test_description(): pass @given("I have a bar") def _(): return "bar" def test_feature_description(): assert test_description.__scenario__.feature.description == textwrap.dedent( \"\"\"\\ In order to achieve something I want something Because it will be cool Some description goes here.\"\"\" ) def test_scenario_description(): assert test_description.__scenario__.description == textwrap.dedent( \"\"\"\\ Also, the scenario can have a description. It goes here between the scenario name and the first step.\"\"\" ) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=3) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 3} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_description.py:70: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_description0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_description.py _____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_description.py::test_description without arguments has no effect =========================== short test summary info ============================ ERROR test_description.py - pytest.PytestWarning: usefixtures() in test_descr... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.61s =============================== _____ test_default_output_should_be_the_same_as_regular_terminal_reporter ______ pytester = def test_default_output_should_be_the_same_as_regular_terminal_reporter(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile(TEST) regular = pytester.runpytest() gherkin = pytester.runpytest("--gherkin-terminal-reporter") > regular.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:45: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_default_output_should_be_the_same_as_regular_terminal_reporter0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_default_output_should_be_the_same_as_regular_terminal_reporter.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_default_output_should_be_the_same_as_regular_terminal_reporter.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_default_output_should_be_the_same_as_regular_terminal_reporter.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_default_output_should_be_the_same_as_regular_terminal_reporter0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_default_output_should_be_the_same_as_regular_terminal_reporter.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_default_output_should_be_the_same_as_regular_terminal_reporter.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_default_output_should_be_the_same_as_regular_terminal_reporter.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.25s =============================== _ test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line _ pytester = def test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile(TEST) result = pytester.runpytest("--gherkin-terminal-reporter", "-v") > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:58: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line0 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== ______ test_double_verbose_mode_should_display_full_scenario_description _______ pytester = def test_double_verbose_mode_should_display_full_scenario_description(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile(TEST) result = pytester.runpytest("--gherkin-terminal-reporter", "-vv") > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:89: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_double_verbose_mode_should_display_full_scenario_description0 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_double_verbose_mode_should_display_full_scenario_description.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_double_verbose_mode_should_display_full_scenario_description.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_double_verbose_mode_should_display_full_scenario_description.py - pytest.PytestWarning: usefixtures() in test_double_verbose_mode_should_display_full_scenario_description.py::test_scenario_1 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== ____________________ test_error_message_for_missing_steps[] ____________________ pytester = verbosity = '' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_for_missing_steps(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios('.') """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_for_missing_steps0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_error_message_for_missing_steps.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_for_missing_steps.py - pytest.PytestWarning: usefixt... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.31s =============================== ___________________ test_error_message_for_missing_steps[-v] ___________________ pytester = verbosity = '-v' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_for_missing_steps(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios('.') """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_for_missing_steps1 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_error_message_for_missing_steps.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_for_missing_steps.py - pytest.PytestWarning: usefixt... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.43s =============================== __________________ test_error_message_for_missing_steps[-vv] ___________________ pytester = verbosity = '-vv' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_for_missing_steps(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios('.') """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_for_missing_steps2 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_error_message_for_missing_steps.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_for_missing_steps.py - pytest.PytestWarning: usefixtures() in test_error_message_for_missing_steps.py::test_scenario_example_1 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.48s =============================== ___________________ test_error_message_should_be_displayed[] ___________________ pytester = verbosity = '' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_should_be_displayed(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:148: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_should_be_displayed0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_error_message_should_be_displayed.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_should_be_displayed.py - pytest.PytestWarning: usefi... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== __________________ test_error_message_should_be_displayed[-v] __________________ pytester = verbosity = '-v' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_should_be_displayed(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:148: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_should_be_displayed1 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_error_message_should_be_displayed.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_should_be_displayed.py - pytest.PytestWarning: usefi... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== _________________ test_error_message_should_be_displayed[-vv] __________________ pytester = verbosity = '-vv' @pytest.mark.parametrize("verbosity", ["", "-v", "-vv"]) def test_error_message_should_be_displayed(pytester, verbosity): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", verbosity) > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:148: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_error_message_should_be_displayed2 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_error_message_should_be_displayed.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_error_message_should_be_displayed.py - pytest.PytestWarning: usefixtures() in test_error_message_should_be_displayed.py::test_scenario_1 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== ___ test_local_variables_should_be_displayed_when_showlocals_option_is_used ____ pytester = def test_local_variables_should_be_displayed_when_showlocals_option_is_used(pytester): pytester.makefile(".feature", test=FEATURE) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @given('there is a bar') def _(): return 'bar' @when('the bar is accessed') def _(): pass @then('world explodes') def _(): local_var = "MULTIPASS" raise Exception("BIGBADABOOM") @scenario('test.feature', 'Scenario example 1') def test_scenario_1(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", "--showlocals") > result.assert_outcomes(passed=0, failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:183: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_local_variables_should_be_displayed_when_showlocals_option_is_used0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _ ERROR collecting test_local_variables_should_be_displayed_when_showlocals_option_is_used.py _ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} self = /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True hook_name = 'pytest_pycollect_makeitem' kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} methods = [>] self = <_pytest.config.PytestPluginManager object at 0x7f675126ead0> /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ after = .after at 0x7f67510784a0> before = .before at 0x7f6751079e40> caller_kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} firstresult = True hook_impls = [>] hook_name = 'pytest_pycollect_makeitem' oldcall = outcome = /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ caller_kwargs = {'collector': , 'name': 'test_scenario_1', 'obj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>} firstresult = True hook_impls = [>] hook_name = 'pytest_pycollect_makeitem' oldcall = /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ collector = name = 'test_scenario_1' obj = .decorator..scenario_wrapper at 0x7f6750ffb4c0> /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = None clscol = None funcobj = .decorator..scenario_wrapper at 0x7f6750ffb4c0> module = modulecol = name = 'test_scenario_1' self = /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>, 'name': 'test_scenario_1'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>, 'name': 'test_scenario_1'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = k = () kw = {'callobj': .decorator..scenario_wrapper at 0x7f6750ffb4c0>, 'name': 'test_scenario_1', 'parent': } /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = callobj = .decorator..scenario_wrapper at 0x7f6750ffb4c0> callspec = None config = None fixtureinfo = None fm = <_pytest.fixtures.FixtureManager object at 0x7f675126f250> keywords = None name = 'test_scenario_1' originalname = None parent = self = session = None /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ argnames = ('request', '_pytest_bdd_example') autousenames = cls = None func = .decorator..scenario_wrapper at 0x7f6750ffb4c0> node = self = <_pytest.fixtures.FixtureManager object at 0x7f675126f250> usefixturesnames = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ seqs = (, , ('request', '_pytest_bdd_example')) /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ .0 = seq = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( mark = Mark(name='usefixtures', args=(), kwargs={}) marker_node = node = self = <_pytest.fixtures.FixtureManager object at 0x7f675126f250> /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_local_variables_should_be_displayed_when_showlocals_option_is_used.py::test_scenario_1 without arguments has no effect lineno = 266 path = '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py' self = warning = PytestWarning('usefixtures() in test_local_variables_should_be_displayed_when_showlocals_option_is_used.py::test_scenario_1 without arguments has no effect') =========================== short test summary info ============================ ERROR test_local_variables_should_be_displayed_when_showlocals_option_is_used.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.27s =============================== ___________ test_step_parameters_should_be_replaced_by_their_values ____________ pytester = def test_step_parameters_should_be_replaced_by_their_values(pytester): example = {"start": 10, "eat": 3, "left": 7} pytester.makefile( ".feature", test=textwrap.dedent( """\ Feature: Gherkin terminal output feature Scenario Outline: Scenario example 2 Given there are cucumbers When I eat cucumbers Then I should have cucumbers Examples: | start | eat | left | |{start}|{eat}|{left}| """.format( **example ) ), ) pytester.makepyfile( test_gherkin=textwrap.dedent( """\ from pytest_bdd import given, when, scenario, then, parsers @given(parsers.parse('there are {start} cucumbers'), target_fixture="start_cucumbers") def _(start): return start @when(parsers.parse('I eat {eat} cucumbers')) def _(start_cucumbers, eat): pass @then(parsers.parse('I should have {left} cucumbers')) def _(start_cucumbers, left): pass @scenario('test.feature', 'Scenario example 2') def test_scenario_2(): pass """ ) ) result = pytester.runpytest("--gherkin-terminal-reporter", "-vv") > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_gherkin_terminal_reporter.py:233: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_parameters_should_be_replaced_by_their_values0 plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _______________________ ERROR collecting test_gherkin.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_gherkin.py::test_scenario_2 without arguments has no effect =========================== short test summary info ============================ ERROR test_gherkin.py - pytest.PytestWarning: usefixtures() in test_gherkin.py::test_scenario_2 without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ______________________ test_background_no_strict_gherkin _______________________ pytester = def test_background_no_strict_gherkin(pytester): """Test background no strict gherkin.""" pytester.makepyfile( test_gherkin=""" import pytest from pytest_bdd import when, scenario @scenario( "no_strict_gherkin_background.feature", "Test background", ) def test_background(): pass @pytest.fixture def foo(): return {} @when('foo has a value "bar"') def _(foo): foo["bar"] = "bar" return foo["bar"] @when('foo is not boolean') def _(foo): assert foo is not bool @when('foo has not a value "baz"') def _(foo): assert "baz" not in foo """ ) pytester.makefile( ".feature", no_strict_gherkin_background=""" Feature: No strict Gherkin Background support Background: When foo has a value "bar" And foo is not boolean And foo has not a value "baz" Scenario: Test background """, ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_no_sctrict_gherkin.py:57: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_background_no_strict_gherkin0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________________ ERROR collecting test_gherkin.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_gherkin.py::test_background without arguments has no effect =========================== short test summary info ============================ ERROR test_gherkin.py - pytest.PytestWarning: usefixtures() in test_gherkin.p... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.28s =============================== _______________________ test_scenario_no_strict_gherkin ________________________ pytester = def test_scenario_no_strict_gherkin(pytester): """Test scenario no strict gherkin.""" pytester.makepyfile( test_gherkin=""" import pytest from pytest_bdd import when, scenario @scenario( "no_strict_gherkin_scenario.feature", "Test scenario", ) def test_scenario(): pass @pytest.fixture def foo(): return {} @when('foo has a value "bar"') def _(foo): foo["bar"] = "bar" return foo["bar"] @when('foo is not boolean') def _(foo): assert foo is not bool @when('foo has not a value "baz"') def _(foo): assert "baz" not in foo """ ) pytester.makefile( ".feature", no_strict_gherkin_scenario=""" Feature: No strict Gherkin Scenario support Scenario: Test scenario When foo has a value "bar" And foo is not boolean And foo has not a value "baz" """, ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_no_sctrict_gherkin.py:111: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_scenario_no_strict_gherkin0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______________________ ERROR collecting test_gherkin.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_gherkin.py::test_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_gherkin.py - pytest.PytestWarning: usefixtures() in test_gherkin.p... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.35s =============================== ___________________ test_scenario_with_empty_example_values ____________________ pytester = def test_scenario_with_empty_example_values(pytester): pytester.makefile( ".feature", outline=textwrap.dedent( """\ Feature: Outline Scenario Outline: Outlined with empty example values Given there are cucumbers When I eat cucumbers Then I should have cucumbers Examples: | start | eat | left | | # | | | """ ), ) pytester.makeconftest(textwrap.dedent(STEPS)) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd.utils import dump_obj from pytest_bdd import scenario import json @scenario("outline.feature", "Outlined with empty example values") def test_outline(): pass """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_outline_empty_values.py:62: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_scenario_with_empty_example_values0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _________ ERROR collecting test_scenario_with_empty_example_values.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_scenario_with_empty_example_values.py::test_outline without arguments has no effect =========================== short test summary info ============================ ERROR test_scenario_with_empty_example_values.py - pytest.PytestWarning: usef... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _______________________________ test_step_trace ________________________________ pytester = def test_step_trace(pytester): """Test step trace.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = feature-tag scenario-passing-tag scenario-failing-tag """ ), ) feature = pytester.makefile( ".feature", test=textwrap.dedent( """ @feature-tag Feature: One passing scenario, one failing scenario @scenario-passing-tag Scenario: Passing Given a passing step And some other passing step @scenario-failing-tag Scenario: Failing Given a passing step And a failing step Scenario Outline: Outlined Given there are cucumbers When I eat cucumbers Then I should have cucumbers Examples: | start | eat | left | | 12 | 5 | 7 | | 5 | 4 | 1 | """ ), ) relpath = feature.relative_to(pytester.path.parent) pytester.makepyfile( textwrap.dedent( """ import pytest from pytest_bdd import given, when, then, scenarios, parsers @given('a passing step') def _(): return 'pass' @given('some other passing step') def _(): return 'pass' @given('a failing step') def _(): raise Exception('Error') @given(parsers.parse('there are {start:d} cucumbers'), target_fixture="cucumbers") def _(start): assert isinstance(start, int) return {"start": start} @when(parsers.parse('I eat {eat:g} cucumbers')) def _(cucumbers, eat): assert isinstance(eat, float) cucumbers['eat'] = eat @then(parsers.parse('I should have {left} cucumbers')) def _(cucumbers, left): assert isinstance(left, str) assert cucumbers['start'] - cucumbers['eat'] == int(left) scenarios('test.feature') """ ) ) result = pytester.inline_run("-vvl") assert result.ret > report = result.matchreport("test_passing", when="call").scenario ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_report.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.pytester.HookRecorder object at 0x7f6751106040> inamepart = 'test_passing' names = ('pytest_runtest_logreport', 'pytest_collectreport'), when = 'call' def matchreport( self, inamepart: str = "", names: str | Iterable[str] = ( "pytest_runtest_logreport", "pytest_collectreport", ), when: str | None = None, ) -> CollectReport | TestReport: """Return a testreport whose dotted import path matches.""" values = [] for rep in self.getreports(names=names): if not when and rep.when != "call" and rep.passed: # setup/teardown passing reports - let's ignore those continue if when and rep.when != when: continue if not inamepart or inamepart in rep.nodeid.split("::"): values.append(rep) if not values: > raise ValueError( f"could not find test report matching {inamepart!r}: " "no test reports at all!" ) E ValueError: could not find test report matching 'test_passing': no test reports at all! /usr/lib/python3/dist-packages/_pytest/pytester.py:373: ValueError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace1 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_trace.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} self = /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ firstresult = True hook_name = 'pytest_pycollect_makeitem' kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} methods = [>, >] self = <_pytest.config.PytestPluginManager object at 0x7f6751216fd0> /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ after = .after at 0x7f67511f9620> before = .before at 0x7f67511fb560> caller_kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} firstresult = True hook_impls = [>, >] hook_name = 'pytest_pycollect_makeitem' oldcall = outcome = /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ caller_kwargs = {'collector': , 'name': 'test_passing', 'obj': .decorator..scenario_wrapper at 0x7f675124ea20>} firstresult = True hook_impls = [>, >] hook_name = 'pytest_pycollect_makeitem' oldcall = /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ collector = name = 'test_passing' obj = .decorator..scenario_wrapper at 0x7f675124ea20> /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = None clscol = None funcobj = .decorator..scenario_wrapper at 0x7f675124ea20> module = modulecol = name = 'test_passing' self = /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f675124ea20>, 'name': 'test_passing'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cls = kw = {'callobj': .decorator..scenario_wrapper at 0x7f675124ea20>, 'name': 'test_passing'} parent = /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = cls = k = () kw = {'callobj': .decorator..scenario_wrapper at 0x7f675124ea20>, 'name': 'test_passing', 'parent': } /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ __class__ = callobj = .decorator..scenario_wrapper at 0x7f675124ea20> callspec = None config = None fixtureinfo = None fm = <_pytest.fixtures.FixtureManager object at 0x7f6751215bd0> keywords = None name = 'test_passing' originalname = None parent = self = session = None /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ argnames = ('request', '_pytest_bdd_example') autousenames = cls = None func = .decorator..scenario_wrapper at 0x7f675124ea20> node = self = <_pytest.fixtures.FixtureManager object at 0x7f6751215bd0> usefixturesnames = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ seqs = (, , ('request', '_pytest_bdd_example')) /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ .0 = seq = /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( mark = Mark(name='usefixtures', args=(), kwargs={}) marker_node = node = self = <_pytest.fixtures.FixtureManager object at 0x7f6751215bd0> /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_trace.py::test_passing without arguments has no effect lineno = 266 path = '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py' self = warning = PytestWarning('usefixtures() in test_step_trace.py::test_passing without arguments has no effect') =========================== short test summary info ============================ ERROR test_step_trace.py - pytest.PytestWarning: usefixtures() in test_step_trace.py::test_passing without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.23s =============================== __________________ test_when_function_name_same_as_step_name ___________________ pytester = def test_when_function_name_same_as_step_name(pytester): pytester.makefile( ".feature", same_name=textwrap.dedent( """\ Feature: Function name same as step name Scenario: When function name same as step name When something """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import when, scenario @scenario("same_name.feature", "When function name same as step name") def test_same_name(): pass @when("something") def _(): return "something" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_same_function_name.py:33: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_when_function_name_same_as_step_name0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ________ ERROR collecting test_when_function_name_same_as_step_name.py _________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_when_function_name_same_as_step_name.py::test_same_name without arguments has no effect =========================== short test summary info ============================ ERROR test_when_function_name_same_as_step_name.py - pytest.PytestWarning: us... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== ____________________________ test_scenario_comments ____________________________ pytester = def test_scenario_comments(pytester): """Test comments inside scenario.""" pytester.makefile( ".feature", comments=textwrap.dedent( """\ Feature: Comments Scenario: Comments # Comment Given I have a bar Scenario: Strings that are not comments Given comments should be at the start of words Then this is not a#comment And this is not "#acomment" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import re import pytest from pytest_bdd import parsers, given, then, scenario @scenario("comments.feature", "Comments") def test_1(): pass @scenario("comments.feature", "Strings that are not comments") def test_2(): pass @given("I have a bar") def _(): return "bar" @given("comments should be at the start of words") def _(): pass @then(parsers.parse("this is not {acomment}")) def _(acomment): assert re.search("a.*comment", acomment) """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_scenario.py:93: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_scenario_comments0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_scenario_comments.py __________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_scenario_comments.py::test_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_scenario_comments.py - pytest.PytestWarning: usefixtures() in test... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _____________________ test_angular_brakets_are_not_parsed ______________________ pytester = def test_angular_brakets_are_not_parsed(pytester): """Test that angular brackets are not parsed for "Scenario"s. (They should be parsed only when used in "Scenario Outline") """ pytester.makefile( ".feature", simple=""" Feature: Simple feature Scenario: Simple scenario Given I have a Then pass Scenario Outline: Outlined scenario Given I have a templated Then pass Examples: | foo | | bar | """, ) pytester.makepyfile( """ from pytest_bdd import scenarios, given, then, parsers scenarios("simple.feature") @given("I have a ") def _(): return "tag" @given(parsers.parse("I have a templated {foo}")) def _(foo): return "foo" @then("pass") def _(): pass """ ) result = pytester.runpytest() > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_scenario.py:194: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_angular_brakets_are_not_parsed0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_angular_brakets_are_not_parsed.py ____________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_angular_brakets_are_not_parsed.py::test_simple_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_angular_brakets_are_not_parsed.py - pytest.PytestWarning: usefixtu... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.26s =============================== __________________________________ test_steps __________________________________ pytester = def test_steps(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: Executed step by step Given I have a foo fixture with value "foo" And there is a list When I append 1 to the list And I append 2 to the list And I append 3 to the list Then foo should have value "foo" But the list should be [1, 2, 3] """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario @scenario("steps.feature", "Executed step by step") def test_steps(): pass @given('I have a foo fixture with value "foo"', target_fixture="foo") def _(): return "foo" @given("there is a list", target_fixture="results") def _(): return [] @when("I append 1 to the list") def _(results): results.append(1) @when("I append 2 to the list") def _(results): results.append(2) @when("I append 3 to the list") def _(results): results.append(3) @then('foo should have value "foo"') def _(foo): assert foo == "foo" @then("the list should be [1, 2, 3]") def _(results): assert results == [1, 2, 3] """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:72: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ________________________ ERROR collecting test_steps.py ________________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_steps.py - pytest.PytestWarning: usefixtures() in test_steps.py::t... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.44s =============================== ______________ test_step_function_can_be_decorated_multiple_times ______________ pytester = def test_step_function_can_be_decorated_multiple_times(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps decoration Scenario: Step function can be decorated multiple times Given there is a foo with value 42 And there is a second foo with value 43 When I do nothing And I do nothing again Then I make no mistakes And I make no mistakes again """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, scenario, parsers @scenario("steps.feature", "Step function can be decorated multiple times") def test_steps(): pass @given(parsers.parse("there is a foo with value {value}"), target_fixture="foo") @given(parsers.parse("there is a second foo with value {value}"), target_fixture="second_foo") def _(value): return value @when("I do nothing") @when("I do nothing again") def _(): pass @then("I make no mistakes") @then("I make no mistakes again") def _(): assert True """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:124: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_function_can_be_decorated_multiple_times0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ____ ERROR collecting test_step_function_can_be_decorated_multiple_times.py ____ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_function_can_be_decorated_multiple_times.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_step_function_can_be_decorated_multiple_times.py - pytest.PytestWa... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.54s =============================== _____________________ test_all_steps_can_provide_fixtures ______________________ pytester = def test_all_steps_can_provide_fixtures(pytester): """Test that given/when/then can all provide fixtures.""" pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Step fixture Scenario: Given steps can provide fixture Given Foo is "bar" Then foo should be "bar" Scenario: When steps can provide fixture When Foo is "baz" Then foo should be "baz" Scenario: Then steps can provide fixture Then foo is "qux" And foo should be "qux" """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, when, then, parsers, scenarios scenarios("steps.feature") @given(parsers.parse('Foo is "{value}"'), target_fixture="foo") def _(value): return value @when(parsers.parse('Foo is "{value}"'), target_fixture="foo") def _(value): return value @then(parsers.parse('Foo is "{value}"'), target_fixture="foo") def _(value): return value @then(parsers.parse('foo should be "{value}"')) def _(foo, value): assert foo == value """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=3, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 3} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:177: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_all_steps_can_provide_fixtures0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_all_steps_can_provide_fixtures.py ____________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_all_steps_can_provide_fixtures.py::test_given_steps_can_provide_fixture without arguments has no effect =========================== short test summary info ============================ ERROR test_all_steps_can_provide_fixtures.py - pytest.PytestWarning: usefixtu... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.40s =============================== _______________________________ test_when_first ________________________________ pytester = def test_when_first(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: When step can be the first When I do nothing Then I make no mistakes """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import when, then, scenario @scenario("steps.feature", "When step can be the first") def test_steps(): pass @when("I do nothing") def _(): pass @then("I make no mistakes") def _(): assert True """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:217: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_when_first0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_when_first.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_when_first.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_when_first.py - pytest.PytestWarning: usefixtures() in test_when_f... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.31s =============================== ____________________________ test_then_after_given _____________________________ pytester = def test_then_after_given(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: Then step can follow Given step Given I have a foo fixture with value "foo" Then foo should have value "foo" """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import given, then, scenario @scenario("steps.feature", "Then step can follow Given step") def test_steps(): pass @given('I have a foo fixture with value "foo"', target_fixture="foo") def _(): return "foo" @then('foo should have value "foo"') def _(foo): assert foo == "foo" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:257: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_then_after_given0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_then_after_given.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_then_after_given.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_then_after_given.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.36s =============================== ________________________________ test_conftest _________________________________ pytester = def test_conftest(pytester): pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Steps are executed one by one. Given and When sections are not mandatory in some cases. Scenario: All steps are declared in the conftest Given I have a bar Then bar should have value "bar" """ ), ) pytester.makeconftest( textwrap.dedent( """\ from pytest_bdd import given, then @given("I have a bar", target_fixture="bar") def _(): return "bar" @then('bar should have value "bar"') def _(bar): assert bar == "bar" """ ) ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import scenario @scenario("steps.feature", "All steps are declared in the conftest") def test_steps(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:307: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_conftest0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ______________________ ERROR collecting test_conftest.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_conftest.py::test_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_conftest.py - pytest.PytestWarning: usefixtures() in test_conftest... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.46s =============================== _____________________________ test_multiple_given ______________________________ pytester = def test_multiple_given(pytester): """Using the same given fixture raises an error.""" pytester.makefile( ".feature", steps=textwrap.dedent( """\ Feature: Steps are executed one by one Scenario: Using the same given twice Given foo is "foo" And foo is "bar" Then foo should be "bar" """ ), ) pytester.makepyfile( textwrap.dedent( """\ from pytest_bdd import parsers, given, then, scenario @given(parsers.parse("foo is {value}"), target_fixture="foo") def _(value): return value @then(parsers.parse("foo should be {value}")) def _(foo, value): assert foo == value @scenario("steps.feature", "Using the same given twice") def test_given_twice(): pass """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1, failed=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:349: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_multiple_given0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting test_multiple_given.py ____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_multiple_given.py::test_given_twice without arguments has no effect =========================== short test summary info ============================ ERROR test_multiple_given.py - pytest.PytestWarning: usefixtures() in test_mu... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.37s =============================== _______________________________ test_step_hooks ________________________________ pytester = def test_step_hooks(pytester): """When step fails.""" pytester.makefile( ".feature", test=""" Scenario: When step has hook on failure Given I have a bar When it fails Scenario: When step's dependency a has failure Given I have a bar When it's dependency fails Scenario: When step is not found Given not found Scenario: When step validation error happens Given foo And foo """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, when, scenario @given('I have a bar') def _(): return 'bar' @when('it fails') def _(): raise Exception('when fails') @given('I have a bar') def _(): return 'bar' @pytest.fixture def dependency(): raise Exception('dependency fails') @when("it's dependency fails") def _(dependency): pass @scenario('test.feature', "When step's dependency a has failure") def test_when_dependency_fails(): pass @scenario('test.feature', 'When step has hook on failure') def test_when_fails(): pass @scenario('test.feature', 'When step is not found') def test_when_not_found(): pass @when('foo') def _(): return 'foo' @scenario('test.feature', 'When step validation error happens') def test_when_step_validation_error(): pass """ ) reprec = pytester.inline_run("-k test_when_fails") reprec.assertoutcome(failed=1) calls = reprec.getcalls("pytest_bdd_before_scenario") > assert calls[0].request ^^^^^^^^ E IndexError: list index out of range /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:423: IndexError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_hooks0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_hooks.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_hooks.py::test_when_dependency_fails without arguments has no effect =========================== short test summary info ============================ ERROR test_step_hooks.py - pytest.PytestWarning: usefixtures() in test_step_h... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.32s =============================== _______________________________ test_step_trace ________________________________ pytester = def test_step_trace(pytester): """Test step trace.""" pytester.makeini( """ [pytest] console_output_style=classic """ ) pytester.makefile( ".feature", test=""" Scenario: When step has failure Given I have a bar When it fails Scenario: When step is not found Given not found Scenario: When step validation error happens Given foo And foo """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, when, scenario @given('I have a bar') def _(): return 'bar' @when('it fails') def _(): raise Exception('when fails') @scenario('test.feature', 'When step has failure') def test_when_fails_inline(): pass @scenario('test.feature', 'When step has failure') def test_when_fails_decorated(): pass @scenario('test.feature', 'When step is not found') def test_when_not_found(): pass @when('foo') def _(): return 'foo' @scenario('test.feature', 'When step validation error happens') def test_when_step_validation_error(): pass """ ) result = pytester.runpytest("-k test_when_fails_inline", "-vv") > result.assert_outcomes(failed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E {'failed': 0} != {'failed': 1} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:521: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_trace2 configfile: tox.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting test_step_trace.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_trace.py::test_when_fails_inline without arguments has no effect =========================== short test summary info ============================ ERROR test_step_trace.py - pytest.PytestWarning: usefixtures() in test_step_trace.py::test_when_fails_inline without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.32s =============================== ____________________________ test_steps_with_yield _____________________________ pytester = def test_steps_with_yield(pytester): """Test that steps definition containing a yield statement work the same way as pytest fixture do, that is the code after the yield is executed during teardown.""" pytester.makefile( ".feature", a="""\ Feature: A feature Scenario: A scenario When I setup stuff Then stuff should be 42 """, ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenarios scenarios("a.feature") @when("I setup stuff", target_fixture="stuff") def _(): print("Setting up...") yield 42 print("Tearing down...") @then("stuff should be 42") def _(stuff): assert stuff == 42 print("Asserted stuff is 42") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_steps.py:579: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps_with_yield0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_steps_with_yield.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps_with_yield.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_steps_with_yield.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ______________________________ test_tags_selector ______________________________ pytester = def test_tags_selector(pytester): """Test tests selection by tags.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = feature_tag_1 feature_tag_2 scenario_tag_01 scenario_tag_02 scenario_tag_10 scenario_tag_20 """ ), ) pytester.makefile( ".feature", test=""" @feature_tag_1 @feature_tag_2 Feature: Tags @scenario_tag_01 @scenario_tag_02 Scenario: Tags Given I have a bar @scenario_tag_10 @scenario_tag_20 Scenario: Tags 2 Given I have a bar """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' scenarios('test.feature') """ ) result = pytester.runpytest("-m", "scenario_tag_10 and not scenario_tag_01", "-vv") outcomes = result.parseoutcomes() > assert outcomes["passed"] == 1 ^^^^^^^^^^^^^^^^^^ E KeyError: 'passed' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:56: KeyError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tags_selector0 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ____________________ ERROR collecting test_tags_selector.py ____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_tags_selector.py::test_tags without arguments has no effect =========================== short test summary info ============================ ERROR test_tags_selector.py - pytest.PytestWarning: usefixtures() in test_tags_selector.py::test_tags without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _____________________ test_tags_after_background_issue_160 _____________________ pytester = def test_tags_after_background_issue_160(pytester): """Make sure using a tag after background works.""" pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = tag """ ), ) pytester.makefile( ".feature", test=""" Feature: Tags after background Background: Given I have a bar @tag Scenario: Tags Given I have a baz Scenario: Tags 2 Given I have a baz """, ) pytester.makepyfile( """ import pytest from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' @given('I have a baz') def _(): return 'baz' scenarios('test.feature') """ ) result = pytester.runpytest("-m", "tag", "-vv").parseoutcomes() > assert result["passed"] == 1 ^^^^^^^^^^^^^^^^ E KeyError: 'passed' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:114: KeyError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tags_after_background_issue_1600 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collecting ... collected 0 items / 1 error ==================================== ERRORS ==================================== ___________ ERROR collecting test_tags_after_background_issue_160.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_tags_after_background_issue_160.py::test_tags without arguments has no effect =========================== short test summary info ============================ ERROR test_tags_after_background_issue_160.py - pytest.PytestWarning: usefixtures() in test_tags_after_background_issue_160.py::test_tags without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== _____________________________ test_apply_tag_hook ______________________________ pytester = def test_apply_tag_hook(pytester): pytester.makeconftest( """ import pytest @pytest.hookimpl(tryfirst=True) def pytest_bdd_apply_tag(tag, function): if tag == 'todo': marker = pytest.mark.skipif(True, reason="Not implemented yet") marker(function) return True else: # Fall back to pytest-bdd's default behavior return None """ ) pytester.makefile( ".feature", test=""" Feature: Customizing tag handling @todo Scenario: Tags Given I have a bar @xfail Scenario: Tags 2 Given I have a bar """, ) pytester.makepyfile( """ from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' scenarios('test.feature') """ ) result = pytester.runpytest("-rsx") > result.stdout.fnmatch_lines(["SKIP*: Not implemented yet"]) E Failed: nomatch: 'SKIP*: Not implemented yet' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_apply_tag_hook0' E and: 'plugins: bdd-7.1.2, typeguard-4.4.4' E and: 'collected 0 items / 1 error' E and: '' E and: '==================================== ERRORS ====================================' E and: '___________________ ERROR collecting test_apply_tag_hook.py ____________________' E and: '/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__' E and: ' return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec' E and: ' return self._inner_hookexec(hook_name, methods, kwargs, firstresult)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec' E and: ' return outcome.get_result()' E and: ' ^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/pluggy/_manager.py:472: in ' E and: ' lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem' E and: ' return list(collector._genfunctions(name, obj))' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions' E and: ' definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent' E and: ' return super().from_parent(parent=parent, **kw)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent' E and: ' return cls._create(parent=parent, **kw)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create' E and: ' return super().__call__(*k, **kw) # type: ignore[no-any-return,misc]' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__' E and: ' fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo' E and: ' initialnames = deduplicate_names(autousenames, usefixturesnames, argnames)' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names' E and: ' return tuple(dict.fromkeys(name for seq in seqs for name in seq))' E and: ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in ' E and: ' return tuple(dict.fromkeys(name for seq in seqs for name in seq))' E and: ' ^^^' E and: '/usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames' E and: ' marker_node.warn(' E and: '/usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn' E and: ' warnings.warn_explicit(' E and: 'E pytest.PytestWarning: usefixtures() in test_apply_tag_hook.py::test_tags without arguments has no effect' E and: '!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!' E and: '=============================== 1 error in 0.34s ===============================' E remains unmatched: 'SKIP*: Not implemented yet' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:160: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_apply_tag_hook0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting test_apply_tag_hook.py ____________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_apply_tag_hook.py::test_tags without arguments has no effect !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.34s =============================== _____________________________ test_tag_with_spaces _____________________________ pytester = def test_tag_with_spaces(pytester): pytester.makefile( ".ini", pytest=textwrap.dedent( """ [pytest] markers = test with spaces """ ), ) pytester.makeconftest( """ import pytest @pytest.hookimpl(tryfirst=True) def pytest_bdd_apply_tag(tag, function): assert tag == 'test with spaces' """ ) pytester.makefile( ".feature", test=""" Feature: Tag with spaces @test with spaces Scenario: Tags Given I have a bar """, ) pytester.makepyfile( """ from pytest_bdd import given, scenarios @given('I have a bar') def _(): return 'bar' scenarios('test.feature') """ ) result = pytester.runpytest_subprocess() > result.stdout.fnmatch_lines(["*= 1 passed * =*"]) E Failed: nomatch: '*= 1 passed * =*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0' E and: 'configfile: pytest.ini' E and: 'plugins: bdd-7.1.2, typeguard-4.4.4' E and: 'collected 1 item' E and: '' E and: 'test_tag_with_spaces.py . [100%]' E and: '' E and: '=============================== warnings summary ===============================' E and: '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267' E and: ' ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_tag_with_spaces.py::test_tags without arguments has no effect' E and: ' @pytest.mark.usefixtures(*func_args)' E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html' E and: '========================= 1 passed, 1 warning in 0.01s =========================' E remains unmatched: '*= 1 passed * =*' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:206: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.13 -mpytest --basetemp=/tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0/runpytest-0 in: /tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0 ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_tag_with_spaces0 configfile: pytest.ini plugins: bdd-7.1.2, typeguard-4.4.4 collected 1 item test_tag_with_spaces.py . [100%] =============================== warnings summary =============================== ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267 ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_tag_with_spaces.py::test_tags without arguments has no effect @pytest.mark.usefixtures(*func_args) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========================= 1 passed, 1 warning in 0.01s ========================= _____________________________ test_at_in_scenario ______________________________ pytester = def test_at_in_scenario(pytester): pytester.makefile( ".feature", test=""" Feature: At sign in a scenario Scenario: Tags Given I have a foo@bar Scenario: Second Given I have a baz """, ) pytester.makepyfile( """ from pytest_bdd import given, scenarios @given('I have a foo@bar') def _(): return 'foo@bar' @given('I have a baz') def _(): return 'baz' scenarios('test.feature') """ ) strict_option = "--strict-markers" result = pytester.runpytest_subprocess(strict_option) > result.stdout.fnmatch_lines(["*= 2 passed * =*"]) E Failed: nomatch: '*= 2 passed * =*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0' E and: 'rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0' E and: 'plugins: bdd-7.1.2, typeguard-4.4.4' E and: 'collected 2 items' E and: '' E and: 'test_at_in_scenario.py .. [100%]' E and: '' E and: '=============================== warnings summary ===============================' E and: '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267' E and: ' ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_tags without arguments has no effect' E and: ' @pytest.mark.usefixtures(*func_args)' E and: '' E and: '../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267' E and: ' ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_second without arguments has no effect' E and: ' @pytest.mark.usefixtures(*func_args)' E and: '' E and: '-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html' E and: '======================== 2 passed, 2 warnings in 0.01s =========================' E remains unmatched: '*= 2 passed * =*' /build/reproducible-path/pytest-bdd-7.1.2/tests/feature/test_tags.py:239: Failed ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python3.13 -mpytest --basetemp=/tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0/runpytest-0 --strict-markers in: /tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0 ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_at_in_scenario0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 2 items test_at_in_scenario.py .. [100%] =============================== warnings summary =============================== ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267 ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_tags without arguments has no effect @pytest.mark.usefixtures(*func_args) ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267 ../../../../build/reproducible-path/pytest-bdd-7.1.2/debian/python3-pytest-bdd/usr/lib/python3.13/dist-packages/pytest_bdd/scenario.py:267: PytestWarning: usefixtures() in test_at_in_scenario.py::test_second without arguments has no effect @pytest.mark.usefixtures(*func_args) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ======================== 2 passed, 2 warnings in 0.01s ========================= ____________________________ test_generate_missing _____________________________ pytester = def test_generate_missing(pytester): """Test generate missing command.""" pytester.makefile( ".feature", generation=textwrap.dedent( """\ Feature: Missing code generation Background: Given I have a foobar Scenario: Scenario tests which are already bound to the tests stay as is Given I have a bar Scenario: Code is generated for scenarios which are not bound to any tests Given I have a bar Scenario: Code is generated for scenario steps which are not yet defined(implemented) Given I have a custom bar """ ), ) pytester.makepyfile( textwrap.dedent( """\ import functools from pytest_bdd import scenario, given scenario = functools.partial(scenario, "generation.feature") @given("I have a bar") def _(): return "bar" @scenario("Scenario tests which are already bound to the tests stay as is") def test_foo(): pass @scenario("Code is generated for scenario steps which are not yet defined(implemented)") def test_missing_steps(): pass """ ) ) result = pytester.runpytest("--generate-missing", "--feature", "generation.feature") > result.assert_outcomes(passed=0, failed=0, errors=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 5 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/generation/test_generate_missing.py:67: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error Scenario "Code is generated for scenario steps which are not yet defined(implemented)" is not bound to any test in the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:14 Scenario "Code is generated for scenarios which are not bound to any tests" is not bound to any test in the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:10 Scenario "Scenario tests which are already bound to the tests stay as is" is not bound to any test in the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:6 -------------------------------------------------------------------------------- Step Given "I have a foobar" is not defined in the background of the feature "Missing code generation" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing0/generation.feature:4 -------------------------------------------------------------------------------- Please place the code above to the test file(s): """Missing code generation feature tests.""" from pytest_bdd import ( given, scenario, then, when, ) @scenario('test_generate_missing0/generation.feature', 'Code is generated for scenario steps which are not yet defined(implemented)') def test_code_is_generated_for_scenario_steps_which_are_not_yet_definedimplemented(): """Code is generated for scenario steps which are not yet defined(implemented).""" @scenario('test_generate_missing0/generation.feature', 'Code is generated for scenarios which are not bound to any tests') def test_code_is_generated_for_scenarios_which_are_not_bound_to_any_tests(): """Code is generated for scenarios which are not bound to any tests.""" @scenario('test_generate_missing0/generation.feature', 'Scenario tests which are already bound to the tests stay as is') def test_scenario_tests_which_are_already_bound_to_the_tests_stay_as_is(): """Scenario tests which are already bound to the tests stay as is.""" @given('I have a foobar') def _(): """I have a foobar.""" raise NotImplementedError ==================================== ERRORS ==================================== __________________ ERROR collecting test_generate_missing.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_generate_missing.py::test_foo without arguments has no effect =========================== short test summary info ============================ ERROR test_generate_missing.py - pytest.PytestWarning: usefixtures() in test_... =============================== 1 error in 0.19s =============================== ___________________ test_generate_missing_with_step_parsers ____________________ pytester = def test_generate_missing_with_step_parsers(pytester): """Test that step parsers are correctly discovered and won't be part of the missing steps.""" pytester.makefile( ".feature", generation=textwrap.dedent( """\ Feature: Missing code generation with step parsers Scenario: Step parsers are correctly discovered Given I use the string parser without parameter And I use parsers.parse with parameter 1 And I use parsers.re with parameter 2 And I use parsers.cfparse with parameter 3 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import functools from pytest_bdd import scenarios, given, parsers scenarios("generation.feature") @given("I use the string parser without parameter") def _(): return None @given(parsers.parse("I use parsers.parse with parameter {param}")) def _(param): return param @given(parsers.re(r"^I use parsers.re with parameter (?P.*?)$")) def _(param): return param @given(parsers.cfparse("I use parsers.cfparse with parameter {param:d}")) def _(param): return param """ ) ) result = pytester.runpytest("--generate-missing", "--feature", "generation.feature") > result.assert_outcomes(passed=0, failed=0, errors=0) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 5 identical items, use -vv to show E Differing items: E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/generation/test_generate_missing.py:135: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing_with_step_parsers0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error Scenario "Step parsers are correctly discovered" is not bound to any test in the feature "Missing code generation with step parsers" in the file /tmp/pytest-of-pbuilder1/pytest-0/test_generate_missing_with_step_parsers0/generation.feature:3 -------------------------------------------------------------------------------- Please place the code above to the test file(s): """Missing code generation with step parsers feature tests.""" from pytest_bdd import ( given, scenario, then, when, ) @scenario('test_generate_missing_with_step_parsers0/generation.feature', 'Step parsers are correctly discovered') def test_step_parsers_are_correctly_discovered(): """Step parsers are correctly discovered.""" ==================================== ERRORS ==================================== _________ ERROR collecting test_generate_missing_with_step_parsers.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_generate_missing_with_step_parsers.py::test_step_parsers_are_correctly_discovered without arguments has no effect =========================== short test summary info ============================ ERROR test_generate_missing_with_step_parsers.py - pytest.PytestWarning: usef... =============================== 1 error in 0.19s =============================== ____________________________ test_global_when_step _____________________________ pytester = def test_global_when_step(pytester): """Test when step defined in the parent conftest.""" pytester.makefile( ".feature", global_when=textwrap.dedent( """\ Feature: Global when Scenario: Global when step defined in parent conftest When I use a when step from the parent conftest """ ), ) pytester.makeconftest( textwrap.dedent( """\ from pytest_bdd import when from pytest_bdd.utils import dump_obj @when("I use a when step from the parent conftest") def _(): dump_obj("global when step") """ ) ) pytester.mkpydir("subdir").joinpath("test_global_when.py").write_text( textwrap.dedent( """\ from pytest_bdd import scenarios scenarios("../global_when.feature") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/library/test_parent.py:101: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_global_when_step0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _________________ ERROR collecting subdir/test_global_when.py __________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in subdir/test_global_when.py::test_global_when_step_defined_in_parent_conftest without arguments has no effect =========================== short test summary info ============================ ERROR subdir/test_global_when.py - pytest.PytestWarning: usefixtures() in sub... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ___________________ test_uses_correct_step_in_the_hierarchy ____________________ pytester = def test_uses_correct_step_in_the_hierarchy(pytester): """ Test regression found in issue #524, where we couldn't find the correct step implemntation in the hierarchy of files/folder as expected. This test uses many files and folders that act as decoy, while the real step implementation is defined in the last file (test_b/test_b.py). """ pytester.makefile( ".feature", specific=textwrap.dedent( """\ Feature: Specificity of steps Scenario: Overlapping steps Given I have a specific thing Then pass """ ), ) pytester.makeconftest( textwrap.dedent( """\ from pytest_bdd import parsers, given, then from pytest_bdd.utils import dump_obj import pytest @given(parsers.re("(?P.*)")) def root_conftest_catchall(thing): dump_obj(thing + " (catchall) root_conftest") @given(parsers.parse("I have a {thing} thing")) def root_conftest(thing): dump_obj(thing + " root_conftest") @given("I have a specific thing") def root_conftest_specific(): dump_obj("specific" + "(specific) root_conftest") @then("pass") def _(): pass """ ) ) # Adding deceiving @when steps around the real test, so that we can check if the right one is used # the right one is the one in test_b/test_b.py # We purposefully use test_a and test_c as decoys (while test_b/test_b is "good one"), so that we can test that # we pick the right one. pytester.makepyfile( test_a="""\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_a_catch_all(thing): dump_obj(thing + " (catchall) test_a") @given(parsers.parse("I have a specific thing")) def in_root_test_a_specific(): dump_obj("specific" + " (specific) test_a") @given(parsers.parse("I have a {thing} thing")) def in_root_test_a(thing): dump_obj(thing + " root_test_a") """ ) pytester.makepyfile( test_c="""\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_c_catch_all(thing): dump_obj(thing + " (catchall) test_c") @given(parsers.parse("I have a specific thing")) def in_root_test_c_specific(): dump_obj("specific" + " (specific) test_c") @given(parsers.parse("I have a {thing} thing")) def in_root_test_c(thing): dump_obj(thing + " root_test_b") """ ) test_b_folder = pytester.mkpydir("test_b") # More decoys: test_b/test_a.py and test_b/test_c.py test_b_folder.joinpath("test_a.py").write_text( textwrap.dedent( """\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_b_test_a_catch_all(thing): dump_obj(thing + " (catchall) test_b_test_a") @given(parsers.parse("I have a specific thing")) def in_test_b_test_a_specific(): dump_obj("specific" + " (specific) test_b_test_a") @given(parsers.parse("I have a {thing} thing")) def in_test_b_test_a(thing): dump_obj(thing + " test_b_test_a") """ ) ) test_b_folder.joinpath("test_c.py").write_text( textwrap.dedent( """\ from pytest_bdd import given, parsers from pytest_bdd.utils import dump_obj @given(parsers.re("(?P.*)")) def in_root_test_b_test_c_catch_all(thing): dump_obj(thing + " (catchall) test_b_test_c") @given(parsers.parse("I have a specific thing")) def in_test_b_test_c_specific(): dump_obj("specific" + " (specific) test_a_test_c") @given(parsers.parse("I have a {thing} thing")) def in_test_b_test_c(thing): dump_obj(thing + " test_c_test_a") """ ) ) # Finally, the file with the actual step definition that should be used test_b_folder.joinpath("test_b.py").write_text( textwrap.dedent( """\ from pytest_bdd import scenarios, given, parsers from pytest_bdd.utils import dump_obj scenarios("../specific.feature") @given(parsers.parse("I have a {thing} thing")) def in_test_b_test_b(thing): dump_obj(f"{thing} test_b_test_b") """ ) ) test_b_folder.joinpath("test_b_alternative.py").write_text( textwrap.dedent( """\ from pytest_bdd import scenarios, given, parsers from pytest_bdd.utils import dump_obj scenarios("../specific.feature") # Here we try to use an argument different from the others, # to make sure it doesn't matter if a new step parser string is encountered. @given(parsers.parse("I have a {t} thing")) def in_test_b_test_b(t): dump_obj(f"{t} test_b_test_b") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 2,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 2} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/library/test_parent.py:403: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_uses_correct_step_in_the_hierarchy0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 2 errors ==================================== ERRORS ==================================== ______________________ ERROR collecting test_b/test_b.py _______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_b/test_b.py::test_overlapping_steps without arguments has no effect ________________ ERROR collecting test_b/test_b_alternative.py _________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_b/test_b_alternative.py::test_overlapping_steps without arguments has no effect =========================== short test summary info ============================ ERROR test_b/test_b.py - pytest.PytestWarning: usefixtures() in test_b/test_b... ERROR test_b/test_b_alternative.py - pytest.PytestWarning: usefixtures() in t... !!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!! ============================== 2 errors in 0.48s =============================== _________________ test_step_function_multiple_target_fixtures __________________ pytester = def test_step_function_multiple_target_fixtures(pytester): pytester.makefile( ".feature", target_fixture=textwrap.dedent( """\ Feature: Multiple target fixtures for step function Scenario: A step can be decorated multiple times with different target fixtures Given there is a foo with value "test foo" And there is a bar with value "test bar" Then foo should be "test foo" And bar should be "test bar" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenarios, parsers from pytest_bdd.utils import dump_obj scenarios("target_fixture.feature") @given(parsers.parse('there is a foo with value "{value}"'), target_fixture="foo") @given(parsers.parse('there is a bar with value "{value}"'), target_fixture="bar") def _(value): return value @then(parsers.parse('foo should be "{expected_value}"')) def _(foo, expected_value): dump_obj(foo) assert foo == expected_value @then(parsers.parse('bar should be "{expected_value}"')) def _(bar, expected_value): dump_obj(bar) assert bar == expected_value """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:74: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_function_multiple_target_fixtures0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _______ ERROR collecting test_step_function_multiple_target_fixtures.py ________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_function_multiple_target_fixtures.py::test_a_step_can_be_decorated_multiple_times_with_different_target_fixtures without arguments has no effect =========================== short test summary info ============================ ERROR test_step_function_multiple_target_fixtures.py - pytest.PytestWarning: ... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.37s =============================== _______________________ test_step_functions_same_parser ________________________ pytester = def test_step_functions_same_parser(pytester): pytester.makefile( ".feature", target_fixture=textwrap.dedent( """\ Feature: A feature Scenario: A scenario Given there is a foo with value "(?P\\w+)" And there is a foo with value "testfoo" When pass Then pass """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, when, then, scenarios, parsers from pytest_bdd.utils import dump_obj scenarios("target_fixture.feature") STEP = r'there is a foo with value "(?P\\w+)"' @given(STEP) def _(): dump_obj(('str',)) @given(parsers.re(STEP)) def _(value): dump_obj(('re', value)) @when("pass") @then("pass") def _(): pass """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:122: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_functions_same_parser0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________ ERROR collecting test_step_functions_same_parser.py ______________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_functions_same_parser.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_step_functions_same_parser.py - pytest.PytestWarning: usefixtures(... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.21s =============================== ____________________ test_user_implements_a_step_generator _____________________ pytester = def test_user_implements_a_step_generator(pytester): """Test advanced use cases, like the implementation of custom step generators.""" pytester.makefile( ".feature", user_step_generator=textwrap.dedent( """\ Feature: A feature Scenario: A scenario Given I have 10 EUR And the wallet is verified And I have a wallet When I pay 1 EUR Then I should have 9 EUR in my wallet """ ), ) pytester.makepyfile( textwrap.dedent( """\ import re from dataclasses import dataclass, fields import pytest from pytest_bdd import given, when, then, scenarios, parsers from pytest_bdd.utils import dump_obj @dataclass class Wallet: verified: bool amount_eur: int amount_usd: int amount_gbp: int amount_jpy: int def pay(self, amount: int, currency: str) -> None: if not self.verified: raise ValueError("Wallet account is not verified") currency = currency.lower() field = f"amount_{currency}" setattr(self, field, getattr(self, field) - amount) @pytest.fixture def wallet__verified(): return False @pytest.fixture def wallet__amount_eur(): return 0 @pytest.fixture def wallet__amount_usd(): return 0 @pytest.fixture def wallet__amount_gbp(): return 0 @pytest.fixture def wallet__amount_jpy(): return 0 @pytest.fixture() def wallet( wallet__verified, wallet__amount_eur, wallet__amount_usd, wallet__amount_gbp, wallet__amount_jpy, ): return Wallet( verified=wallet__verified, amount_eur=wallet__amount_eur, amount_usd=wallet__amount_usd, amount_gbp=wallet__amount_gbp, amount_jpy=wallet__amount_jpy, ) def generate_wallet_steps(model_name="wallet", stacklevel=1): stacklevel += 1 @given("I have a wallet", target_fixture=model_name, stacklevel=stacklevel) def _(wallet): return wallet @given( parsers.re(r"the wallet is (?Pnot)?verified"), target_fixture=f"{model_name}__verified", stacklevel=2, ) def _(negation: str): if negation: return False return True # Generate steps for currency fields: for field in fields(Wallet): match = re.fullmatch(r"amount_(?P[a-z]{3})", field.name) if not match: continue currency = match["currency"] @given( parsers.parse(f"I have {{value:d}} {currency.upper()}"), target_fixture=f"{model_name}__amount_{currency}", stacklevel=2, ) def _(value: int, _currency=currency) -> int: dump_obj(f"given {value} {_currency.upper()}") return value @when( parsers.parse(f"I pay {{value:d}} {currency.upper()}"), stacklevel=2, ) def _(wallet: Wallet, value: int, _currency=currency) -> None: dump_obj(f"pay {value} {_currency.upper()}") wallet.pay(value, _currency) @then( parsers.parse(f"I should have {{value:d}} {currency.upper()} in my wallet"), stacklevel=2, ) def _(wallet: Wallet, value: int, _currency=currency) -> None: dump_obj(f"assert {value} {_currency.upper()}") assert getattr(wallet, f"amount_{_currency}") == value generate_wallet_steps() scenarios("user_step_generator.feature") """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:270: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_user_implements_a_step_generator0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________ ERROR collecting test_user_implements_a_step_generator.py ___________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_user_implements_a_step_generator.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_user_implements_a_step_generator.py - pytest.PytestWarning: usefix... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.22s =============================== ____________________________ test_step_catches_all _____________________________ pytester = def test_step_catches_all(pytester): """Test that the @step(...) decorator works for all kind of steps.""" pytester.makefile( ".feature", step_catches_all=textwrap.dedent( """\ Feature: A feature Scenario: A scenario Given foo And foo parametrized 1 When foo And foo parametrized 2 Then foo And foo parametrized 3 """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import step, scenarios, parsers from pytest_bdd.utils import dump_obj scenarios("step_catches_all.feature") @step("foo") def _(): dump_obj("foo") @step(parsers.parse("foo parametrized {n:d}")) def _(n): dump_obj(("foo parametrized", n)) """ ) ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_common.py:315: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_step_catches_all0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== __________________ ERROR collecting test_step_catches_all.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_step_catches_all.py::test_a_scenario without arguments has no effect =========================== short test summary info ============================ ERROR test_step_catches_all.py - pytest.PytestWarning: usefixtures() in test_... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.36s =============================== _____________________________ test_given_injection _____________________________ pytester = def test_given_injection(pytester): pytester.makefile( ".feature", given=textwrap.dedent( """\ Feature: Given Scenario: Test given fixture injection Given I have injecting given Then foo should be "injected foo" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, then, scenario @scenario("given.feature", "Test given fixture injection") def test_given(): pass @given("I have injecting given", target_fixture="foo") def _(): return "injected foo" @then('foo should be "injected foo"') def _(foo): assert foo == "injected foo" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_given.py:40: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_given_injection0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting test_given_injection.py ___________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_given_injection.py::test_given without arguments has no effect =========================== short test summary info ============================ ERROR test_given_injection.py - pytest.PytestWarning: usefixtures() in test_g... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.24s =============================== ___________________ test_steps_in_feature_file_have_unicode ____________________ pytester = def test_steps_in_feature_file_have_unicode(pytester): pytester.makefile( ".feature", unicode=textwrap.dedent( """\ Feature: Юнікодні символи Scenario: Кроки в .feature файлі містять юнікод Given у мене є рядок який містить 'якийсь контент' Then I should see that the string equals to content 'якийсь контент' Scenario: Given names have unicode types Given I have an alias with a unicode type for foo Then foo should be "foo" """ ), ) pytester.makepyfile( textwrap.dedent( """\ import sys import pytest from pytest_bdd import parsers, given, then, scenario @scenario("unicode.feature", "Кроки в .feature файлі містять юнікод") def test_unicode(): pass @pytest.fixture def string(): return {"content": ""} @given(parsers.parse(u"у мене є рядок який містить '{content}'")) def _(content, string): string["content"] = content given(u"I have an alias with a unicode type for foo", target_fixture="foo") @then(parsers.parse("I should see that the string equals to content '{content}'")) def _(content, string): assert string["content"] == content """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_unicode.py:55: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps_in_feature_file_have_unicode0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _________ ERROR collecting test_steps_in_feature_file_have_unicode.py __________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps_in_feature_file_have_unicode.py::test_unicode without arguments has no effect =========================== short test summary info ============================ ERROR test_steps_in_feature_file_have_unicode.py - pytest.PytestWarning: usef... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.42s =============================== ______________________ test_steps_in_py_file_have_unicode ______________________ pytester = def test_steps_in_py_file_have_unicode(pytester): pytester.makefile( ".feature", unicode=textwrap.dedent( """\ Feature: Юнікодні символи Scenario: Steps in .py file have unicode Given there is an other string with content 'якийсь контент' Then I should see that the other string equals to content 'якийсь контент' """ ), ) pytester.makepyfile( textwrap.dedent( """\ import pytest from pytest_bdd import given, then, scenario @scenario("unicode.feature", "Steps in .py file have unicode") def test_unicode(): pass @pytest.fixture def string(): return {"content": ""} @given("there is an other string with content 'якийсь контент'") def _(string): string["content"] = u"с каким-то контентом" @then("I should see that the other string equals to content 'якийсь контент'") def _(string): assert string["content"] == u"с каким-то контентом" """ ) ) result = pytester.runpytest() > result.assert_outcomes(passed=1) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 1} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/steps/test_unicode.py:99: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_steps_in_py_file_have_unicode0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ____________ ERROR collecting test_steps_in_py_file_have_unicode.py ____________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_steps_in_py_file_have_unicode.py::test_unicode without arguments has no effect =========================== short test summary info ============================ ERROR test_steps_in_py_file_have_unicode.py - pytest.PytestWarning: usefixtur... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.30s =============================== _____________________ test_conftest_module_evaluated_twice _____________________ pytester = def test_conftest_module_evaluated_twice(pytester): """Regression test for https://github.com/pytest-dev/pytest-bdd/issues/62""" pytester.makeconftest("") subdir = pytester.mkpydir("subdir") subdir.joinpath("conftest.py").write_text( textwrap.dedent( r""" def pytest_pyfunc_call(pyfuncitem): print('\npytest_pyfunc_call hook') def pytest_generate_tests(metafunc): print('\npytest_generate_tests hook') """ ) ) subdir.joinpath("test_foo.py").write_text( textwrap.dedent( r""" from pytest_bdd import scenario @scenario('foo.feature', 'Some scenario') def test_foo(): pass """ ) ) subdir.joinpath("foo.feature").write_text( textwrap.dedent( r""" Feature: The feature Scenario: Some scenario """ ) ) result = pytester.runpytest("-s") > assert result.stdout.lines.count("pytest_pyfunc_call hook") == 1 E AssertionError: assert 0 == 1 E + where 0 = ('pytest_pyfunc_call hook') E + where = ['============================= test session starts ==============================', 'platform linux -- Python 3.13.7,.../test_conftest_module_evaluated_twice0', 'plugins: bdd-7.1.2, typeguard-4.4.4', 'collected 0 items / 1 error', '', ...].count E + where ['============================= test session starts ==============================', 'platform linux -- Python 3.13.7,.../test_conftest_module_evaluated_twice0', 'plugins: bdd-7.1.2, typeguard-4.4.4', 'collected 0 items / 1 error', '', ...] = <_pytest.pytester.LineMatcher object at 0x7f6750ebd550>.lines E + where <_pytest.pytester.LineMatcher object at 0x7f6750ebd550> = .stdout /build/reproducible-path/pytest-bdd-7.1.2/tests/test_hooks.py:46: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_conftest_module_evaluated_twice0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== _____________________ ERROR collecting subdir/test_foo.py ______________________ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in subdir/test_foo.py::test_foo without arguments has no effect =========================== short test summary info ============================ ERROR subdir/test_foo.py - pytest.PytestWarning: usefixtures() in subdir/test... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.37s =============================== _____________ test_pytest_bdd_after_scenario_called_after_scenario _____________ pytester = def test_pytest_bdd_after_scenario_called_after_scenario(pytester): """Regression test for https://github.com/pytest-dev/pytest-bdd/pull/577""" pytester.makefile( ".feature", foo=textwrap.dedent( """\ Feature: A feature Scenario: Scenario 1 Given foo When bar Then baz Scenario: Scenario 2 When bar Then baz """ ), ) pytester.makepyfile( """ import pytest from pytest_bdd import given, when, then, scenarios scenarios("foo.feature") @given("foo") @when("bar") @then("baz") def _(): pass """ ) pytester.makeconftest( """ from pytest_bdd.utils import dump_obj def pytest_bdd_after_scenario(request, feature, scenario): dump_obj([feature, scenario]) """ ) result = pytester.runpytest("-s") > result.assert_outcomes(passed=2) E AssertionError: assert {'errors': 1,...pped': 0, ...} == {'errors': 0,...pped': 0, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'passed': 0} != {'passed': 2} E {'errors': 1} != {'errors': 0} E Use -v to get more diff /build/reproducible-path/pytest-bdd-7.1.2/tests/test_hooks.py:129: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 rootdir: /tmp/pytest-of-pbuilder1/pytest-0/test_pytest_bdd_after_scenario_called_after_scenario0 plugins: bdd-7.1.2, typeguard-4.4.4 collected 0 items / 1 error ==================================== ERRORS ==================================== ___ ERROR collecting test_pytest_bdd_after_scenario_called_after_scenario.py ___ /usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:475: in traced_hookexec return outcome.get_result() ^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pluggy/_manager.py:472: in lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:240: in pytest_pycollect_makeitem return list(collector._genfunctions(name, obj)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:448: in _genfunctions definition = FunctionDefinition.from_parent(self, name=name, callobj=funcobj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1625: in from_parent return super().from_parent(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:233: in from_parent return cls._create(parent=parent, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/nodes.py:110: in _create return super().__call__(*k, **kw) # type: ignore[no-any-return,misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/python.py:1616: in __init__ fixtureinfo = fm.getfixtureinfo(self, self.obj, self.cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1570: in getfixtureinfo initialnames = deduplicate_names(autousenames, usefixturesnames, argnames) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in deduplicate_names return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1497: in return tuple(dict.fromkeys(name for seq in seqs for name in seq)) ^^^ /usr/lib/python3/dist-packages/_pytest/fixtures.py:1617: in _getusefixturesnames marker_node.warn( /usr/lib/python3/dist-packages/_pytest/nodes.py:271: in warn warnings.warn_explicit( E pytest.PytestWarning: usefixtures() in test_pytest_bdd_after_scenario_called_after_scenario.py::test_scenario_1 without arguments has no effect =========================== short test summary info ============================ ERROR test_pytest_bdd_after_scenario_called_after_scenario.py - pytest.Pytest... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.40s =============================== =========================== short test summary info ============================ FAILED tests/args/cfparse/test_args.py::test_every_step_takes_param_with_the_same_name FAILED tests/args/cfparse/test_args.py::test_argument_in_when - AssertionErro... FAILED tests/args/parse/test_args.py::test_every_steps_takes_param_with_the_same_name FAILED tests/args/parse/test_args.py::test_argument_in_when_step_1 - Assertio... FAILED tests/args/regex/test_args.py::test_every_steps_takes_param_with_the_same_name FAILED tests/args/regex/test_args.py::test_exact_match - AssertionError: asse... FAILED tests/args/regex/test_args.py::test_argument_in_when - AssertionError:... FAILED tests/args/test_common.py::test_reuse_same_step_different_converters FAILED tests/args/test_common.py::test_string_steps_dont_take_precedence - As... FAILED tests/feature/test_alias.py::test_step_alias - AssertionError: assert ... FAILED tests/feature/test_background.py::test_background_basic - AssertionErr... FAILED tests/feature/test_background.py::test_background_check_order - Assert... FAILED tests/feature/test_cucumber_json.py::test_step_trace - AssertionError:... FAILED tests/feature/test_description.py::test_description - AssertionError: ... FAILED tests/feature/test_gherkin_terminal_reporter.py::test_default_output_should_be_the_same_as_regular_terminal_reporter FAILED tests/feature/test_gherkin_terminal_reporter.py::test_verbose_mode_should_display_feature_and_scenario_names_instead_of_test_names_in_a_single_line FAILED tests/feature/test_gherkin_terminal_reporter.py::test_double_verbose_mode_should_display_full_scenario_description FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[-v] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_for_missing_steps[-vv] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_should_be_displayed[] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_should_be_displayed[-v] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_error_message_should_be_displayed[-vv] FAILED tests/feature/test_gherkin_terminal_reporter.py::test_local_variables_should_be_displayed_when_showlocals_option_is_used FAILED tests/feature/test_gherkin_terminal_reporter.py::test_step_parameters_should_be_replaced_by_their_values FAILED tests/feature/test_no_sctrict_gherkin.py::test_background_no_strict_gherkin FAILED tests/feature/test_no_sctrict_gherkin.py::test_scenario_no_strict_gherkin FAILED tests/feature/test_outline_empty_values.py::test_scenario_with_empty_example_values FAILED tests/feature/test_report.py::test_step_trace - ValueError: could not ... FAILED tests/feature/test_same_function_name.py::test_when_function_name_same_as_step_name FAILED tests/feature/test_scenario.py::test_scenario_comments - AssertionErro... FAILED tests/feature/test_scenario.py::test_angular_brakets_are_not_parsed - ... FAILED tests/feature/test_steps.py::test_steps - AssertionError: assert {'err... FAILED tests/feature/test_steps.py::test_step_function_can_be_decorated_multiple_times FAILED tests/feature/test_steps.py::test_all_steps_can_provide_fixtures - Ass... FAILED tests/feature/test_steps.py::test_when_first - AssertionError: assert ... FAILED tests/feature/test_steps.py::test_then_after_given - AssertionError: a... FAILED tests/feature/test_steps.py::test_conftest - AssertionError: assert {'... FAILED tests/feature/test_steps.py::test_multiple_given - AssertionError: ass... FAILED tests/feature/test_steps.py::test_step_hooks - IndexError: list index ... FAILED tests/feature/test_steps.py::test_step_trace - AssertionError: assert ... FAILED tests/feature/test_steps.py::test_steps_with_yield - AssertionError: a... FAILED tests/feature/test_tags.py::test_tags_selector - KeyError: 'passed' FAILED tests/feature/test_tags.py::test_tags_after_background_issue_160 - Key... FAILED tests/feature/test_tags.py::test_apply_tag_hook - Failed: nomatch: 'SK... FAILED tests/feature/test_tags.py::test_tag_with_spaces - Failed: nomatch: '*... FAILED tests/feature/test_tags.py::test_at_in_scenario - Failed: nomatch: '*=... FAILED tests/generation/test_generate_missing.py::test_generate_missing - Ass... FAILED tests/generation/test_generate_missing.py::test_generate_missing_with_step_parsers FAILED tests/library/test_parent.py::test_global_when_step - AssertionError: ... FAILED tests/library/test_parent.py::test_uses_correct_step_in_the_hierarchy FAILED tests/steps/test_common.py::test_step_function_multiple_target_fixtures FAILED tests/steps/test_common.py::test_step_functions_same_parser - Assertio... FAILED tests/steps/test_common.py::test_user_implements_a_step_generator - As... FAILED tests/steps/test_common.py::test_step_catches_all - AssertionError: as... FAILED tests/steps/test_given.py::test_given_injection - AssertionError: asse... FAILED tests/steps/test_unicode.py::test_steps_in_feature_file_have_unicode FAILED tests/steps/test_unicode.py::test_steps_in_py_file_have_unicode - Asse... FAILED tests/test_hooks.py::test_conftest_module_evaluated_twice - AssertionE... FAILED tests/test_hooks.py::test_pytest_bdd_after_scenario_called_after_scenario =========== 60 failed, 59 passed, 1 skipped, 2 deselected in 40.37s ============ E: pybuild pybuild:389: test: plugin custom failed with: exit code=1: python3.13 -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 --system=custom "--test-args={interpreter} -m pytest -k 'not test_generate_with_quotes and not test_unicode_characters'" returned exit code 13 make[1]: *** [debian/rules:11: override_dh_auto_test] Error 25 make[1]: Leaving directory '/build/reproducible-path/pytest-bdd-7.1.2' make: *** [debian/rules:6: binary] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/1263792 and its subdirectories pytest-bdd failed to build from source. removed '/var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/amd64/pytest-bdd_7.1.2-2.rbuild.log' removed '/var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/amd64/pytest-bdd_7.1.2-2.rbuild.log.gz' removed '/var/lib/jenkins/userContent/reproducible/debian/logs/unstable/amd64/pytest-bdd_7.1.2-2.build1.log.gz' Thu Sep 18 07:01:21 UTC 2025 W: No second build log, what happened? Compressing the 1st log... b1/build.log: 92.6% -- replaced with stdout INSERT 0 1 INSERT 0 1 DELETE 1 [2025-09-18 07:01:21] INFO: Starting at 2025-09-18 07:01:21.718226 [2025-09-18 07:01:21] INFO: Generating the pages of 1 package(s) [2025-09-18 07:01:21] CRITICAL: https://tests.reproducible-builds.org/debian/unstable/amd64/pytest-bdd didn't produce a buildlog, even though it has been built. [2025-09-18 07:01:21] CRITICAL: https://tests.reproducible-builds.org/debian/forky/arm64/pytest-bdd didn't produce a buildlog, even though it has been built. [2025-09-18 07:01:21] INFO: Finished at 2025-09-18 07:01:21.973386, took: 0:00:00.255163 Thu Sep 18 07:01:22 UTC 2025 - successfully updated the database and updated https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/pytest-bdd.html Starting cleanup. /var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/amd64/pytest-bdd_7.1.2-2.rbuild.log: 92.3% -- replaced with /var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/amd64/pytest-bdd_7.1.2-2.rbuild.log.gz [2025-09-18 07:01:22] INFO: Starting at 2025-09-18 07:01:22.311767 [2025-09-18 07:01:22] INFO: Generating the pages of 1 package(s) [2025-09-18 07:01:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/amd64/pytest-bdd_7.1.2-2.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/amd64/pytest-bdd_7.1.2-2.diff.gz is missing [2025-09-18 07:01:22] CRITICAL: https://tests.reproducible-builds.org/debian/forky/arm64/pytest-bdd didn't produce a buildlog, even though it has been built. [2025-09-18 07:01:22] INFO: Finished at 2025-09-18 07:01:22.554176, took: 0:00:00.242412 All cleanup done. Thu Sep 18 07:01:22 UTC 2025 - total duration: 0h 4m 15s. Thu Sep 18 07:01:22 UTC 2025 - reproducible_build.sh stopped running as /tmp/jenkins-script-XLp0Ie7H, removing. Finished with result: success Main processes terminated with: code=exited, status=0/SUCCESS Service runtime: 4min 16.337s CPU time consumed: 2.607s Memory peak: 41.3M (swap: 0B)