Sat Jan 6 10:43:17 UTC 2024 I: starting to build pytest-testinfra/bookworm/arm64 on jenkins on '2024-01-06 10:43' Sat Jan 6 10:43:17 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/arm64_9/19343/console.log Sat Jan 6 10:43:17 UTC 2024 I: Downloading source for bookworm/pytest-testinfra=7.0.1-1 --2024-01-06 10:43:17-- http://cdn-fastly.deb.debian.org/debian/pool/main/p/pytest-testinfra/pytest-testinfra_7.0.1-1.dsc Connecting to 78.137.99.97:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 1744 (1.7K) [text/prs.lines.tag] Saving to: ‘pytest-testinfra_7.0.1-1.dsc’ 0K . 100% 221M=0s 2024-01-06 10:43:17 (221 MB/s) - ‘pytest-testinfra_7.0.1-1.dsc’ saved [1744/1744] Sat Jan 6 10:43:17 UTC 2024 I: pytest-testinfra_7.0.1-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: pytest-testinfra Binary: python3-testinfra Architecture: all Version: 7.0.1-1 Maintainer: Debian Python Team Uploaders: Baptiste Beauplat , Homepage: https://github.com/pytest-dev/pytest-testinfra Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/python-team/packages/pytest-testinfra Vcs-Git: https://salsa.debian.org/python-team/packages/pytest-testinfra.git Testsuite: autopkgtest Testsuite-Triggers: ansible, python3-mock, python3-paramiko, python3-pytest, python3-tornado, python3-winrm Build-Depends: ansible, debhelper-compat (= 13), dh-python, python3-all, python3-mock, python3-paramiko, python3-pytest, python3-setuptools, python3-setuptools-scm, python3-six, python3-tornado, python3-winrm Package-List: python3-testinfra deb python optional arch=all Checksums-Sha1: 255a9f53c09ab0b91da3ea1bd89b3681b0709a8e 79712 pytest-testinfra_7.0.1.orig.tar.gz 3f1ee553cfa11992e4d54094e5cc783728a056e4 3100 pytest-testinfra_7.0.1-1.debian.tar.xz Checksums-Sha256: 365b2d99b8c7ea1c68e1bef1a926d73ac65d8703cec6531f0ebe2ef75070e6f8 79712 pytest-testinfra_7.0.1.orig.tar.gz dc97baa1fa82f6ae6f2f008fa6342608495f68bbe7b91b813443f7231b6ccf1a 3100 pytest-testinfra_7.0.1-1.debian.tar.xz Files: e6d3940e1c032b9dc70d0d7abe08e2aa 79712 pytest-testinfra_7.0.1.orig.tar.gz 5562e882a0d68c42813e393b8108702a 3100 pytest-testinfra_7.0.1-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iIkEARYIADEWIQQt4kiVMTxdp/CJ4U4XSUsQeV3XMwUCY7MuKxMcbHlrbm9kZUBk ZWJpYW4ub3JnAAoJEBdJSxB5XdczedsBAPFW7j2wjsYwspQ7Yrs9k2A0BRlV2aT6 ndFuxlCALmsRAP9IoUUiiZmTvZtGFP3Xs2VfIon5YUeI7yohT1/YAdprDw== =FTWq -----END PGP SIGNATURE----- Sat Jan 6 10:43:17 UTC 2024 I: Checking whether the package is not for us Sat Jan 6 10:43:17 UTC 2024 I: Starting 1st build on remote node codethink03-arm64.debian.net. Sat Jan 6 10:43:17 UTC 2024 I: Preparing to do remote build '1' on codethink03-arm64.debian.net. Sat Jan 6 10:45:42 UTC 2024 I: Deleting $TMPDIR on codethink03-arm64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Fri Feb 7 05:06:19 -12 2025 I: pbuilder-time-stamp: 1738947979 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-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-testinfra_7.0.1-1.dsc] I: copying [./pytest-testinfra_7.0.1.orig.tar.gz] I: copying [./pytest-testinfra_7.0.1-1.debian.tar.xz] I: Extracting source gpgv: Signature made Mon Jan 2 19:19:07 2023 gpgv: using EDDSA key 2DE24895313C5DA7F089E14E17494B10795DD733 gpgv: issuer "lyknode@debian.org" gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./pytest-testinfra_7.0.1-1.dsc: no acceptable signature found dpkg-source: info: extracting pytest-testinfra in pytest-testinfra-7.0.1 dpkg-source: info: unpacking pytest-testinfra_7.0.1.orig.tar.gz dpkg-source: info: unpacking pytest-testinfra_7.0.1-1.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 0001-Skip-salt-backend-test.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3720231/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='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' DISTRIBUTION='bookworm' HOME='/root' HOST_ARCH='arm64' IFS=' ' INVOCATION_ID='0ace9c10b28c45b88de0a825d56a0b63' 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='3720231' 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.uYltjp8O/pbuilderrc_P4DU --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.uYltjp8O/b1 --logfile b1/build.log pytest-testinfra_7.0.1-1.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.104:3128' I: uname -a Linux codethink03-arm64 6.1.0-17-cloud-arm64 #1 SMP Debian 6.1.69-1 (2023-12-30) aarch64 GNU/Linux I: ls -l /bin total 7104 -rwxr-xr-x 1 root root 1346480 Apr 23 2023 bash -rwxr-xr-x 3 root root 67728 Sep 19 2022 bunzip2 -rwxr-xr-x 3 root root 67728 Sep 19 2022 bzcat lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep -rwxr-xr-x 3 root root 67728 Sep 19 2022 bzip2 -rwxr-xr-x 1 root root 67664 Sep 19 2022 bzip2recover lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore -rwxr-xr-x 1 root root 68536 Sep 20 2022 cat -rwxr-xr-x 1 root root 68616 Sep 20 2022 chgrp -rwxr-xr-x 1 root root 68552 Sep 20 2022 chmod -rwxr-xr-x 1 root root 68632 Sep 20 2022 chown -rwxr-xr-x 1 root root 200264 Sep 20 2022 cp -rwxr-xr-x 1 root root 133640 Jan 5 2023 dash -rwxr-xr-x 1 root root 134144 Sep 20 2022 date -rwxr-xr-x 1 root root 134248 Sep 20 2022 dd -rwxr-xr-x 1 root root 134888 Sep 20 2022 df -rwxr-xr-x 1 root root 200440 Sep 20 2022 dir -rwxr-xr-x 1 root root 141720 Mar 23 2023 dmesg lrwxrwxrwx 1 root root 8 Dec 19 2022 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Dec 19 2022 domainname -> hostname -rwxr-xr-x 1 root root 68408 Sep 20 2022 echo -rwxr-xr-x 1 root root 41 Jan 24 2023 egrep -rwxr-xr-x 1 root root 68384 Sep 20 2022 false -rwxr-xr-x 1 root root 41 Jan 24 2023 fgrep -rwxr-xr-x 1 root root 134584 Mar 23 2023 findmnt -rwsr-xr-x 1 root root 67744 Mar 23 2023 fusermount -rwxr-xr-x 1 root root 198880 Jan 24 2023 grep -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe -rwxr-xr-x 1 root root 93752 Apr 10 2022 gzip -rwxr-xr-x 1 root root 67592 Dec 19 2022 hostname -rwxr-xr-x 1 root root 68664 Sep 20 2022 ln -rwxr-xr-x 1 root root 69208 Mar 23 2023 login -rwxr-xr-x 1 root root 200440 Sep 20 2022 ls -rwxr-xr-x 1 root root 264360 Mar 23 2023 lsblk -rwxr-xr-x 1 root root 134384 Sep 20 2022 mkdir -rwxr-xr-x 1 root root 68768 Sep 20 2022 mknod -rwxr-xr-x 1 root root 68472 Sep 20 2022 mktemp -rwxr-xr-x 1 root root 67752 Mar 23 2023 more -rwsr-xr-x 1 root root 67744 Mar 23 2023 mount -rwxr-xr-x 1 root root 67744 Mar 23 2023 mountpoint -rwxr-xr-x 1 root root 134728 Sep 20 2022 mv lrwxrwxrwx 1 root root 8 Dec 19 2022 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Apr 3 2023 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 68496 Sep 20 2022 pwd lrwxrwxrwx 1 root root 4 Apr 23 2023 rbash -> bash -rwxr-xr-x 1 root root 68456 Sep 20 2022 readlink -rwxr-xr-x 1 root root 68592 Sep 20 2022 rm -rwxr-xr-x 1 root root 68480 Sep 20 2022 rmdir -rwxr-xr-x 1 root root 68392 Jul 28 2023 run-parts -rwxr-xr-x 1 root root 134536 Jan 5 2023 sed lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash -rwxr-xr-x 1 root root 68432 Sep 20 2022 sleep -rwxr-xr-x 1 root root 134088 Sep 20 2022 stty -rwsr-xr-x 1 root root 133312 Mar 23 2023 su -rwxr-xr-x 1 root root 68448 Sep 20 2022 sync -rwxr-xr-x 1 root root 539896 Apr 6 2023 tar -rwxr-xr-x 1 root root 67904 Jul 28 2023 tempfile -rwxr-xr-x 1 root root 134160 Sep 20 2022 touch -rwxr-xr-x 1 root root 68384 Sep 20 2022 true -rwxr-xr-x 1 root root 67664 Mar 23 2023 ulockmgr_server -rwsr-xr-x 1 root root 67744 Mar 23 2023 umount -rwxr-xr-x 1 root root 68416 Sep 20 2022 uname -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress -rwxr-xr-x 1 root root 200440 Sep 20 2022 vdir -rwxr-xr-x 1 root root 133312 Mar 23 2023 wdctl lrwxrwxrwx 1 root root 8 Dec 19 2022 ypdomainname -> hostname -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew I: user script /srv/workspace/pbuilder/3720231/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: arm64 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: ansible, debhelper-compat (= 13), dh-python, python3-all, python3-mock, python3-paramiko, python3-pytest, python3-setuptools, python3-setuptools-scm, python3-six, python3-tornado, python3-winrm dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 18171 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 ansible; however: Package ansible is not installed. pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-mock; however: Package python3-mock is not installed. pbuilder-satisfydepends-dummy depends on python3-paramiko; however: Package python3-paramiko is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools-scm; however: Package python3-setuptools-scm is not installed. pbuilder-satisfydepends-dummy depends on python3-six; however: Package python3-six is not installed. pbuilder-satisfydepends-dummy depends on python3-tornado; however: Package python3-tornado is not installed. pbuilder-satisfydepends-dummy depends on python3-winrm; however: Package python3-winrm 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: ansible{a} ansible-core{a} 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} ieee-data{a} intltool-debian{a} libarchive-zip-perl{a} libbsd0{a} libcbor0.8{a} libdebhelper-perl{a} libedit2{a} libelf1{a} libexpat1{a} libfido2-1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1{a} libpipeline1{a} libpsl5{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libreadline8{a} libsodium23{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssh-client{a} openssl{a} po-debconf{a} python3{a} python3-all{a} python3-attr{a} python3-bcrypt{a} python3-certifi{a} python3-cffi-backend{a} python3-chardet{a} python3-charset-normalizer{a} python3-cryptography{a} python3-distutils{a} python3-dnspython{a} python3-httplib2{a} python3-idna{a} python3-iniconfig{a} python3-jinja2{a} python3-lib2to3{a} python3-markupsafe{a} python3-minimal{a} python3-mock{a} python3-more-itertools{a} python3-nacl{a} python3-netaddr{a} python3-ntlm-auth{a} python3-packaging{a} python3-paramiko{a} python3-pbr{a} python3-pkg-resources{a} python3-pluggy{a} python3-py{a} python3-pycryptodome{a} python3-pyparsing{a} python3-pytest{a} python3-requests{a} python3-requests-ntlm{a} python3-resolvelib{a} python3-setuptools{a} python3-setuptools-scm{a} python3-six{a} python3-tornado{a} python3-typing-extensions{a} python3-urllib3{a} python3-winrm{a} python3-xmltodict{a} python3-yaml{a} python3.11{a} python3.11-minimal{a} readline-common{a} sensible-utils{a} wget{a} The following packages are RECOMMENDED but will NOT be installed: libarchive-cpio-perl libltdl-dev libmail-sendmail-perl publicsuffix python3-argcomplete python3-babel python3-h2 python3-httpx python3-invoke python3-jmespath python3-kerberos python3-libcloud python3-pygments python3-requests-kerberos python3-requests-toolbelt python3-selinux xauth 0 packages upgraded, 99 newly installed, 0 to remove and 0 not upgraded. Need to get 52.9 MB of archives. After unpacking 371 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian bookworm/main arm64 libpython3.11-minimal arm64 3.11.2-6 [806 kB] Get: 2 http://deb.debian.org/debian bookworm/main arm64 libexpat1 arm64 2.5.0-1 [84.8 kB] Get: 3 http://deb.debian.org/debian bookworm/main arm64 python3.11-minimal arm64 3.11.2-6 [1858 kB] Get: 4 http://deb.debian.org/debian bookworm/main arm64 python3-minimal arm64 3.11.2-1+b1 [26.3 kB] Get: 5 http://deb.debian.org/debian bookworm/main arm64 media-types all 10.0.0 [26.1 kB] Get: 6 http://deb.debian.org/debian bookworm/main arm64 readline-common all 8.2-1.3 [69.0 kB] Get: 7 http://deb.debian.org/debian bookworm/main arm64 libreadline8 arm64 8.2-1.3 [155 kB] Get: 8 http://deb.debian.org/debian bookworm/main arm64 libpython3.11-stdlib arm64 3.11.2-6 [1747 kB] Get: 9 http://deb.debian.org/debian bookworm/main arm64 python3.11 arm64 3.11.2-6 [572 kB] Get: 10 http://deb.debian.org/debian bookworm/main arm64 libpython3-stdlib arm64 3.11.2-1+b1 [9296 B] Get: 11 http://deb.debian.org/debian bookworm/main arm64 python3 arm64 3.11.2-1+b1 [26.3 kB] Get: 12 http://deb.debian.org/debian bookworm/main arm64 netbase all 6.4 [12.8 kB] Get: 13 http://deb.debian.org/debian bookworm/main arm64 sensible-utils all 0.0.17+nmu1 [19.0 kB] Get: 14 http://deb.debian.org/debian bookworm/main arm64 openssl arm64 3.0.11-1~deb12u2 [1385 kB] Get: 15 http://deb.debian.org/debian bookworm/main arm64 ca-certificates all 20230311 [153 kB] Get: 16 http://deb.debian.org/debian bookworm/main arm64 libmagic-mgc arm64 1:5.44-3 [305 kB] Get: 17 http://deb.debian.org/debian bookworm/main arm64 libmagic1 arm64 1:5.44-3 [98.5 kB] Get: 18 http://deb.debian.org/debian bookworm/main arm64 file arm64 1:5.44-3 [42.5 kB] Get: 19 http://deb.debian.org/debian bookworm/main arm64 gettext-base arm64 0.21-12 [159 kB] Get: 20 http://deb.debian.org/debian bookworm/main arm64 libuchardet0 arm64 0.0.7-1 [67.9 kB] Get: 21 http://deb.debian.org/debian bookworm/main arm64 groff-base arm64 1.22.4-10 [861 kB] Get: 22 http://deb.debian.org/debian bookworm/main arm64 bsdextrautils arm64 2.38.1-5+b1 [86.9 kB] Get: 23 http://deb.debian.org/debian bookworm/main arm64 libpipeline1 arm64 1.5.7-1 [36.4 kB] Get: 24 http://deb.debian.org/debian bookworm/main arm64 man-db arm64 2.11.2-2 [1369 kB] Get: 25 http://deb.debian.org/debian bookworm/main arm64 libbsd0 arm64 0.11.7-2 [115 kB] Get: 26 http://deb.debian.org/debian bookworm/main arm64 libedit2 arm64 3.1-20221030-2 [88.1 kB] Get: 27 http://deb.debian.org/debian bookworm/main arm64 libcbor0.8 arm64 0.8.0-2+b1 [26.0 kB] Get: 28 http://deb.debian.org/debian bookworm/main arm64 libfido2-1 arm64 1.12.0-2+b1 [72.6 kB] Get: 29 http://deb.debian.org/debian bookworm/main arm64 openssh-client arm64 1:9.2p1-2+deb12u1 [935 kB] Get: 30 http://deb.debian.org/debian bookworm/main arm64 libpsl5 arm64 0.21.2-1 [58.6 kB] Get: 31 http://deb.debian.org/debian bookworm/main arm64 wget arm64 1.21.3-1+b1 [967 kB] Get: 32 http://deb.debian.org/debian bookworm/main arm64 python3-cffi-backend arm64 1.15.1-5+b1 [84.4 kB] Get: 33 http://deb.debian.org/debian bookworm/main arm64 python3-cryptography arm64 38.0.4-3 [589 kB] Get: 34 http://deb.debian.org/debian bookworm/main arm64 python3-markupsafe arm64 2.1.2-1+b1 [13.3 kB] Get: 35 http://deb.debian.org/debian bookworm/main arm64 python3-jinja2 all 3.1.2-1 [119 kB] Get: 36 http://deb.debian.org/debian bookworm/main arm64 python3-packaging all 23.0-1 [32.5 kB] Get: 37 http://deb.debian.org/debian bookworm/main arm64 python3-resolvelib all 0.9.0-2 [27.3 kB] Get: 38 http://deb.debian.org/debian bookworm/main arm64 libyaml-0-2 arm64 0.2.5-1 [50.4 kB] Get: 39 http://deb.debian.org/debian bookworm/main arm64 python3-yaml arm64 6.0-3+b2 [108 kB] Get: 40 http://deb.debian.org/debian bookworm/main arm64 python3-bcrypt arm64 3.2.2-1 [28.5 kB] Get: 41 http://deb.debian.org/debian bookworm/main arm64 libsodium23 arm64 1.0.18-1 [119 kB] Get: 42 http://deb.debian.org/debian bookworm/main arm64 python3-nacl arm64 1.5.0-2 [56.3 kB] Get: 43 http://deb.debian.org/debian bookworm/main arm64 python3-six all 1.16.0-4 [17.5 kB] Get: 44 http://deb.debian.org/debian bookworm/main arm64 python3-paramiko all 2.12.0-2 [133 kB] Get: 45 http://deb.debian.org/debian bookworm/main arm64 python3-pycryptodome arm64 3.11.0+dfsg1-4 [1010 kB] Get: 46 http://deb.debian.org/debian bookworm/main arm64 python3-lib2to3 all 3.11.2-3 [76.3 kB] Get: 47 http://deb.debian.org/debian bookworm/main arm64 python3-distutils all 3.11.2-3 [131 kB] Get: 48 http://deb.debian.org/debian bookworm/main arm64 python3-dnspython all 2.3.0-1 [152 kB] Get: 49 http://deb.debian.org/debian bookworm/main arm64 python3-pyparsing all 3.0.9-1 [138 kB] Get: 50 http://deb.debian.org/debian bookworm/main arm64 python3-httplib2 all 0.20.4-3 [36.0 kB] Get: 51 http://deb.debian.org/debian bookworm/main arm64 ieee-data all 20220827.1 [2029 kB] Get: 52 http://deb.debian.org/debian bookworm/main arm64 python3-netaddr all 0.8.0-2 [295 kB] Get: 53 http://deb.debian.org/debian bookworm/main arm64 ansible-core all 2.14.3-1 [1273 kB] Get: 54 http://deb.debian.org/debian bookworm/main arm64 ansible all 7.3.0+dfsg-1 [16.3 MB] Get: 55 http://deb.debian.org/debian bookworm/main arm64 m4 arm64 1.4.19-3 [276 kB] Get: 56 http://deb.debian.org/debian bookworm/main arm64 autoconf all 2.71-3 [332 kB] Get: 57 http://deb.debian.org/debian bookworm/main arm64 autotools-dev all 20220109.1 [51.6 kB] Get: 58 http://deb.debian.org/debian bookworm/main arm64 automake all 1:1.16.5-1.3 [823 kB] Get: 59 http://deb.debian.org/debian bookworm/main arm64 autopoint all 0.21-12 [495 kB] Get: 60 http://deb.debian.org/debian bookworm/main arm64 libdebhelper-perl all 13.11.4 [81.2 kB] Get: 61 http://deb.debian.org/debian bookworm/main arm64 libtool all 2.4.7-5 [517 kB] Get: 62 http://deb.debian.org/debian bookworm/main arm64 dh-autoreconf all 20 [17.1 kB] Get: 63 http://deb.debian.org/debian bookworm/main arm64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 64 http://deb.debian.org/debian bookworm/main arm64 libsub-override-perl all 0.09-4 [9304 B] Get: 65 http://deb.debian.org/debian bookworm/main arm64 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 66 http://deb.debian.org/debian bookworm/main arm64 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 67 http://deb.debian.org/debian bookworm/main arm64 libelf1 arm64 0.188-2.1 [173 kB] Get: 68 http://deb.debian.org/debian bookworm/main arm64 dwz arm64 0.15-1 [101 kB] Get: 69 http://deb.debian.org/debian bookworm/main arm64 libicu72 arm64 72.1-3 [9204 kB] Get: 70 http://deb.debian.org/debian bookworm/main arm64 libxml2 arm64 2.9.14+dfsg-1.3~deb12u1 [619 kB] Get: 71 http://deb.debian.org/debian bookworm/main arm64 gettext arm64 0.21-12 [1248 kB] Get: 72 http://deb.debian.org/debian bookworm/main arm64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 73 http://deb.debian.org/debian bookworm/main arm64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 74 http://deb.debian.org/debian bookworm/main arm64 debhelper all 13.11.4 [942 kB] Get: 75 http://deb.debian.org/debian bookworm/main arm64 dh-python all 5.20230130+deb12u1 [104 kB] Get: 76 http://deb.debian.org/debian bookworm/main arm64 python3-all arm64 3.11.2-1+b1 [1064 B] Get: 77 http://deb.debian.org/debian bookworm/main arm64 python3-attr all 22.2.0-1 [65.4 kB] Get: 78 http://deb.debian.org/debian bookworm/main arm64 python3-certifi all 2022.9.24-1 [153 kB] Get: 79 http://deb.debian.org/debian bookworm/main arm64 python3-pkg-resources all 66.1.1-1 [296 kB] Get: 80 http://deb.debian.org/debian bookworm/main arm64 python3-chardet all 5.1.0+dfsg-2 [110 kB] Get: 81 http://deb.debian.org/debian bookworm/main arm64 python3-charset-normalizer all 3.0.1-2 [49.3 kB] Get: 82 http://deb.debian.org/debian bookworm/main arm64 python3-idna all 3.3-1 [39.4 kB] Get: 83 http://deb.debian.org/debian bookworm/main arm64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 84 http://deb.debian.org/debian bookworm/main arm64 python3-setuptools all 66.1.1-1 [521 kB] Get: 85 http://deb.debian.org/debian bookworm/main arm64 python3-pbr all 5.10.0-2 [61.4 kB] Get: 86 http://deb.debian.org/debian bookworm/main arm64 python3-mock all 4.0.3-4 [64.0 kB] Get: 87 http://deb.debian.org/debian bookworm/main arm64 python3-more-itertools all 8.10.0-2 [53.0 kB] Get: 88 http://deb.debian.org/debian bookworm/main arm64 python3-ntlm-auth all 1.4.0-2 [21.9 kB] Get: 89 http://deb.debian.org/debian bookworm/main arm64 python3-pluggy all 1.0.0+repack-1 [19.7 kB] Get: 90 http://deb.debian.org/debian bookworm/main arm64 python3-py all 1.11.0-1 [89.2 kB] Get: 91 http://deb.debian.org/debian bookworm/main arm64 python3-pytest all 7.2.1-2 [236 kB] Get: 92 http://deb.debian.org/debian bookworm/main arm64 python3-urllib3 all 1.26.12-1 [117 kB] Get: 93 http://deb.debian.org/debian bookworm/main arm64 python3-requests all 2.28.1+dfsg-1 [67.9 kB] Get: 94 http://deb.debian.org/debian bookworm/main arm64 python3-requests-ntlm all 1.1.0-3 [6268 B] Get: 95 http://deb.debian.org/debian bookworm/main arm64 python3-typing-extensions all 4.4.0-1 [45.2 kB] Get: 96 http://deb.debian.org/debian bookworm/main arm64 python3-setuptools-scm all 7.1.0-3 [42.6 kB] Get: 97 http://deb.debian.org/debian bookworm/main arm64 python3-tornado arm64 6.2.0-3 [337 kB] Get: 98 http://deb.debian.org/debian bookworm/main arm64 python3-xmltodict all 0.13.0-1 [16.7 kB] Get: 99 http://deb.debian.org/debian bookworm/main arm64 python3-winrm all 0.3.0-4+deb12u1 [22.1 kB] Fetched 52.9 MB in 1s (54.4 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:arm64. (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 ... 18171 files and directories currently installed.) Preparing to unpack .../libpython3.11-minimal_3.11.2-6_arm64.deb ... Unpacking libpython3.11-minimal:arm64 (3.11.2-6) ... Selecting previously unselected package libexpat1:arm64. Preparing to unpack .../libexpat1_2.5.0-1_arm64.deb ... Unpacking libexpat1:arm64 (2.5.0-1) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.2-6_arm64.deb ... Unpacking python3.11-minimal (3.11.2-6) ... Setting up libpython3.11-minimal:arm64 (3.11.2-6) ... Setting up libexpat1:arm64 (2.5.0-1) ... Setting up python3.11-minimal (3.11.2-6) ... 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 ... 18487 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.2-1+b1_arm64.deb ... Unpacking python3-minimal (3.11.2-1+b1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.0.0_all.deb ... Unpacking media-types (10.0.0) ... Selecting previously unselected package readline-common. Preparing to unpack .../2-readline-common_8.2-1.3_all.deb ... Unpacking readline-common (8.2-1.3) ... Selecting previously unselected package libreadline8:arm64. Preparing to unpack .../3-libreadline8_8.2-1.3_arm64.deb ... Unpacking libreadline8:arm64 (8.2-1.3) ... Selecting previously unselected package libpython3.11-stdlib:arm64. Preparing to unpack .../4-libpython3.11-stdlib_3.11.2-6_arm64.deb ... Unpacking libpython3.11-stdlib:arm64 (3.11.2-6) ... Selecting previously unselected package python3.11. Preparing to unpack .../5-python3.11_3.11.2-6_arm64.deb ... Unpacking python3.11 (3.11.2-6) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../6-libpython3-stdlib_3.11.2-1+b1_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.11.2-1+b1) ... Setting up python3-minimal (3.11.2-1+b1) ... 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 ... 18921 files and directories currently installed.) Preparing to unpack .../00-python3_3.11.2-1+b1_arm64.deb ... Unpacking python3 (3.11.2-1+b1) ... Selecting previously unselected package netbase. Preparing to unpack .../01-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../02-sensible-utils_0.0.17+nmu1_all.deb ... Unpacking sensible-utils (0.0.17+nmu1) ... Selecting previously unselected package openssl. Preparing to unpack .../03-openssl_3.0.11-1~deb12u2_arm64.deb ... Unpacking openssl (3.0.11-1~deb12u2) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../04-ca-certificates_20230311_all.deb ... Unpacking ca-certificates (20230311) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../05-libmagic-mgc_1%3a5.44-3_arm64.deb ... Unpacking libmagic-mgc (1:5.44-3) ... Selecting previously unselected package libmagic1:arm64. Preparing to unpack .../06-libmagic1_1%3a5.44-3_arm64.deb ... Unpacking libmagic1:arm64 (1:5.44-3) ... Selecting previously unselected package file. Preparing to unpack .../07-file_1%3a5.44-3_arm64.deb ... Unpacking file (1:5.44-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../08-gettext-base_0.21-12_arm64.deb ... Unpacking gettext-base (0.21-12) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../09-libuchardet0_0.0.7-1_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../10-groff-base_1.22.4-10_arm64.deb ... Unpacking groff-base (1.22.4-10) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../11-bsdextrautils_2.38.1-5+b1_arm64.deb ... Unpacking bsdextrautils (2.38.1-5+b1) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../12-libpipeline1_1.5.7-1_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.7-1) ... Selecting previously unselected package man-db. Preparing to unpack .../13-man-db_2.11.2-2_arm64.deb ... Unpacking man-db (2.11.2-2) ... Selecting previously unselected package libbsd0:arm64. Preparing to unpack .../14-libbsd0_0.11.7-2_arm64.deb ... Unpacking libbsd0:arm64 (0.11.7-2) ... Selecting previously unselected package libedit2:arm64. Preparing to unpack .../15-libedit2_3.1-20221030-2_arm64.deb ... Unpacking libedit2:arm64 (3.1-20221030-2) ... Selecting previously unselected package libcbor0.8:arm64. Preparing to unpack .../16-libcbor0.8_0.8.0-2+b1_arm64.deb ... Unpacking libcbor0.8:arm64 (0.8.0-2+b1) ... Selecting previously unselected package libfido2-1:arm64. Preparing to unpack .../17-libfido2-1_1.12.0-2+b1_arm64.deb ... Unpacking libfido2-1:arm64 (1.12.0-2+b1) ... Selecting previously unselected package openssh-client. Preparing to unpack .../18-openssh-client_1%3a9.2p1-2+deb12u1_arm64.deb ... Unpacking openssh-client (1:9.2p1-2+deb12u1) ... Selecting previously unselected package libpsl5:arm64. Preparing to unpack .../19-libpsl5_0.21.2-1_arm64.deb ... Unpacking libpsl5:arm64 (0.21.2-1) ... Selecting previously unselected package wget. Preparing to unpack .../20-wget_1.21.3-1+b1_arm64.deb ... Unpacking wget (1.21.3-1+b1) ... Selecting previously unselected package python3-cffi-backend:arm64. Preparing to unpack .../21-python3-cffi-backend_1.15.1-5+b1_arm64.deb ... Unpacking python3-cffi-backend:arm64 (1.15.1-5+b1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../22-python3-cryptography_38.0.4-3_arm64.deb ... Unpacking python3-cryptography (38.0.4-3) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../23-python3-markupsafe_2.1.2-1+b1_arm64.deb ... Unpacking python3-markupsafe (2.1.2-1+b1) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../24-python3-jinja2_3.1.2-1_all.deb ... Unpacking python3-jinja2 (3.1.2-1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../25-python3-packaging_23.0-1_all.deb ... Unpacking python3-packaging (23.0-1) ... Selecting previously unselected package python3-resolvelib. Preparing to unpack .../26-python3-resolvelib_0.9.0-2_all.deb ... Unpacking python3-resolvelib (0.9.0-2) ... Selecting previously unselected package libyaml-0-2:arm64. Preparing to unpack .../27-libyaml-0-2_0.2.5-1_arm64.deb ... Unpacking libyaml-0-2:arm64 (0.2.5-1) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../28-python3-yaml_6.0-3+b2_arm64.deb ... Unpacking python3-yaml (6.0-3+b2) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../29-python3-bcrypt_3.2.2-1_arm64.deb ... Unpacking python3-bcrypt (3.2.2-1) ... Selecting previously unselected package libsodium23:arm64. Preparing to unpack .../30-libsodium23_1.0.18-1_arm64.deb ... Unpacking libsodium23:arm64 (1.0.18-1) ... Selecting previously unselected package python3-nacl. Preparing to unpack .../31-python3-nacl_1.5.0-2_arm64.deb ... Unpacking python3-nacl (1.5.0-2) ... Selecting previously unselected package python3-six. Preparing to unpack .../32-python3-six_1.16.0-4_all.deb ... Unpacking python3-six (1.16.0-4) ... Selecting previously unselected package python3-paramiko. Preparing to unpack .../33-python3-paramiko_2.12.0-2_all.deb ... Unpacking python3-paramiko (2.12.0-2) ... Selecting previously unselected package python3-pycryptodome. Preparing to unpack .../34-python3-pycryptodome_3.11.0+dfsg1-4_arm64.deb ... Unpacking python3-pycryptodome (3.11.0+dfsg1-4) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../35-python3-lib2to3_3.11.2-3_all.deb ... Unpacking python3-lib2to3 (3.11.2-3) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../36-python3-distutils_3.11.2-3_all.deb ... Unpacking python3-distutils (3.11.2-3) ... Selecting previously unselected package python3-dnspython. Preparing to unpack .../37-python3-dnspython_2.3.0-1_all.deb ... Unpacking python3-dnspython (2.3.0-1) ... Selecting previously unselected package python3-pyparsing. Preparing to unpack .../38-python3-pyparsing_3.0.9-1_all.deb ... Unpacking python3-pyparsing (3.0.9-1) ... Selecting previously unselected package python3-httplib2. Preparing to unpack .../39-python3-httplib2_0.20.4-3_all.deb ... Unpacking python3-httplib2 (0.20.4-3) ... Selecting previously unselected package ieee-data. Preparing to unpack .../40-ieee-data_20220827.1_all.deb ... Unpacking ieee-data (20220827.1) ... Selecting previously unselected package python3-netaddr. Preparing to unpack .../41-python3-netaddr_0.8.0-2_all.deb ... Unpacking python3-netaddr (0.8.0-2) ... Selecting previously unselected package ansible-core. Preparing to unpack .../42-ansible-core_2.14.3-1_all.deb ... Unpacking ansible-core (2.14.3-1) ... Selecting previously unselected package ansible. Preparing to unpack .../43-ansible_7.3.0+dfsg-1_all.deb ... Unpacking ansible (7.3.0+dfsg-1) ... Selecting previously unselected package m4. Preparing to unpack .../44-m4_1.4.19-3_arm64.deb ... Unpacking m4 (1.4.19-3) ... Selecting previously unselected package autoconf. Preparing to unpack .../45-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../46-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../47-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../48-autopoint_0.21-12_all.deb ... Unpacking autopoint (0.21-12) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../49-libdebhelper-perl_13.11.4_all.deb ... Unpacking libdebhelper-perl (13.11.4) ... Selecting previously unselected package libtool. Preparing to unpack .../50-libtool_2.4.7-5_all.deb ... Unpacking libtool (2.4.7-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../51-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../52-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../53-libsub-override-perl_0.09-4_all.deb ... Unpacking libsub-override-perl (0.09-4) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../54-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../55-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1:arm64. Preparing to unpack .../56-libelf1_0.188-2.1_arm64.deb ... Unpacking libelf1:arm64 (0.188-2.1) ... Selecting previously unselected package dwz. Preparing to unpack .../57-dwz_0.15-1_arm64.deb ... Unpacking dwz (0.15-1) ... Selecting previously unselected package libicu72:arm64. Preparing to unpack .../58-libicu72_72.1-3_arm64.deb ... Unpacking libicu72:arm64 (72.1-3) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../59-libxml2_2.9.14+dfsg-1.3~deb12u1_arm64.deb ... Unpacking libxml2:arm64 (2.9.14+dfsg-1.3~deb12u1) ... Selecting previously unselected package gettext. Preparing to unpack .../60-gettext_0.21-12_arm64.deb ... Unpacking gettext (0.21-12) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../61-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 .../62-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../63-debhelper_13.11.4_all.deb ... Unpacking debhelper (13.11.4) ... Selecting previously unselected package dh-python. Preparing to unpack .../64-dh-python_5.20230130+deb12u1_all.deb ... Unpacking dh-python (5.20230130+deb12u1) ... Selecting previously unselected package python3-all. Preparing to unpack .../65-python3-all_3.11.2-1+b1_arm64.deb ... Unpacking python3-all (3.11.2-1+b1) ... Selecting previously unselected package python3-attr. Preparing to unpack .../66-python3-attr_22.2.0-1_all.deb ... Unpacking python3-attr (22.2.0-1) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../67-python3-certifi_2022.9.24-1_all.deb ... Unpacking python3-certifi (2022.9.24-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../68-python3-pkg-resources_66.1.1-1_all.deb ... Unpacking python3-pkg-resources (66.1.1-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../69-python3-chardet_5.1.0+dfsg-2_all.deb ... Unpacking python3-chardet (5.1.0+dfsg-2) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../70-python3-charset-normalizer_3.0.1-2_all.deb ... Unpacking python3-charset-normalizer (3.0.1-2) ... Selecting previously unselected package python3-idna. Preparing to unpack .../71-python3-idna_3.3-1_all.deb ... Unpacking python3-idna (3.3-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../72-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../73-python3-setuptools_66.1.1-1_all.deb ... Unpacking python3-setuptools (66.1.1-1) ... Selecting previously unselected package python3-pbr. Preparing to unpack .../74-python3-pbr_5.10.0-2_all.deb ... Unpacking python3-pbr (5.10.0-2) ... Selecting previously unselected package python3-mock. Preparing to unpack .../75-python3-mock_4.0.3-4_all.deb ... Unpacking python3-mock (4.0.3-4) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../76-python3-more-itertools_8.10.0-2_all.deb ... Unpacking python3-more-itertools (8.10.0-2) ... Selecting previously unselected package python3-ntlm-auth. Preparing to unpack .../77-python3-ntlm-auth_1.4.0-2_all.deb ... Unpacking python3-ntlm-auth (1.4.0-2) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../78-python3-pluggy_1.0.0+repack-1_all.deb ... Unpacking python3-pluggy (1.0.0+repack-1) ... Selecting previously unselected package python3-py. Preparing to unpack .../79-python3-py_1.11.0-1_all.deb ... Unpacking python3-py (1.11.0-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../80-python3-pytest_7.2.1-2_all.deb ... Unpacking python3-pytest (7.2.1-2) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../81-python3-urllib3_1.26.12-1_all.deb ... Unpacking python3-urllib3 (1.26.12-1) ... Selecting previously unselected package python3-requests. Preparing to unpack .../82-python3-requests_2.28.1+dfsg-1_all.deb ... Unpacking python3-requests (2.28.1+dfsg-1) ... Selecting previously unselected package python3-requests-ntlm. Preparing to unpack .../83-python3-requests-ntlm_1.1.0-3_all.deb ... Unpacking python3-requests-ntlm (1.1.0-3) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../84-python3-typing-extensions_4.4.0-1_all.deb ... Unpacking python3-typing-extensions (4.4.0-1) ... Selecting previously unselected package python3-setuptools-scm. Preparing to unpack .../85-python3-setuptools-scm_7.1.0-3_all.deb ... Unpacking python3-setuptools-scm (7.1.0-3) ... Selecting previously unselected package python3-tornado. Preparing to unpack .../86-python3-tornado_6.2.0-3_arm64.deb ... Unpacking python3-tornado (6.2.0-3) ... Selecting previously unselected package python3-xmltodict. Preparing to unpack .../87-python3-xmltodict_0.13.0-1_all.deb ... Unpacking python3-xmltodict (0.13.0-1) ... Selecting previously unselected package python3-winrm. Preparing to unpack .../88-python3-winrm_0.3.0-4+deb12u1_all.deb ... Unpacking python3-winrm (0.3.0-4+deb12u1) ... Setting up media-types (10.0.0) ... Setting up libpipeline1:arm64 (1.5.7-1) ... Setting up libpsl5:arm64 (0.21.2-1) ... Setting up libsodium23:arm64 (1.0.18-1) ... Setting up libicu72:arm64 (72.1-3) ... Setting up bsdextrautils (2.38.1-5+b1) ... Setting up wget (1.21.3-1+b1) ... Setting up libmagic-mgc (1:5.44-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:arm64 (0.2.5-1) ... Setting up libcbor0.8:arm64 (0.8.0-2+b1) ... Setting up libdebhelper-perl (13.11.4) ... Setting up libmagic1:arm64 (1:5.44-3) ... Setting up gettext-base (0.21-12) ... Setting up m4 (1.4.19-3) ... Setting up file (1:5.44-3) ... Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.21-12) ... Setting up autoconf (2.71-3) ... Setting up ieee-data (20220827.1) ... Setting up sensible-utils (0.0.17+nmu1) ... Setting up libuchardet0:arm64 (0.0.7-1) ... Setting up libsub-override-perl (0.09-4) ... Setting up netbase (6.4) ... Setting up libfido2-1:arm64 (1.12.0-2+b1) ... Setting up openssl (3.0.11-1~deb12u2) ... Setting up libbsd0:arm64 (0.11.7-2) ... Setting up libelf1:arm64 (0.188-2.1) ... Setting up readline-common (8.2-1.3) ... Setting up libxml2:arm64 (2.9.14+dfsg-1.3~deb12u1) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up gettext (0.21-12) ... Setting up libtool (2.4.7-5) ... Setting up libedit2:arm64 (3.1-20221030-2) ... Setting up libreadline8:arm64 (8.2-1.3) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up ca-certificates (20230311) ... Updating certificates in /etc/ssl/certs... 140 added, 0 removed; done. Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up dwz (0.15-1) ... Setting up groff-base (1.22.4-10) ... Setting up openssh-client (1:9.2p1-2+deb12u1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:arm64 (3.11.2-6) ... Setting up man-db (2.11.2-2) ... Not building database; man-db/auto-update is not 'true'. Setting up libpython3-stdlib:arm64 (3.11.2-1+b1) ... Setting up python3.11 (3.11.2-6) ... Setting up debhelper (13.11.4) ... Setting up python3 (3.11.2-1+b1) ... Setting up python3-markupsafe (2.1.2-1+b1) ... Setting up python3-six (1.16.0-4) ... Setting up python3-xmltodict (0.13.0-1) ... Setting up python3-jinja2 (3.1.2-1) ... Setting up python3-packaging (23.0-1) ... Setting up python3-pyparsing (3.0.9-1) ... Setting up python3-certifi (2022.9.24-1) ... Setting up python3-idna (3.3-1) ... Setting up python3-typing-extensions (4.4.0-1) ... Setting up python3-urllib3 (1.26.12-1) ... Setting up python3-pluggy (1.0.0+repack-1) ... Setting up python3-netaddr (0.8.0-2) ... Setting up python3-dnspython (2.3.0-1) ... Setting up python3-httplib2 (0.20.4-3) ... Setting up python3-lib2to3 (3.11.2-3) ... Setting up python3-cffi-backend:arm64 (1.15.1-5+b1) ... Setting up python3-pkg-resources (66.1.1-1) ... Setting up python3-distutils (3.11.2-3) ... Setting up dh-python (5.20230130+deb12u1) ... Setting up python3-more-itertools (8.10.0-2) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-attr (22.2.0-1) ... Setting up python3-tornado (6.2.0-3) ... Setting up python3-setuptools (66.1.1-1) ... Setting up python3-py (1.11.0-1) ... Setting up python3-pbr (5.10.0-2) ... Setting up python3-charset-normalizer (3.0.1-2) ... Setting up python3-ntlm-auth (1.4.0-2) ... Setting up python3-pytest (7.2.1-2) ... Setting up python3-pycryptodome (3.11.0+dfsg1-4) ... Setting up python3-bcrypt (3.2.2-1) ... Setting up python3-resolvelib (0.9.0-2) ... Setting up python3-all (3.11.2-1+b1) ... Setting up python3-yaml (6.0-3+b2) ... Setting up python3-setuptools-scm (7.1.0-3) ... Setting up python3-mock (4.0.3-4) ... Setting up python3-chardet (5.1.0+dfsg-2) ... Setting up python3-cryptography (38.0.4-3) ... Setting up python3-requests (2.28.1+dfsg-1) ... Setting up python3-nacl (1.5.0-2) ... Setting up python3-requests-ntlm (1.1.0-3) ... Setting up ansible-core (2.14.3-1) ... Setting up python3-winrm (0.3.0-4+deb12u1) ... Setting up ansible (7.3.0+dfsg-1) ... Setting up python3-paramiko (2.12.0-2) ... Processing triggers for libc-bin (2.36-9+deb12u3) ... Processing triggers for ca-certificates (20230311) ... 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-testinfra-7.0.1/ && 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-testinfra_7.0.1-1_source.changes dpkg-buildpackage: info: source package pytest-testinfra dpkg-buildpackage: info: source version 7.0.1-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Baptiste Beauplat dpkg-source --before-build . dpkg-buildpackage: info: host architecture arm64 debian/rules clean dh clean --with python3 --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:240: python3.11 setup.py clean /usr/lib/python3/dist-packages/setuptools/config/setupcfg.py:515: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. warnings.warn(msg, warning_class) running clean removing '/build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build' (and everything under it) 'build/bdist.linux-arm64' does not exist -- can't clean it 'build/scripts-3.11' does not exist -- can't clean it dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --with python3 --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:240: python3.11 setup.py config /usr/lib/python3/dist-packages/setuptools/config/setupcfg.py:515: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. warnings.warn(msg, warning_class) running config dh_auto_build -O--buildsystem=pybuild I: pybuild base:240: /usr/bin/python3 setup.py build /usr/lib/python3/dist-packages/setuptools/config/setupcfg.py:515: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. warnings.warn(msg, warning_class) running build running build_py creating /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra copying testinfra/plugin.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra copying testinfra/main.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra copying testinfra/host.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra copying testinfra/__init__.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra creating /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/utils copying testinfra/utils/ansible_runner.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/utils copying testinfra/utils/__init__.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/utils creating /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/user.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/systeminfo.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/sysctl.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/supervisor.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/sudo.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/socket.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/service.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/salt.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/puppet.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/process.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/podman.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/pip.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/package.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/mountpoint.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/iptables.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/interface.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/group.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/file.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/environment.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/docker.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/command.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/blockdevice.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/base.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/ansible.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/addr.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules copying testinfra/modules/__init__.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/modules creating /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/winrm.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/ssh.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/salt.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/podman.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/paramiko.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/openshift.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/lxc.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/local.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/kubectl.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/docker.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/chroot.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/base.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/ansible.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend copying testinfra/backend/__init__.py -> /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/backend dh_auto_test -O--buildsystem=pybuild I: pybuild base:240: cd /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build; python3.11 -m pytest test ============================= test session starts ============================== platform linux -- Python 3.11.2, pytest-7.2.1, pluggy-1.0.0+repack rootdir: /build/reproducible-path/pytest-testinfra-7.0.1, configfile: setup.cfg collected 187 items test/test_backends.py sssssssssssssssssssssssssssssssssssssssssssssssssF [ 26%] FFFFFFFFFFFFFFFFFFFFF................ss............................. [ 63%] test/test_invocation.py ... [ 64%] test/test_modules.py sssssssssssssssssssssssss.sssssssssssssssssssssssss [ 91%] sssssssssssssss [100%] =================================== FAILURES =================================== ____________________________ test_ansible_get_hosts ____________________________ def test_ansible_get_hosts(): with tempfile.NamedTemporaryFile() as f: f.write( ( b"ungrp\n" b"[g1]\n" b"debian\n" b"[g2]\n" b"centos\n" b"[g3:children]\n" b"g1\n" b"g2\n" b"[g4:children]\n" b"g3" ) ) f.flush() def get_hosts(spec): return AnsibleRunner(f.name).get_hosts(spec) > assert get_hosts("all") == ["centos", "debian", "ungrp"] test/test_backends.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_backends.py:143: in get_hosts return AnsibleRunner(f.name).get_hosts(spec) testinfra/utils/ansible_runner.py:252: in get_hosts inventory = self.inventory testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmphztmeaq0' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmphztmeaq0', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError __________________________ test_ansible_get_variables __________________________ def test_ansible_get_variables(): with tempfile.NamedTemporaryFile() as f: f.write( ( b"debian a=b c=d\n" b"centos e=f\n" b"[all:vars]\n" b"a=a\n" b"[g]\n" b"debian\n" b"[g:vars]\n" b"x=z\n" ) ) f.flush() def get_vars(host): return AnsibleRunner(f.name).get_variables(host) groups = { "all": ["centos", "debian"], "g": ["debian"], "ungrouped": ["centos"], } > assert get_vars("debian") == { "a": "b", "c": "d", "x": "z", "inventory_hostname": "debian", "group_names": ["g"], "groups": groups, } test/test_backends.py:181: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/test_backends.py:174: in get_vars return AnsibleRunner(f.name).get_variables(host) testinfra/utils/ansible_runner.py:282: in get_variables inventory = self.inventory testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpzdiuyvj9' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpzdiuyvj9', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs0-host ansible_connection=local ansible_become=yes ansible_become_user=u-expected0] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {} inventory = b'host ansible_connection=local ansible_become=yes ansible_become_user=u' expected = {'NAME': 'local', 'sudo': True, 'sudo_user': 'u'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpgs1fg3i5' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpgs1fg3i5', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError ________________ test_ansible_get_host[kwargs1-host-expected1] _________________ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {}, inventory = b'host' expected = {'NAME': 'ssh', 'host.name': 'host'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpkuobc718' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpkuobc718', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError ____ test_ansible_get_host[kwargs2-host ansible_connection=smart-expected2] ____ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {}, inventory = b'host ansible_connection=smart' expected = {'NAME': 'ssh', 'host.name': 'host'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpv6qxv38x' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpv6qxv38x', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs3-host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u-expected3] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {} inventory = b'host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u' expected = {'NAME': 'ssh', 'host.name': '127.0.1.1', 'host.port': '2222', 'ssh_identity_file': 'key', ...} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp18ukmrvh' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp18ukmrvh', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs4-host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u-expected4] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {} inventory = b'host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u' expected = {'NAME': 'ssh', 'host.name': '127.0.1.1', 'host.port': '2222', 'ssh_identity_file': 'key', ...} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmputi_3qwk' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmputi_3qwk', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs5-host ansible_ssh_common_args="-o LogLevel=FATAL"-expected5] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {}, inventory = b'host ansible_ssh_common_args="-o LogLevel=FATAL"' expected = {'NAME': 'ssh', 'host.name': 'host', 'ssh_extra_args': '-o LogLevel=FATAL'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp7k7iv5z_' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp7k7iv5z_', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs6-host ansible_ssh_extra_args="-o LogLevel=FATAL"-expected6] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {}, inventory = b'host ansible_ssh_extra_args="-o LogLevel=FATAL"' expected = {'NAME': 'ssh', 'host.name': 'host', 'ssh_extra_args': '-o LogLevel=FATAL'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp9742tlwx' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp9742tlwx', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs7-host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"-expected7] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {} inventory = b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"' expected = {'NAME': 'ssh', 'host.name': 'host', 'ssh_extra_args': '-o StrictHostKeyChecking=no -o LogLevel=FATAL'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp3p3hw4q8' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp3p3hw4q8', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError ___ test_ansible_get_host[kwargs8-host ansible_connection=docker-expected8] ____ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {}, inventory = b'host ansible_connection=docker' expected = {'NAME': 'docker', 'name': 'host', 'user': None} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp9eukqrdh' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp9eukqrdh', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs9-host ansible_connection=community.docker.docker-expected9] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {}, inventory = b'host ansible_connection=community.docker.docker' expected = {'NAME': 'docker', 'name': 'host', 'user': None} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp791ma8pd' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp791ma8pd', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_get_host[kwargs10-host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container-expected10] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {} inventory = b'host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container' expected = {'NAME': 'docker', 'name': 'container', 'sudo': True, 'sudo_user': 'u', ...} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpa_40ho1c' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpa_40ho1c', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _______________ test_ansible_get_host[kwargs11-host-expected11] ________________ self = host = 'host' kwargs = {'ssh_config': '/ssh_config', 'ssh_identity_file': '/id_ed25519'} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: kwargs = {'ssh_config': '/ssh_config', 'ssh_identity_file': '/id_ed25519'} inventory = b'host' expected = {'NAME': 'ssh', 'host.name': 'host', 'ssh_config': '/ssh_config', 'ssh_identity_file': '/id_ed25519'} @pytest.mark.parametrize( "kwargs,inventory,expected", [ ( {}, b"host ansible_connection=local ansible_become=yes ansible_become_user=u", { # noqa "NAME": "local", "sudo": True, "sudo_user": "u", }, ), ( {}, b"host", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_connection=smart", { "NAME": "ssh", "host.name": "host", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b"host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u", { # noqa "NAME": "ssh", "sudo": True, "sudo_user": "u", "host.name": "127.0.1.1", "host.port": "2222", "ssh_identity_file": "key", }, ), ( {}, b'host ansible_ssh_common_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_extra_args="-o LogLevel=FATAL"', { "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o LogLevel=FATAL", }, ), ( {}, b'host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"', { # noqa "NAME": "ssh", "host.name": "host", "ssh_extra_args": "-o StrictHostKeyChecking=no -o LogLevel=FATAL", }, ), ( {}, b"host ansible_connection=docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=community.docker.docker", { "NAME": "docker", "name": "host", "user": None, }, ), ( {}, b"host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container", { # noqa "NAME": "docker", "name": "container", "user": "z", "sudo": True, "sudo_user": "u", }, ), ( {"ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519"}, b"host", { "NAME": "ssh", "host.name": "host", "ssh_config": "/ssh_config", "ssh_identity_file": "/id_ed25519", }, ), ], ) def test_ansible_get_host(kwargs, inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host", **kwargs).backend test/test_backends.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp3t_tlrkq' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp3t_tlrkq', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_ssh_command[host-ssh -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: inventory = b'host' expected = 'ssh -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true' @pytest.mark.parametrize( "inventory,expected", [ ( b"host", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password passing from inventory: user is required ( b"host ansible_user=user ansible_ssh_pass=password", ( "sshpass -p password ssh -o User=user " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # identity_file has highest priority ( b"host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file", ( # noqa "ssh -o User=user -i some_file " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password without usr won't work ( b"host ansible_ssh_pass=password", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # avoid interference between our ssh backend and ansible_ssh_extra_args ( b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto ' b'-o ControlPersist=10s"', ( "ssh -o ConnectTimeout=5 -o ControlMaster=auto -o " "ControlPersist=10s host true" ), ), # escape % ( b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"', ( # noqa "ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 " "-o ControlMaster=auto -o ControlPersist=60s host true" ), ), ], ) def test_ansible_ssh_command(inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host").backend test/test_backends.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp7ny_6xcf' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp7ny_6xcf', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_ssh_command[host ansible_user=user ansible_ssh_pass=password-sshpass -p password ssh -o User=user -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: inventory = b'host ansible_user=user ansible_ssh_pass=password' expected = 'sshpass -p password ssh -o User=user -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true' @pytest.mark.parametrize( "inventory,expected", [ ( b"host", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password passing from inventory: user is required ( b"host ansible_user=user ansible_ssh_pass=password", ( "sshpass -p password ssh -o User=user " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # identity_file has highest priority ( b"host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file", ( # noqa "ssh -o User=user -i some_file " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password without usr won't work ( b"host ansible_ssh_pass=password", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # avoid interference between our ssh backend and ansible_ssh_extra_args ( b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto ' b'-o ControlPersist=10s"', ( "ssh -o ConnectTimeout=5 -o ControlMaster=auto -o " "ControlPersist=10s host true" ), ), # escape % ( b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"', ( # noqa "ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 " "-o ControlMaster=auto -o ControlPersist=60s host true" ), ), ], ) def test_ansible_ssh_command(inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host").backend test/test_backends.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp_a1krafh' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp_a1krafh', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_ssh_command[host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file-ssh -o User=user -i some_file -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: inventory = b'host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file' expected = 'ssh -o User=user -i some_file -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true' @pytest.mark.parametrize( "inventory,expected", [ ( b"host", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password passing from inventory: user is required ( b"host ansible_user=user ansible_ssh_pass=password", ( "sshpass -p password ssh -o User=user " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # identity_file has highest priority ( b"host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file", ( # noqa "ssh -o User=user -i some_file " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password without usr won't work ( b"host ansible_ssh_pass=password", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # avoid interference between our ssh backend and ansible_ssh_extra_args ( b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto ' b'-o ControlPersist=10s"', ( "ssh -o ConnectTimeout=5 -o ControlMaster=auto -o " "ControlPersist=10s host true" ), ), # escape % ( b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"', ( # noqa "ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 " "-o ControlMaster=auto -o ControlPersist=60s host true" ), ), ], ) def test_ansible_ssh_command(inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host").backend test/test_backends.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpboj1pp85' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpboj1pp85', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_ssh_command[host ansible_ssh_pass=password-ssh -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: inventory = b'host ansible_ssh_pass=password' expected = 'ssh -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true' @pytest.mark.parametrize( "inventory,expected", [ ( b"host", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password passing from inventory: user is required ( b"host ansible_user=user ansible_ssh_pass=password", ( "sshpass -p password ssh -o User=user " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # identity_file has highest priority ( b"host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file", ( # noqa "ssh -o User=user -i some_file " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password without usr won't work ( b"host ansible_ssh_pass=password", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # avoid interference between our ssh backend and ansible_ssh_extra_args ( b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto ' b'-o ControlPersist=10s"', ( "ssh -o ConnectTimeout=5 -o ControlMaster=auto -o " "ControlPersist=10s host true" ), ), # escape % ( b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"', ( # noqa "ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 " "-o ControlMaster=auto -o ControlPersist=60s host true" ), ), ], ) def test_ansible_ssh_command(inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host").backend test/test_backends.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpdabvbfly' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpdabvbfly', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_ssh_command[host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto -o ControlPersist=10s"-ssh -o ConnectTimeout=5 -o ControlMaster=auto -o ControlPersist=10s host true] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: inventory = b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto -o ControlPersist=10s"' expected = 'ssh -o ConnectTimeout=5 -o ControlMaster=auto -o ControlPersist=10s host true' @pytest.mark.parametrize( "inventory,expected", [ ( b"host", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password passing from inventory: user is required ( b"host ansible_user=user ansible_ssh_pass=password", ( "sshpass -p password ssh -o User=user " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # identity_file has highest priority ( b"host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file", ( # noqa "ssh -o User=user -i some_file " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password without usr won't work ( b"host ansible_ssh_pass=password", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # avoid interference between our ssh backend and ansible_ssh_extra_args ( b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto ' b'-o ControlPersist=10s"', ( "ssh -o ConnectTimeout=5 -o ControlMaster=auto -o " "ControlPersist=10s host true" ), ), # escape % ( b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"', ( # noqa "ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 " "-o ControlMaster=auto -o ControlPersist=60s host true" ), ), ], ) def test_ansible_ssh_command(inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host").backend test/test_backends.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmpwxe5wog8' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmpwxe5wog8', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _ test_ansible_ssh_command[host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"-ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] _ self = host = 'host', kwargs = {} def get_host(self, host, **kwargs): try: > return self._host_cache[host] E KeyError: 'host' testinfra/utils/ansible_runner.py:301: KeyError During handling of the above exception, another exception occurred: inventory = b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"' expected = 'ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true' @pytest.mark.parametrize( "inventory,expected", [ ( b"host", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password passing from inventory: user is required ( b"host ansible_user=user ansible_ssh_pass=password", ( "sshpass -p password ssh -o User=user " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # identity_file has highest priority ( b"host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file", ( # noqa "ssh -o User=user -i some_file " "-o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # password without usr won't work ( b"host ansible_ssh_pass=password", ( "ssh -o ConnectTimeout=10 -o ControlMaster=auto " "-o ControlPersist=60s host true" ), ), # avoid interference between our ssh backend and ansible_ssh_extra_args ( b'host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto ' b'-o ControlPersist=10s"', ( "ssh -o ConnectTimeout=5 -o ControlMaster=auto -o " "ControlPersist=10s host true" ), ), # escape % ( b'host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"', ( # noqa "ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 " "-o ControlMaster=auto -o ControlPersist=60s host true" ), ), ], ) def test_ansible_ssh_command(inventory, expected): with tempfile.NamedTemporaryFile() as f: f.write(inventory + b"\n") f.flush() > backend = AnsibleRunner(f.name).get_host("host").backend test/test_backends.py:386: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:304: in get_host self.ansible_config, self.inventory, host, **kwargs testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp38uvvvm7' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp38uvvvm7', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _____________________________ test_ansible_no_host _____________________________ def test_ansible_no_host(): with tempfile.NamedTemporaryFile() as f: f.write(b"host\n") f.flush() > assert AnsibleRunner(f.name).get_hosts() == ["host"] test/test_backends.py:396: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:252: in get_hosts inventory = self.inventory testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = '/tmp/tmp93aroxkb' def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list -i /tmp/tmp93aroxkb', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError _____________________________ test_ansible_config ______________________________ def test_ansible_config(): # test testinfra use ANSIBLE_CONFIG tmp = tempfile.NamedTemporaryFile with tmp(suffix=".cfg") as cfg, tmp() as inventory: cfg.write((b"[defaults]\n" b"inventory=" + inventory.name.encode() + b"\n")) cfg.flush() inventory.write(b"h\n") inventory.flush() old = os.environ.get("ANSIBLE_CONFIG") os.environ["ANSIBLE_CONFIG"] = cfg.name try: > assert AnsibleRunner(None).get_hosts("all") == ["h"] test/test_backends.py:428: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ testinfra/utils/ansible_runner.py:252: in get_hosts inventory = self.inventory testinfra/utils/__init__.py:29: in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj) testinfra/utils/ansible_runner.py:275: in inventory return get_ansible_inventory(self.ansible_config, self.inventory_file) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = inventory_file = None def get_ansible_inventory(config, inventory_file): # Disable ansible verbosity to avoid # https://github.com/ansible/ansible/issues/59973 cmd = "ANSIBLE_VERBOSITY=0 ansible-inventory --list" args = [] if inventory_file: cmd += " -i %s" args += [inventory_file] > return json.loads(local.check_output(cmd, *args)) E AssertionError: Unexpected exit code 1 for CommandResult(command=b'ANSIBLE_VERBOSITY=0 ansible-inventory --list', exit_status=1, stdout=None, stderr=b'ERROR: Ansible requires the locale encoding to be UTF-8; Detected None.\n') testinfra/utils/ansible_runner.py:55: AssertionError =============================== warnings summary =============================== test/test_backends.py:59 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_backends.py:59: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts(*(HOSTS + USER_HOSTS + SUDO_HOSTS + SUDO_USER_HOSTS)) test/test_backends.py:76 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_backends.py:76: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts(*HOSTS) test/test_backends.py:102 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_backends.py:102: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("ansible://debian_bullseye?force_ansible=True") test/test_backends.py:114 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_backends.py:114: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts(*(USER_HOSTS + SUDO_USER_HOSTS)) test/test_backends.py:119 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_backends.py:119: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts(*SUDO_HOSTS) test/test_backends.py:491 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_backends.py:491: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("docker://centos_7", "ssh://centos_7") test/test_modules.py:13 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:13: DeprecationWarning: 'crypt' is deprecated and slated for removal in Python 3.13 import crypt test/test_modules.py:24 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:24: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html all_images = pytest.mark.testinfra_hosts( test/test_modules.py:76 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:76: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("docker://centos_7") test/test_modules.py:83 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:83: PytestUnknownMarkWarning: Unknown pytest.mark.destructive - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.destructive test/test_modules.py:366 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:366: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("ansible://debian_bullseye") test/test_modules.py:408 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:408: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts( test/test_modules.py:428 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:428: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("ansible://debian_bullseye") test/test_modules.py:442 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:442: PytestUnknownMarkWarning: Unknown pytest.mark.destructive - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.destructive test/test_modules.py:541 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:541: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("docker://user@debian_bullseye") test/test_modules.py:661 /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/test/test_modules.py:661: PytestUnknownMarkWarning: Unknown pytest.mark.testinfra_hosts - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.testinfra_hosts("ansible://debian_bullseye") .pybuild/cpython3_3.11_testinfra/build/test/test_invocation.py::test_nagios_notest .pybuild/cpython3_3.11_testinfra/build/test/test_invocation.py::test_nagios_ok .pybuild/cpython3_3.11_testinfra/build/test/test_invocation.py::test_nagios_fail /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/plugin.py:192: PytestDeprecationWarning: The hookimpl pytest_configure uses old-style configuration options (marks or attributes). Please use the pytest.hookimpl(trylast=True) decorator instead to configure the hooks. See https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers @pytest.mark.trylast .pybuild/cpython3_3.11_testinfra/build/test/test_invocation.py::test_nagios_notest .pybuild/cpython3_3.11_testinfra/build/test/test_invocation.py::test_nagios_ok .pybuild/cpython3_3.11_testinfra/build/test/test_invocation.py::test_nagios_fail /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build/testinfra/plugin.py:210: PytestDeprecationWarning: The hookimpl pytest_sessionfinish uses old-style configuration options (marks or attributes). Please use the pytest.hookimpl(trylast=True) decorator instead to configure the hooks. See https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers @pytest.mark.trylast -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED test/test_backends.py::test_ansible_get_hosts - AssertionError: Unexpe... FAILED test/test_backends.py::test_ansible_get_variables - AssertionError: Un... FAILED test/test_backends.py::test_ansible_get_host[kwargs0-host ansible_connection=local ansible_become=yes ansible_become_user=u-expected0] FAILED test/test_backends.py::test_ansible_get_host[kwargs1-host-expected1] FAILED test/test_backends.py::test_ansible_get_host[kwargs2-host ansible_connection=smart-expected2] FAILED test/test_backends.py::test_ansible_get_host[kwargs3-host ansible_host=127.0.1.1 ansible_user=u ansible_ssh_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u-expected3] FAILED test/test_backends.py::test_ansible_get_host[kwargs4-host ansible_host=127.0.1.1 ansible_user=u ansible_private_key_file=key ansible_port=2222 ansible_become=yes ansible_become_user=u-expected4] FAILED test/test_backends.py::test_ansible_get_host[kwargs5-host ansible_ssh_common_args="-o LogLevel=FATAL"-expected5] FAILED test/test_backends.py::test_ansible_get_host[kwargs6-host ansible_ssh_extra_args="-o LogLevel=FATAL"-expected6] FAILED test/test_backends.py::test_ansible_get_host[kwargs7-host ansible_ssh_common_args="-o StrictHostKeyChecking=no" ansible_ssh_extra_args="-o LogLevel=FATAL"-expected7] FAILED test/test_backends.py::test_ansible_get_host[kwargs8-host ansible_connection=docker-expected8] FAILED test/test_backends.py::test_ansible_get_host[kwargs9-host ansible_connection=community.docker.docker-expected9] FAILED test/test_backends.py::test_ansible_get_host[kwargs10-host ansible_connection=docker ansible_become=yes ansible_become_user=u ansible_user=z ansible_host=container-expected10] FAILED test/test_backends.py::test_ansible_get_host[kwargs11-host-expected11] FAILED test/test_backends.py::test_ansible_ssh_command[host-ssh -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] FAILED test/test_backends.py::test_ansible_ssh_command[host ansible_user=user ansible_ssh_pass=password-sshpass -p password ssh -o User=user -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] FAILED test/test_backends.py::test_ansible_ssh_command[host ansible_user=user ansible_ssh_pass=password ansible_ssh_private_key_file=some_file-ssh -o User=user -i some_file -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] FAILED test/test_backends.py::test_ansible_ssh_command[host ansible_ssh_pass=password-ssh -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] FAILED test/test_backends.py::test_ansible_ssh_command[host ansible_ssh_extra_args="-o ConnectTimeout=5 -o ControlMaster=auto -o ControlPersist=10s"-ssh -o ConnectTimeout=5 -o ControlMaster=auto -o ControlPersist=10s host true] FAILED test/test_backends.py::test_ansible_ssh_command[host ansible_ssh_extra_args="-o ControlPath ~/.ssh/ansible/cp/%r@%h-%p"-ssh -o ControlPath ~/.ssh/ansible/cp/%r@%h-%p -o ConnectTimeout=10 -o ControlMaster=auto -o ControlPersist=60s host true] FAILED test/test_backends.py::test_ansible_no_host - AssertionError: Unexpect... FAILED test/test_backends.py::test_ansible_config - AssertionError: Unexpecte... =========== 22 failed, 49 passed, 116 skipped, 22 warnings in 5.73s ============ E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/pytest-testinfra-7.0.1/.pybuild/cpython3_3.11_testinfra/build; python3.11 -m pytest test dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13 make: *** [debian/rules:6: binary] Error 25 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/3720231 and its subdirectories Sat Jan 6 10:45:43 UTC 2024 W: No second build log, what happened?