Running as unit: rb-build-i386_19-30967.service ==================================================================================== Fri Nov 22 05:09:15 UTC 2024 - running /srv/jenkins/bin/reproducible_build.sh (for job reproducible_builder_i386_19) on jenkins, called using "infom07-i386 infom08-i386" as arguments. Fri Nov 22 05:09:15 UTC 2024 - actually running "reproducible_build.sh" (md5sum 68e686e434c9ab7bc3ec047d8b309cbc) as "/tmp/jenkins-script-Ks190DVC" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Fri Nov 22 05:09:15 UTC 2024 - checking /var/lib/jenkins/offline_nodes if infom07-i386.debian.net is marked as down. Fri Nov 22 05:09:15 UTC 2024 - checking via ssh if infom07-i386.debian.net is up. removed '/tmp/read-only-fs-test-0MMGjX' Fri Nov 22 05:09:16 UTC 2024 - checking /var/lib/jenkins/offline_nodes if infom08-i386.debian.net is marked as down. Fri Nov 22 05:09:16 UTC 2024 - checking via ssh if infom08-i386.debian.net is up. removed '/tmp/read-only-fs-test-SxXoMN' ok, let's check if python-etcd is building anywhere yet… ok, python-etcd is not building anywhere… UPDATE 1 ============================================================================= Initialising reproducibly build of python-etcd in unstable on i386 on jenkins now. 1st build will be done on infom07-i386.debian.net. 2nd build will be done on infom08-i386.debian.net. ============================================================================= Fri Nov 22 05:09:33 UTC 2024 I: starting to build python-etcd/unstable/i386 on jenkins on '2024-11-22 05:09' Fri Nov 22 05:09:33 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/i386_19/30967/console.log 1732252173 i386 unstable python-etcd Fri Nov 22 05:09:33 UTC 2024 I: Downloading source for unstable/python-etcd=0.4.5-4 --2024-11-22 05:09:33-- http://deb.debian.org/debian/pool/main/p/python-etcd/python-etcd_0.4.5-4.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2133 (2.1K) [text/prs.lines.tag] Saving to: ‘python-etcd_0.4.5-4.dsc’ 0K .. 100% 262M=0s 2024-11-22 05:09:33 (262 MB/s) - ‘python-etcd_0.4.5-4.dsc’ saved [2133/2133] --2024-11-22 05:09:33-- http://deb.debian.org/debian/pool/main/p/python-etcd/python-etcd_0.4.5-4.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2133 (2.1K) [text/prs.lines.tag] Saving to: ‘python-etcd_0.4.5-4.dsc’ 0K .. 100% 262M=0s 2024-11-22 05:09:33 (262 MB/s) - ‘python-etcd_0.4.5-4.dsc’ saved [2133/2133] Fri Nov 22 05:09:33 UTC 2024 I: python-etcd_0.4.5-4.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: python-etcd Binary: python3-etcd Architecture: all Version: 0.4.5-4 Maintainer: Debian Python Team Uploaders: Jelmer Vernooij Homepage: https://github.com/jplana/python-etcd Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/python-team/packages/python-etcd Vcs-Git: https://salsa.debian.org/python-team/packages/python-etcd.git Build-Depends: debhelper-compat (= 13), dh-python, python3-all, python3-dnspython , python3-mock , python3-pytest , python3-openssl , python3-setuptools, python3-urllib3 Package-List: python3-etcd deb python optional arch=all Checksums-Sha1: 62359ac00990978664f3ee6a89b8887cebcc76f9 38902 python-etcd_0.4.5.orig.tar.gz 48ab1282a7c11cbbaba8bbbcaa223e7d2c066ecf 3124 python-etcd_0.4.5-4.debian.tar.xz Checksums-Sha256: 208e5794dd86d1a0a51753b0cd05caa2b55ff6917f917d88a92fd0b760d838db 38902 python-etcd_0.4.5.orig.tar.gz 93c6cca7da3fbc7845939a98341368e061b60edb85f55bb611c6dcf950e144e9 3124 python-etcd_0.4.5-4.debian.tar.xz Files: a6607033cada348e97d35b9d6656156a 38902 python-etcd_0.4.5.orig.tar.gz b3486a85b4bdde023d154c46594d9a33 3124 python-etcd_0.4.5-4.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEElUWWlhkoHBf/rFiR1QhaB1D9t6MFAmMogOUACgkQ1QhaB1D9 t6P2YA//d0kv+PJjRtMoYb6mREmNTegTLt+Ppp0hALFMj3Hxgyu7mxSnxPTl3+i7 wDgW0JrpvZOdMEcpBUeyGPbDOpFfypEWjLi+UNWjpkpLbarnF5JuHBE8XAjLCv/S C5Kfp/IWS75ywx5Zslfw1lkMkdknmjhsJEhgYUGRXSIXQmcLfGRaf/JQCgVho2g8 ry/ehGC4IiuIx+giU/mlu7G6JBwVdqDbTlZUhYRe3QHk+9HrIyyhd3CPhuvU6Yir ddE+FksFPXafLVEHVDVXi3CVmZq9P/uz5zCi67BfRGvdkDUIaCVdZHkx9OmYcIZ8 A58PqB5EEzFkk01WL6QESGpmwwYldow89ZE8tJngHt7ZWjU41pM/3mzXRA7rQoRh slQHIxRT2tFN1JOC6iyySclcsnsK3X0vAgCTtMdoJb+EDHlGNVYnkLJ3qV9NELTR GWBsT5IQ/CfO9haLgzNdeVBne9LIVGw5ducA5n2/rhzyPEi99s/mkpWFRHNtmbZ5 vkxxEqc+cK13M6F3cnvv9XqRbmjqTQxzNZ5jt4tcS06c5GqW0+SdCpsCnm765Zbw JAaVD+YX9krgq/zVozBe+6NDjbai866eiudwDjUNyqw1uXy6vQsO7NaOtr61qklM zf7ALRSSqyCNyF/jbNX4qNx86/hne+8u9FT5hxlqLJY3Oe7Urns= =aXyi -----END PGP SIGNATURE----- Fri Nov 22 05:09:33 UTC 2024 I: Checking whether the package is not for us Fri Nov 22 05:09:33 UTC 2024 I: Starting 1st build on remote node infom07-i386.debian.net. Fri Nov 22 05:09:33 UTC 2024 I: Preparing to do remote build '1' on infom07-i386.debian.net. Fri Nov 22 05:09:33 UTC 2024 - checking /var/lib/jenkins/offline_nodes if infom07-i386.debian.net is marked as down. Fri Nov 22 05:09:33 UTC 2024 - checking via ssh if infom07-i386.debian.net is up. removed '/tmp/read-only-fs-test-oazGC9' ==================================================================================== Fri Nov 22 05:09:35 UTC 2024 - running /srv/jenkins/bin/reproducible_build.sh (for job /srv/jenkins/bin/reproducible_build.sh) on infom07-i386, called using "1 python-etcd unstable /srv/reproducible-results/rbuild-debian/r-b-build.wn5UyE27 0.4.5-4" as arguments. Fri Nov 22 05:09:35 UTC 2024 - actually running "reproducible_build.sh" (md5sum 68e686e434c9ab7bc3ec047d8b309cbc) as "/tmp/jenkins-script-OpfcdxQQ" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Fri Nov 22 05:09:35 UTC 2024 I: Downloading source for unstable/python-etcd=0.4.5-4 Reading package lists... NOTICE: 'python-etcd' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/python-etcd.git Please use: git clone https://salsa.debian.org/python-team/packages/python-etcd.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 44.2 kB of source archives. Get:1 http://deb.debian.org/debian unstable/main python-etcd 0.4.5-4 (dsc) [2133 B] Get:2 http://deb.debian.org/debian unstable/main python-etcd 0.4.5-4 (tar) [38.9 kB] Get:3 http://deb.debian.org/debian unstable/main python-etcd 0.4.5-4 (diff) [3124 B] Fetched 44.2 kB in 0s (443 kB/s) Download complete and in download only mode Reading package lists... NOTICE: 'python-etcd' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/python-team/packages/python-etcd.git Please use: git clone https://salsa.debian.org/python-team/packages/python-etcd.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 44.2 kB of source archives. Get:1 http://deb.debian.org/debian unstable/main python-etcd 0.4.5-4 (dsc) [2133 B] Get:2 http://deb.debian.org/debian unstable/main python-etcd 0.4.5-4 (tar) [38.9 kB] Get:3 http://deb.debian.org/debian unstable/main python-etcd 0.4.5-4 (diff) [3124 B] Fetched 44.2 kB in 0s (443 kB/s) Download complete and in download only mode ============================================================================= Building python-etcd in unstable on i386 on infom07-i386 now. Date: Fri Nov 22 05:09:35 UTC 2024 Date UTC: Fri Nov 22 05:09:35 UTC 2024 ============================================================================= W: /root/.pbuilderrc does not exist I: Logging to b1/build.log I: pbuilder: network access will be disabled during build I: Current time: Thu Nov 21 17:09:35 -12 2024 I: pbuilder-time-stamp: 1732252175 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: using eatmydata during job I: Copying source file I: copying [python-etcd_0.4.5-4.dsc] I: copying [./python-etcd_0.4.5.orig.tar.gz] I: copying [./python-etcd_0.4.5-4.debian.tar.xz] I: Extracting source gpgv: Signature made Mon Sep 19 14:47:01 2022 gpgv: using RSA key 9545969619281C17FFAC5891D5085A0750FDB7A3 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./python-etcd_0.4.5-4.dsc: no acceptable signature found dpkg-source: info: extracting python-etcd in python-etcd-0.4.5 dpkg-source: info: unpacking python-etcd_0.4.5.orig.tar.gz dpkg-source: info: unpacking python-etcd_0.4.5-4.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/15834/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='i386' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=6 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='i386' IFS=' ' INVOCATION_ID='0cd05b97c4b44b4a8d0c80b81d842f07' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' LD_LIBRARY_PATH='/usr/lib/libeatmydata' LD_PRELOAD='libeatmydata.so' 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='15834' 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.wn5UyE27/pbuilderrc_uGgv --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wn5UyE27/b1 --logfile b1/build.log python-etcd_0.4.5-4.dsc' SUDO_GID='111' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' I: uname -a Linux infom07-i386 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin I: user script /srv/workspace/pbuilder/15834/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: i386 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-python, python3-all, python3-dnspython, python3-mock, python3-pytest, python3-openssl, python3-setuptools, python3-urllib3 dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19952 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-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-dnspython; however: Package python3-dnspython is not installed. pbuilder-satisfydepends-dummy depends on python3-mock; however: Package python3-mock is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-openssl; however: Package python3-openssl is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-urllib3; however: Package python3-urllib3 is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libcom-err2{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libgssapi-krb5-2{a} libicu72{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} libmagic-mgc{a} libmagic1t64{a} libnsl2{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} po-debconf{a} python3{a} python3-all{a} python3-autocommand{a} python3-bcrypt{a} python3-cffi-backend{a} python3-cryptography{a} python3-dnspython{a} python3-inflect{a} python3-iniconfig{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-minimal{a} python3-mock{a} python3-more-itertools{a} python3-openssl{a} python3-packaging{a} python3-pkg-resources{a} python3-pluggy{a} python3-pytest{a} python3-setuptools{a} python3-typeguard{a} python3-typing-extensions{a} python3-urllib3{a} python3-zipp{a} python3.12{a} python3.12-minimal{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: ca-certificates curl krb5-locales libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python3-h2 python3-httpcore python3-httpx python3-idna python3-pygments wget 0 packages upgraded, 79 newly installed, 0 to remove and 0 not upgraded. Need to get 36.4 MB of archives. After unpacking 142 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main i386 libpython3.12-minimal i386 3.12.7-3 [814 kB] Get: 2 http://deb.debian.org/debian unstable/main i386 libexpat1 i386 2.6.4-1 [107 kB] Get: 3 http://deb.debian.org/debian unstable/main i386 python3.12-minimal i386 3.12.7-3 [2236 kB] Get: 4 http://deb.debian.org/debian unstable/main i386 python3-minimal i386 3.12.7-1 [26.8 kB] Get: 5 http://deb.debian.org/debian unstable/main i386 media-types all 10.1.0 [26.9 kB] Get: 6 http://deb.debian.org/debian unstable/main i386 netbase all 6.4 [12.8 kB] Get: 7 http://deb.debian.org/debian unstable/main i386 tzdata all 2024b-3 [255 kB] Get: 8 http://deb.debian.org/debian unstable/main i386 libkrb5support0 i386 1.21.3-3 [34.9 kB] Get: 9 http://deb.debian.org/debian unstable/main i386 libcom-err2 i386 1.47.1-1+b1 [23.4 kB] Get: 10 http://deb.debian.org/debian unstable/main i386 libk5crypto3 i386 1.21.3-3 [83.6 kB] Get: 11 http://deb.debian.org/debian unstable/main i386 libkeyutils1 i386 1.6.3-4 [9600 B] Get: 12 http://deb.debian.org/debian unstable/main i386 libkrb5-3 i386 1.21.3-3 [350 kB] Get: 13 http://deb.debian.org/debian unstable/main i386 libgssapi-krb5-2 i386 1.21.3-3 [146 kB] Get: 14 http://deb.debian.org/debian unstable/main i386 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB] Get: 15 http://deb.debian.org/debian unstable/main i386 libtirpc3t64 i386 1.3.4+ds-1.3+b1 [90.5 kB] Get: 16 http://deb.debian.org/debian unstable/main i386 libnsl2 i386 1.3.0-3+b3 [42.7 kB] Get: 17 http://deb.debian.org/debian unstable/main i386 readline-common all 8.2-5 [69.3 kB] Get: 18 http://deb.debian.org/debian unstable/main i386 libreadline8t64 i386 8.2-5 [173 kB] Get: 19 http://deb.debian.org/debian unstable/main i386 libpython3.12-stdlib i386 3.12.7-3 [1964 kB] Get: 20 http://deb.debian.org/debian unstable/main i386 python3.12 i386 3.12.7-3 [671 kB] Get: 21 http://deb.debian.org/debian unstable/main i386 libpython3-stdlib i386 3.12.7-1 [9712 B] Get: 22 http://deb.debian.org/debian unstable/main i386 python3 i386 3.12.7-1 [27.8 kB] Get: 23 http://deb.debian.org/debian unstable/main i386 libpython3.13-minimal i386 3.13.0-2 [856 kB] Get: 24 http://deb.debian.org/debian unstable/main i386 python3.13-minimal i386 3.13.0-2 [2112 kB] Get: 25 http://deb.debian.org/debian unstable/main i386 sensible-utils all 0.0.24 [24.8 kB] Get: 26 http://deb.debian.org/debian unstable/main i386 libmagic-mgc i386 1:5.45-3+b1 [314 kB] Get: 27 http://deb.debian.org/debian unstable/main i386 libmagic1t64 i386 1:5.45-3+b1 [115 kB] Get: 28 http://deb.debian.org/debian unstable/main i386 file i386 1:5.45-3+b1 [43.2 kB] Get: 29 http://deb.debian.org/debian unstable/main i386 gettext-base i386 0.22.5-2 [201 kB] Get: 30 http://deb.debian.org/debian unstable/main i386 libuchardet0 i386 0.0.8-1+b2 [69.2 kB] Get: 31 http://deb.debian.org/debian unstable/main i386 groff-base i386 1.23.0-5 [1196 kB] Get: 32 http://deb.debian.org/debian unstable/main i386 bsdextrautils i386 2.40.2-11 [95.6 kB] Get: 33 http://deb.debian.org/debian unstable/main i386 libpipeline1 i386 1.5.8-1 [41.2 kB] Get: 34 http://deb.debian.org/debian unstable/main i386 man-db i386 2.13.0-1 [1428 kB] Get: 35 http://deb.debian.org/debian unstable/main i386 m4 i386 1.4.19-4 [293 kB] Get: 36 http://deb.debian.org/debian unstable/main i386 autoconf all 2.72-3 [493 kB] Get: 37 http://deb.debian.org/debian unstable/main i386 autotools-dev all 20220109.1 [51.6 kB] Get: 38 http://deb.debian.org/debian unstable/main i386 automake all 1:1.16.5-1.3 [823 kB] Get: 39 http://deb.debian.org/debian unstable/main i386 autopoint all 0.22.5-2 [723 kB] Get: 40 http://deb.debian.org/debian unstable/main i386 libdebhelper-perl all 13.20 [89.7 kB] Get: 41 http://deb.debian.org/debian unstable/main i386 libtool all 2.4.7-8 [517 kB] Get: 42 http://deb.debian.org/debian unstable/main i386 dh-autoreconf all 20 [17.1 kB] Get: 43 http://deb.debian.org/debian unstable/main i386 libarchive-zip-perl all 1.68-1 [104 kB] Get: 44 http://deb.debian.org/debian unstable/main i386 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB] Get: 45 http://deb.debian.org/debian unstable/main i386 dh-strip-nondeterminism all 1.14.0-1 [8448 B] Get: 46 http://deb.debian.org/debian unstable/main i386 libelf1t64 i386 0.192-4 [195 kB] Get: 47 http://deb.debian.org/debian unstable/main i386 dwz i386 0.15-1+b1 [116 kB] Get: 48 http://deb.debian.org/debian unstable/main i386 libicu72 i386 72.1-5+b1 [9583 kB] Get: 49 http://deb.debian.org/debian unstable/main i386 libxml2 i386 2.12.7+dfsg+really2.9.14-0.2+b1 [734 kB] Get: 50 http://deb.debian.org/debian unstable/main i386 gettext i386 0.22.5-2 [1631 kB] Get: 51 http://deb.debian.org/debian unstable/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 52 http://deb.debian.org/debian unstable/main i386 po-debconf all 1.0.21+nmu1 [248 kB] Get: 53 http://deb.debian.org/debian unstable/main i386 debhelper all 13.20 [915 kB] Get: 54 http://deb.debian.org/debian unstable/main i386 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 55 http://deb.debian.org/debian unstable/main i386 python3-more-itertools all 10.5.0-1 [63.8 kB] Get: 56 http://deb.debian.org/debian unstable/main i386 python3-typing-extensions all 4.12.2-2 [73.0 kB] Get: 57 http://deb.debian.org/debian unstable/main i386 python3-typeguard all 4.4.1-1 [37.0 kB] Get: 58 http://deb.debian.org/debian unstable/main i386 python3-inflect all 7.3.1-2 [32.4 kB] Get: 59 http://deb.debian.org/debian unstable/main i386 python3-jaraco.context all 6.0.0-1 [7984 B] Get: 60 http://deb.debian.org/debian unstable/main i386 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 61 http://deb.debian.org/debian unstable/main i386 python3-pkg-resources all 75.2.0-1 [213 kB] Get: 62 http://deb.debian.org/debian unstable/main i386 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 63 http://deb.debian.org/debian unstable/main i386 python3-zipp all 3.21.0-1 [10.6 kB] Get: 64 http://deb.debian.org/debian unstable/main i386 python3-setuptools all 75.2.0-1 [731 kB] Get: 65 http://deb.debian.org/debian unstable/main i386 dh-python all 6.20241024 [109 kB] Get: 66 http://deb.debian.org/debian unstable/main i386 libpython3.13-stdlib i386 3.13.0-2 [2002 kB] Get: 67 http://deb.debian.org/debian unstable/main i386 python3.13 i386 3.13.0-2 [730 kB] Get: 68 http://deb.debian.org/debian unstable/main i386 python3-all i386 3.12.7-1 [1052 B] Get: 69 http://deb.debian.org/debian unstable/main i386 python3-bcrypt i386 4.2.0-2.1 [248 kB] Get: 70 http://deb.debian.org/debian unstable/main i386 python3-cffi-backend i386 1.17.1-2+b1 [95.5 kB] Get: 71 http://deb.debian.org/debian unstable/main i386 python3-cryptography i386 43.0.0-1 [975 kB] Get: 72 http://deb.debian.org/debian unstable/main i386 python3-dnspython all 2.6.1-1 [161 kB] Get: 73 http://deb.debian.org/debian unstable/main i386 python3-iniconfig all 1.1.1-2 [6396 B] Get: 74 http://deb.debian.org/debian unstable/main i386 python3-mock all 5.1.0-1 [70.2 kB] Get: 75 http://deb.debian.org/debian unstable/main i386 python3-openssl all 24.2.1-1 [53.2 kB] Get: 76 http://deb.debian.org/debian unstable/main i386 python3-packaging all 24.2-1 [55.3 kB] Get: 77 http://deb.debian.org/debian unstable/main i386 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 78 http://deb.debian.org/debian unstable/main i386 python3-pytest all 8.3.3-1 [249 kB] Get: 79 http://deb.debian.org/debian unstable/main i386 python3-urllib3 all 2.0.7-2 [111 kB] Fetched 36.4 MB in 0s (110 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.12-minimal:i386. (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 ... 19952 files and directories currently installed.) Preparing to unpack .../libpython3.12-minimal_3.12.7-3_i386.deb ... Unpacking libpython3.12-minimal:i386 (3.12.7-3) ... Selecting previously unselected package libexpat1:i386. Preparing to unpack .../libexpat1_2.6.4-1_i386.deb ... Unpacking libexpat1:i386 (2.6.4-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../python3.12-minimal_3.12.7-3_i386.deb ... Unpacking python3.12-minimal (3.12.7-3) ... Setting up libpython3.12-minimal:i386 (3.12.7-3) ... Setting up libexpat1:i386 (2.6.4-1) ... Setting up python3.12-minimal (3.12.7-3) ... 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 ... 20272 files and directories currently installed.) Preparing to unpack .../00-python3-minimal_3.12.7-1_i386.deb ... Unpacking python3-minimal (3.12.7-1) ... Selecting previously unselected package media-types. Preparing to unpack .../01-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../02-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../03-tzdata_2024b-3_all.deb ... Unpacking tzdata (2024b-3) ... Selecting previously unselected package libkrb5support0:i386. Preparing to unpack .../04-libkrb5support0_1.21.3-3_i386.deb ... Unpacking libkrb5support0:i386 (1.21.3-3) ... Selecting previously unselected package libcom-err2:i386. Preparing to unpack .../05-libcom-err2_1.47.1-1+b1_i386.deb ... Unpacking libcom-err2:i386 (1.47.1-1+b1) ... Selecting previously unselected package libk5crypto3:i386. Preparing to unpack .../06-libk5crypto3_1.21.3-3_i386.deb ... Unpacking libk5crypto3:i386 (1.21.3-3) ... Selecting previously unselected package libkeyutils1:i386. Preparing to unpack .../07-libkeyutils1_1.6.3-4_i386.deb ... Unpacking libkeyutils1:i386 (1.6.3-4) ... Selecting previously unselected package libkrb5-3:i386. Preparing to unpack .../08-libkrb5-3_1.21.3-3_i386.deb ... Unpacking libkrb5-3:i386 (1.21.3-3) ... Selecting previously unselected package libgssapi-krb5-2:i386. Preparing to unpack .../09-libgssapi-krb5-2_1.21.3-3_i386.deb ... Unpacking libgssapi-krb5-2:i386 (1.21.3-3) ... Selecting previously unselected package libtirpc-common. Preparing to unpack .../10-libtirpc-common_1.3.4+ds-1.3_all.deb ... Unpacking libtirpc-common (1.3.4+ds-1.3) ... Selecting previously unselected package libtirpc3t64:i386. Preparing to unpack .../11-libtirpc3t64_1.3.4+ds-1.3+b1_i386.deb ... Adding 'diversion of /lib/i386-linux-gnu/libtirpc.so.3 to /lib/i386-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' Adding 'diversion of /lib/i386-linux-gnu/libtirpc.so.3.0.0 to /lib/i386-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' Unpacking libtirpc3t64:i386 (1.3.4+ds-1.3+b1) ... Selecting previously unselected package libnsl2:i386. Preparing to unpack .../12-libnsl2_1.3.0-3+b3_i386.deb ... Unpacking libnsl2:i386 (1.3.0-3+b3) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_8.2-5_all.deb ... Unpacking readline-common (8.2-5) ... Selecting previously unselected package libreadline8t64:i386. Preparing to unpack .../14-libreadline8t64_8.2-5_i386.deb ... Adding 'diversion of /lib/i386-linux-gnu/libhistory.so.8 to /lib/i386-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/i386-linux-gnu/libhistory.so.8.2 to /lib/i386-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/i386-linux-gnu/libreadline.so.8 to /lib/i386-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/i386-linux-gnu/libreadline.so.8.2 to /lib/i386-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:i386 (8.2-5) ... Selecting previously unselected package libpython3.12-stdlib:i386. Preparing to unpack .../15-libpython3.12-stdlib_3.12.7-3_i386.deb ... Unpacking libpython3.12-stdlib:i386 (3.12.7-3) ... Selecting previously unselected package python3.12. Preparing to unpack .../16-python3.12_3.12.7-3_i386.deb ... Unpacking python3.12 (3.12.7-3) ... Selecting previously unselected package libpython3-stdlib:i386. Preparing to unpack .../17-libpython3-stdlib_3.12.7-1_i386.deb ... Unpacking libpython3-stdlib:i386 (3.12.7-1) ... Setting up python3-minimal (3.12.7-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21334 files and directories currently installed.) Preparing to unpack .../00-python3_3.12.7-1_i386.deb ... Unpacking python3 (3.12.7-1) ... Selecting previously unselected package libpython3.13-minimal:i386. Preparing to unpack .../01-libpython3.13-minimal_3.13.0-2_i386.deb ... Unpacking libpython3.13-minimal:i386 (3.13.0-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../02-python3.13-minimal_3.13.0-2_i386.deb ... Unpacking python3.13-minimal (3.13.0-2) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../03-sensible-utils_0.0.24_all.deb ... Unpacking sensible-utils (0.0.24) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.45-3+b1_i386.deb ... Unpacking libmagic-mgc (1:5.45-3+b1) ... Selecting previously unselected package libmagic1t64:i386. Preparing to unpack .../05-libmagic1t64_1%3a5.45-3+b1_i386.deb ... Unpacking libmagic1t64:i386 (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.45-3+b1_i386.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_0.22.5-2_i386.deb ... Unpacking gettext-base (0.22.5-2) ... Selecting previously unselected package libuchardet0:i386. Preparing to unpack .../08-libuchardet0_0.0.8-1+b2_i386.deb ... Unpacking libuchardet0:i386 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.23.0-5_i386.deb ... Unpacking groff-base (1.23.0-5) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.40.2-11_i386.deb ... Unpacking bsdextrautils (2.40.2-11) ... Selecting previously unselected package libpipeline1:i386. Preparing to unpack .../11-libpipeline1_1.5.8-1_i386.deb ... Unpacking libpipeline1:i386 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.13.0-1_i386.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../13-m4_1.4.19-4_i386.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../14-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../15-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../16-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 .../17-autopoint_0.22.5-2_all.deb ... Unpacking autopoint (0.22.5-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../18-libdebhelper-perl_13.20_all.deb ... Unpacking libdebhelper-perl (13.20) ... Selecting previously unselected package libtool. Preparing to unpack .../19-libtool_2.4.7-8_all.deb ... Unpacking libtool (2.4.7-8) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../20-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../21-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../22-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../23-dh-strip-nondeterminism_1.14.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.0-1) ... Selecting previously unselected package libelf1t64:i386. Preparing to unpack .../24-libelf1t64_0.192-4_i386.deb ... Unpacking libelf1t64:i386 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../25-dwz_0.15-1+b1_i386.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:i386. Preparing to unpack .../26-libicu72_72.1-5+b1_i386.deb ... Unpacking libicu72:i386 (72.1-5+b1) ... Selecting previously unselected package libxml2:i386. Preparing to unpack .../27-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_i386.deb ... Unpacking libxml2:i386 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../28-gettext_0.22.5-2_i386.deb ... Unpacking gettext (0.22.5-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../29-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../30-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../31-debhelper_13.20_all.deb ... Unpacking debhelper (13.20) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../32-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../33-python3-more-itertools_10.5.0-1_all.deb ... Unpacking python3-more-itertools (10.5.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../34-python3-typing-extensions_4.12.2-2_all.deb ... Unpacking python3-typing-extensions (4.12.2-2) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../35-python3-typeguard_4.4.1-1_all.deb ... Unpacking python3-typeguard (4.4.1-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../36-python3-inflect_7.3.1-2_all.deb ... Unpacking python3-inflect (7.3.1-2) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../37-python3-jaraco.context_6.0.0-1_all.deb ... Unpacking python3-jaraco.context (6.0.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../38-python3-jaraco.functools_4.1.0-1_all.deb ... Unpacking python3-jaraco.functools (4.1.0-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../39-python3-pkg-resources_75.2.0-1_all.deb ... Unpacking python3-pkg-resources (75.2.0-1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../40-python3-jaraco.text_4.0.0-1_all.deb ... Unpacking python3-jaraco.text (4.0.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../41-python3-zipp_3.21.0-1_all.deb ... Unpacking python3-zipp (3.21.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../42-python3-setuptools_75.2.0-1_all.deb ... Unpacking python3-setuptools (75.2.0-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../43-dh-python_6.20241024_all.deb ... Unpacking dh-python (6.20241024) ... Selecting previously unselected package libpython3.13-stdlib:i386. Preparing to unpack .../44-libpython3.13-stdlib_3.13.0-2_i386.deb ... Unpacking libpython3.13-stdlib:i386 (3.13.0-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../45-python3.13_3.13.0-2_i386.deb ... Unpacking python3.13 (3.13.0-2) ... Selecting previously unselected package python3-all. Preparing to unpack .../46-python3-all_3.12.7-1_i386.deb ... Unpacking python3-all (3.12.7-1) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../47-python3-bcrypt_4.2.0-2.1_i386.deb ... Unpacking python3-bcrypt (4.2.0-2.1) ... Selecting previously unselected package python3-cffi-backend:i386. Preparing to unpack .../48-python3-cffi-backend_1.17.1-2+b1_i386.deb ... Unpacking python3-cffi-backend:i386 (1.17.1-2+b1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../49-python3-cryptography_43.0.0-1_i386.deb ... Unpacking python3-cryptography (43.0.0-1) ... Selecting previously unselected package python3-dnspython. Preparing to unpack .../50-python3-dnspython_2.6.1-1_all.deb ... Unpacking python3-dnspython (2.6.1-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../51-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-mock. Preparing to unpack .../52-python3-mock_5.1.0-1_all.deb ... Unpacking python3-mock (5.1.0-1) ... Selecting previously unselected package python3-openssl. Preparing to unpack .../53-python3-openssl_24.2.1-1_all.deb ... Unpacking python3-openssl (24.2.1-1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../54-python3-packaging_24.2-1_all.deb ... Unpacking python3-packaging (24.2-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../55-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../56-python3-pytest_8.3.3-1_all.deb ... Unpacking python3-pytest (8.3.3-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../57-python3-urllib3_2.0.7-2_all.deb ... Unpacking python3-urllib3 (2.0.7-2) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:i386 (1.5.8-1) ... Setting up libkeyutils1:i386 (1.6.3-4) ... Setting up libicu72:i386 (72.1-5+b1) ... Setting up bsdextrautils (2.40.2-11) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libtirpc-common (1.3.4+ds-1.3) ... Setting up libdebhelper-perl (13.20) ... Setting up libmagic1t64:i386 (1:5.45-3+b1) ... Setting up gettext-base (0.22.5-2) ... Setting up m4 (1.4.19-4) ... Setting up libcom-err2:i386 (1.47.1-1+b1) ... Setting up file (1:5.45-3+b1) ... Setting up libelf1t64:i386 (0.192-4) ... Setting up libkrb5support0:i386 (1.21.3-3) ... Setting up tzdata (2024b-3) ... Current default time zone: 'Etc/UTC' Local time is now: Fri Nov 22 05:09:53 UTC 2024. Universal Time is now: Fri Nov 22 05:09:53 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:i386 (3.13.0-2) ... Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.22.5-2) ... Setting up libk5crypto3:i386 (1.21.3-3) ... Setting up autoconf (2.72-3) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:i386 (0.0.8-1+b2) ... Setting up python3.13-minimal (3.13.0-2) ... Setting up netbase (6.4) ... Setting up libkrb5-3:i386 (1.21.3-3) ... Setting up readline-common (8.2-5) ... Setting up libxml2:i386 (2.12.7+dfsg+really2.9.14-0.2+b1) ... 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.14.0-1) ... Setting up gettext (0.22.5-2) ... Setting up libtool (2.4.7-8) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up libgssapi-krb5-2:i386 (1.21.3-3) ... Setting up libreadline8t64:i386 (8.2-5) ... Setting up dh-strip-nondeterminism (1.14.0-1) ... Setting up groff-base (1.23.0-5) ... Setting up libpython3.13-stdlib:i386 (3.13.0-2) ... Setting up libtirpc3t64:i386 (1.3.4+ds-1.3+b1) ... Setting up python3.13 (3.13.0-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libnsl2:i386 (1.3.0-3+b3) ... Setting up libpython3.12-stdlib:i386 (3.12.7-3) ... Setting up python3.12 (3.12.7-3) ... Setting up debhelper (13.20) ... Setting up libpython3-stdlib:i386 (3.12.7-1) ... Setting up python3 (3.12.7-1) ... Setting up python3-zipp (3.21.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up python3-mock (5.1.0-1) ... Setting up python3-packaging (24.2-1) ... Setting up python3-typing-extensions (4.12.2-2) ... Setting up python3-urllib3 (2.0.7-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up python3-dnspython (2.6.1-1) ... Setting up python3-cffi-backend:i386 (1.17.1-2+b1) ... Setting up python3-more-itertools (10.5.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-jaraco.context (6.0.0-1) ... Setting up python3-pytest (8.3.3-1) ... Setting up python3-bcrypt (4.2.0-2.1) ... Setting up python3-typeguard (4.4.1-1) ... Setting up python3-all (3.12.7-1) ... Setting up python3-inflect (7.3.1-2) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-cryptography (43.0.0-1) ... Setting up python3-pkg-resources (75.2.0-1) ... Setting up python3-setuptools (75.2.0-1) ... Setting up python3-openssl (24.2.1-1) ... Setting up dh-python (6.20241024) ... Processing triggers for libc-bin (2.40-3) ... 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/python-etcd-0.4.5/ && 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 > ../python-etcd_0.4.5-4_source.changes dpkg-buildpackage: info: source package python-etcd dpkg-buildpackage: info: source version 0.4.5-4 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Emanuele Rocca dpkg-source --before-build . dpkg-buildpackage: info: host architecture i386 debian/rules clean dh clean --with python3 --buildsystem pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:311: python3.13 setup.py clean /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running clean removing '/build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build' (and everything under it) 'build/bdist.linux-i686' does not exist -- can't clean it 'build/scripts-3.13' does not exist -- can't clean it I: pybuild base:311: python3.12 setup.py clean /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running clean removing '/build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build' (and everything under it) 'build/bdist.linux-i686' does not exist -- can't clean it 'build/scripts-3.12' 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:311: python3.13 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running config I: pybuild base:311: python3.12 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running config dh_auto_build -O--buildsystem=pybuild I: pybuild base:311: /usr/bin/python3.13 setup.py build /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running build running build_py creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests copying src/etcd/tests/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests copying src/etcd/tests/test_auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/helpers.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_simple.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_ssl.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_result.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_old_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit running egg_info creating src/python_etcd.egg-info writing src/python_etcd.egg-info/PKG-INFO writing dependency_links to src/python_etcd.egg-info/dependency_links.txt writing requirements to src/python_etcd.egg-info/requires.txt writing top-level names to src/python_etcd.egg-info/top_level.txt writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' reading manifest file 'src/python_etcd.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE.txt' adding license file 'AUTHORS' writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' I: pybuild base:311: /usr/bin/python3 setup.py build /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running build running build_py creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests copying src/etcd/tests/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests copying src/etcd/tests/test_auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/helpers.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_simple.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_ssl.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_result.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_old_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit running egg_info writing src/python_etcd.egg-info/PKG-INFO writing dependency_links to src/python_etcd.egg-info/dependency_links.txt writing requirements to src/python_etcd.egg-info/requires.txt writing top-level names to src/python_etcd.egg-info/top_level.txt reading manifest file 'src/python_etcd.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE.txt' adding license file 'AUTHORS' writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build; python3.13 -m pytest etcd/tests/unit/ ============================= test session starts ============================== platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 rootdir: /build/reproducible-path/python-etcd-0.4.5 plugins: typeguard-4.4.1 collected 119 items etcd/tests/unit/test_client.py F.F.........F..............F [ 23%] etcd/tests/unit/test_lock.py FF.FFFFFF.F [ 32%] etcd/tests/unit/test_old_request.py FF..FFFFFFFxFFF...FFF [ 50%] etcd/tests/unit/test_request.py ...FF.FF.FFFFF..FFFFF.FFFFF.F.FF.FFFFF.. [ 84%] .FF..FFF.FF.FFF. [ 97%] etcd/tests/unit/test_result.py ... [100%] =================================== FAILURES =================================== ______________________ TestClient.test__set_version_info _______________________ self = def test__set_version_info(self): """Verify _set_version_info makes the proper call to the server""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client and make the call. client = etcd.Client() client._set_version_info() # Verify we call the proper endpoint _request.assert_called_once_with( client._MGET, client._base_uri + '/version', headers=mock.ANY, redirect=mock.ANY, timeout=mock.ANY) # Verify the properties while we are here > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:145: AttributeError ___________________ TestClient.test_cluster_version_property ___________________ self = def test_cluster_version_property(self): """Ensure the cluster version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the cluster_version property is set > self.assertEquals('2.3.0', client.cluster_version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:174: AttributeError ___________________________ TestClient.test_discover ___________________________ self = def test_discover(self): """Tests discovery.""" answers = [] for i in range(1,3): r = mock.create_autospec(dns.rdtypes.IN.SRV.SRV) r.port = 2379 try: method = dns.name.from_unicode except AttributeError: method = dns.name.from_text r.target = method(u'etcd{}.example.com'.format(i)) answers.append(r) dns.resolver.query = mock.create_autospec(dns.resolver.query, return_value=answers) self.machines = etcd.Client.machines etcd.Client.machines = mock.create_autospec(etcd.Client.machines, return_value=[u'https://etcd2.example.com:2379']) c = etcd.Client(srv_domain="example.com", allow_reconnect=True, protocol="https") etcd.Client.machines = self.machines > self.assertEquals(c.host, u'etcd1.example.com') E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:210: AttributeError _______________________ TestClient.test_version_property _______________________ self = def test_version_property(self): """Ensure the version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the version property is set > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:160: AttributeError _________________________ TestClientLock.test_acquire __________________________ self = def test_acquire(self): """ Acquiring a precedingly inexistent lock works. """ l = etcd.Lock(self.client, 'test_lock') l._find_lock = mock.MagicMock(spec=l._find_lock, return_value=False) l._acquired = mock.MagicMock(spec=l._acquired, return_value=True) # Mock the write d = { u'action': u'set', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': l.uuid } } self._mock_api(200, d) > self.assertEquals(l.acquire(), True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:55: AttributeError _________________________ TestClientLock.test_acquired _________________________ self = def test_acquired(self): """ Test the acquiring primitives """ self.locker._sequence = '4' retval = ('/_locks/test_lock/4', None) self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, return_value=retval) self.assertTrue(self.locker._acquired()) self.assertTrue(self.locker.is_taken) retval = ('/_locks/test_lock/1', '/_locks/test_lock/4') self.locker._get_locker = mock.MagicMock(return_value=retval) self.assertFalse(self.locker._acquired(blocking=False)) self.assertFalse(self.locker.is_taken) d = { u'action': u'delete', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) returns = [('/_locks/test_lock/1', '/_locks/test_lock/4'), ('/_locks/test_lock/4', None)] def side_effect(): return returns.pop() > self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, side_effect=side_effect) etcd/tests/unit/test_lock.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/mock/mock.py:2188: in __init__ _safe_super(MagicMixin, self).__init__(*args, **kw) /usr/lib/python3/dist-packages/mock/mock.py:1160: in __init__ _safe_super(CallableMixin, self).__init__( /usr/lib/python3/dist-packages/mock/mock.py:486: in __init__ self._mock_add_spec(spec, spec_set, _spec_as_instance, _eat_self) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError('_mock_methods') raised in repr()] MagicMock object at 0xf5e6aaf8> spec = , spec_set = None, _spec_as_instance = False _eat_self = False def _mock_add_spec(self, spec, spec_set, _spec_as_instance=False, _eat_self=False): if _is_instance_mock(spec): > raise InvalidSpecError(f'Cannot spec a Mock object. [object={spec!r}]') E mock.mock.InvalidSpecError: Cannot spec a Mock object. [object=] /usr/lib/python3/dist-packages/mock/mock.py:537: InvalidSpecError ________________________ TestClientLock.test_find_lock _________________________ self = def test_find_lock(self): d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker._sequence = '1' self.assertTrue(self.locker._find_lock()) # Now let's pretend the lock is not there self._mock_exception(etcd.EtcdKeyNotFound, self.locker.lock_key) self.assertFalse(self.locker._find_lock()) self.locker._sequence = None self.recursive_read() self.assertTrue(self.locker._find_lock()) > self.assertEquals(self.locker._sequence, '34') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:174: AttributeError ________________________ TestClientLock.test_get_locker ________________________ self = def test_get_locker(self): self.recursive_read() > self.assertEquals((u'/_locks/test_lock/1', etcd.EtcdResult(node={'newKey': False, '_children': [], 'createdIndex': 33, 'modifiedIndex': 33, 'value': u'2qwwwq', 'expiration': None, 'key': u'/_locks/test_lock/1', 'ttl': None, 'action': None, 'dir': False})), self.locker._get_locker()) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:178: AttributeError ______________________ TestClientLock.test_initialization ______________________ self = def test_initialization(self): """ Verify the lock gets initialized correctly """ > self.assertEquals(self.locker.name, u'test_lock') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:34: AttributeError _______________________ TestClientLock.test_is_acquired ________________________ self = def test_is_acquired(self): """ Test is_acquired """ self.locker._sequence = '1' d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker.is_taken = True > self.assertEquals(self.locker.is_acquired, True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:73: AttributeError _____________________ TestClientLock.test_is_not_acquired ______________________ self = def test_is_not_acquired(self): """ Test is_acquired failures """ self.locker._sequence = '2' self.locker.is_taken = False > self.assertEquals(self.locker.is_acquired, False) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:81: AttributeError _________________________ TestClientLock.test_lock_key _________________________ self = def test_lock_key(self): """ Test responses from the lock_key property """ with self.assertRaises(ValueError): self.locker.lock_key self.locker._sequence = '5' > self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:150: AttributeError _______________________ TestClientLock.test_set_sequence _______________________ self = def test_set_sequence(self): self.locker._set_sequence('/_locks/test_lock/10') > self.assertEquals('10', self.locker._sequence) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:154: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"DELETE",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"expiration":"2013-09-14T01:06:35.5242587+02:00",' '"modifiedIndex":189}}') ) result = client.delete('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'DELETE', u'node': { u'expiration': u'2013-09-14T01:06:35.5242587+02:00', u'modifiedIndex': 189, u'key': u'/testkey', u'prevValue': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:114: AttributeError __________________________ TestClientRequest.test_get __________________________ self = def test_get(self): """ Can get a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = client.get('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'GET', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:136: AttributeError __________________________ TestClientRequest.test_in ___________________________ self = def test_in(self): """ Can check if key is in client """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = '/testkey' in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:172: AttributeError ______________________ TestClientRequest.test_index_watch ______________________ self = def test_index_watch(self): """ Can watch values from index """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":180}}') ) result = client.watch('/testkey', index=180) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 180, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:216: AttributeError ________________________ TestClientRequest.test_not_in _________________________ self = def test_not_in(self): """ Can check if key is not in client """ client = etcd.Client() client.get = mock.Mock(side_effect=etcd.EtcdKeyNotFound()) result = '/testkey' not in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:157: AttributeError __________________________ TestClientRequest.test_set __________________________ self = def test_set(self): """ Can set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(201, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T00:56:59.316195568+02:00",' '"ttl":19,"modifiedIndex":183}}') ) result = client.set('/testkey', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', 'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'}}), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:45: AttributeError _____________________ TestClientRequest.test_simple_watch ______________________ self = def test_simple_watch(self): """ Can watch values """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":192}}') ) result = client.watch('/testkey') > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 192, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:189: AttributeError _____________________ TestClientRequest.test_test_and_set ______________________ self = def test_test_and_set(self): """ Can test and set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"value":"newvalue",' '"expiration":"2013-09-14T02:09:44.24390976+02:00",' '"ttl":49,"modifiedIndex":203}}') ) result = client.test_and_set('/testkey', 'newvalue', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T02:09:44.24390976+02:00', u'modifiedIndex': 203, u'key': u'/testkey', u'prevValue': u'test', u'ttl': 49, u'value': u'newvalue'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:70: AttributeError _________________ TestClientRequest.test_test_and_test_failure _________________ self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: > result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) etcd/tests/unit/test_old_request.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:703: in test_and_set return self.write(key, value, prevValue=prev_value, ttl=ttl) etcd/client.py:500: in write response = self.api_execute(path, method, params=params) /usr/lib/python3/dist-packages/mock/mock.py:1178: in __call__ return _mock_self._mock_call(*args, **kwargs) /usr/lib/python3/dist-packages/mock/mock.py:1182: in _mock_call return _mock_self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _mock_self = , args = ('/v2/keys/testkey', 'PUT') kwargs = {'params': {'prevValue': 'test', 'ttl': 19, 'value': 'newvalue'}} self = effect = ValueError('The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3') def _execute_mock_call(_mock_self, *args, **kwargs): self = _mock_self # separate from _increment_mock_call so that awaited functions are # executed separately from their call, also AsyncMock overrides this method effect = self.side_effect if effect is not None: if _is_exception(effect): > raise effect E ValueError: The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3 /usr/lib/python3/dist-packages/mock/mock.py:1239: ValueError During handling of the above exception, another exception occurred: self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) except ValueError as e: #from ipdb import set_trace; set_trace() > self.assertEquals( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3', str(e)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:97: AttributeError ______________________ TestClientApiExecutor.test_delete _______________________ self = def test_delete(self): """ http delete request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MDELETE) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:278: AttributeError ________________________ TestClientApiExecutor.test_get ________________________ self = def test_get(self): """ http get request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MGET) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:270: AttributeError _____________________ TestClientApiExecutor.test_get_error _____________________ self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: > client.api_execute('/v2/keys/testkey', client._MGET) etcd/tests/unit/test_old_request.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 100, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdKeyNotFound: message : cause etcd/__init__.py:306: EtcdKeyNotFound During handling of the above exception, another exception occurred: self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: client.api_execute('/v2/keys/testkey', client._MGET) assert False except etcd.EtcdKeyNotFound as e: > self.assertEquals(str(e), 'message : cause') E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:292: AttributeError ________________________ TestClientApiExecutor.test_put ________________________ self = def test_put(self): """ http put request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request_encode_body = mock.Mock(return_value=response) result = client.api_execute('/v2/keys/testkey', client._MPUT) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:300: AttributeError ________________ TestClientApiExecutor.test_set_not_file_error _________________ self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:325: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 102, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdNotFile: message : cause etcd/__init__.py:306: EtcdNotFile During handling of the above exception, another exception occurred: self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except etcd.EtcdNotFile as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:328: AttributeError ________________ TestClientApiExecutor.test_test_and_set_error _________________ self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 101, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdCompareFailed: message : cause etcd/__init__.py:306: EtcdCompareFailed During handling of the above exception, another exception occurred: self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except ValueError as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:314: AttributeError _________________ TestClientApiInternals.test_write_no_params __________________ self = def test_write_no_params(self): """ Calling `write` without a value argument will omit the `value` from the API call params """ d = { u'action': u'set', u'node': { u'createdIndex': 17, u'dir': True, u'key': u'/newdir', u'modifiedIndex': 17 } } self._mock_api(200, d) self.client.write('/newdir', None, dir=True) > self.assertEquals(self.client.api_execute.call_args, (('/v2/keys/newdir', 'PUT'), dict(params={'dir': 'true'}))) E AttributeError: 'TestClientApiInternals' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:71: AttributeError _________________ TestClientApiInterface.test_compare_and_swap _________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ______________________ TestClientApiInterface.test_delete ______________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError _____________________ TestClientApiInterface.test_get_dir ______________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ______________________ TestClientApiInterface.test_leader ______________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError ___________________ TestClientApiInterface.test_leader_stats ___________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _____________________ TestClientApiInterface.test_machines _____________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.13/contextlib.py:141: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.13/contextlib.py:530: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError _____________________ TestClientApiInterface.test_members ______________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ______________________ TestClientApiInterface.test_newkey ______________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError _______________________ TestClientApiInterface.test_pop ________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _______________________ TestClientApiInterface.test_read _______________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError _____________________ TestClientApiInterface.test_refresh ______________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ____________________ TestClientApiInterface.test_self_stats ____________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ____________________ TestClientApiInterface.test_set_append ____________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError ____________________ TestClientApiInterface.test_set_plain _____________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ______________________ TestClientApiInterface.test_update ______________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ___________________ TestClientApiInterface.test_use_proxies ____________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError ______________________ TestClientApiInterface.test_watch _______________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ___________________ TestClientApiInterface.test_watch_index ____________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError ___________________ TestClientRequest.test_compare_and_swap ____________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError ________________________ TestClientRequest.test_get_dir ________________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ________________________ TestClientRequest.test_leader _________________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError _____________________ TestClientRequest.test_leader_stats ______________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _______________________ TestClientRequest.test_machines ________________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.13/contextlib.py:141: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.13/contextlib.py:530: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError ________________________ TestClientRequest.test_members ________________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ________________________ TestClientRequest.test_newkey _________________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError __________________________ TestClientRequest.test_pop __________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _________________________ TestClientRequest.test_read __________________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError ________________________ TestClientRequest.test_refresh ________________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ______________________ TestClientRequest.test_self_stats _______________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ______________________ TestClientRequest.test_set_append _______________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError _______________________ TestClientRequest.test_set_plain _______________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ________________________ TestClientRequest.test_update _________________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ______________________ TestClientRequest.test_use_proxies ______________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError _________________________ TestClientRequest.test_watch _________________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ______________________ TestClientRequest.test_watch_index ______________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError =============================== warnings summary =============================== .pybuild/cpython3_3.13_etcd/build/etcd/tests/unit/test_old_request.py:243 .pybuild/cpython3_3.13_etcd/build/etcd/tests/unit/test_old_request.py:243: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_eternal_watch will be ignored -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED etcd/tests/unit/test_client.py::TestClient::test__set_version_info - A... FAILED etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property FAILED etcd/tests/unit/test_client.py::TestClient::test_discover - AttributeE... FAILED etcd/tests/unit/test_client.py::TestClient::test_version_property - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquire - Attribute... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquired - mock.moc... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock - Attribu... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker - Attrib... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_initialization - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired - Attri... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired - A... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key - Attribut... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_get - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_in - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_set - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error FAILED etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_members FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop - At... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_read - A... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_update FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch - ... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_delete - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_machines - Mo... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_members - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_newkey - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_pop - Attribu... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_read - Attrib... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_refresh - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_append - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain - A... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_update - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch - Attri... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index ============= 65 failed, 53 passed, 1 xfailed, 1 warning in 3.52s ============== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build; python3.13 -m pytest etcd/tests/unit/ I: pybuild base:311: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build; python3.12 -m pytest etcd/tests/unit/ ============================= test session starts ============================== platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 rootdir: /build/reproducible-path/python-etcd-0.4.5 plugins: typeguard-4.4.1 collected 119 items etcd/tests/unit/test_client.py F.F.........F..............F [ 23%] etcd/tests/unit/test_lock.py FF.FFFFFF.F [ 32%] etcd/tests/unit/test_old_request.py FF..FFFFFFFxFFF...FFF [ 50%] etcd/tests/unit/test_request.py ...FF.FF.FFFFF..FFFFF.FFFFF.F.FF.FFFFF.. [ 84%] .FF..FFF.FF.FFF. [ 97%] etcd/tests/unit/test_result.py ... [100%] =================================== FAILURES =================================== ______________________ TestClient.test__set_version_info _______________________ self = def test__set_version_info(self): """Verify _set_version_info makes the proper call to the server""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client and make the call. client = etcd.Client() client._set_version_info() # Verify we call the proper endpoint _request.assert_called_once_with( client._MGET, client._base_uri + '/version', headers=mock.ANY, redirect=mock.ANY, timeout=mock.ANY) # Verify the properties while we are here > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:145: AttributeError ___________________ TestClient.test_cluster_version_property ___________________ self = def test_cluster_version_property(self): """Ensure the cluster version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the cluster_version property is set > self.assertEquals('2.3.0', client.cluster_version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:174: AttributeError ___________________________ TestClient.test_discover ___________________________ self = def test_discover(self): """Tests discovery.""" answers = [] for i in range(1,3): r = mock.create_autospec(dns.rdtypes.IN.SRV.SRV) r.port = 2379 try: method = dns.name.from_unicode except AttributeError: method = dns.name.from_text r.target = method(u'etcd{}.example.com'.format(i)) answers.append(r) dns.resolver.query = mock.create_autospec(dns.resolver.query, return_value=answers) self.machines = etcd.Client.machines etcd.Client.machines = mock.create_autospec(etcd.Client.machines, return_value=[u'https://etcd2.example.com:2379']) c = etcd.Client(srv_domain="example.com", allow_reconnect=True, protocol="https") etcd.Client.machines = self.machines > self.assertEquals(c.host, u'etcd1.example.com') E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:210: AttributeError _______________________ TestClient.test_version_property _______________________ self = def test_version_property(self): """Ensure the version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the version property is set > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:160: AttributeError _________________________ TestClientLock.test_acquire __________________________ self = def test_acquire(self): """ Acquiring a precedingly inexistent lock works. """ l = etcd.Lock(self.client, 'test_lock') l._find_lock = mock.MagicMock(spec=l._find_lock, return_value=False) l._acquired = mock.MagicMock(spec=l._acquired, return_value=True) # Mock the write d = { u'action': u'set', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': l.uuid } } self._mock_api(200, d) > self.assertEquals(l.acquire(), True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:55: AttributeError _________________________ TestClientLock.test_acquired _________________________ self = def test_acquired(self): """ Test the acquiring primitives """ self.locker._sequence = '4' retval = ('/_locks/test_lock/4', None) self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, return_value=retval) self.assertTrue(self.locker._acquired()) self.assertTrue(self.locker.is_taken) retval = ('/_locks/test_lock/1', '/_locks/test_lock/4') self.locker._get_locker = mock.MagicMock(return_value=retval) self.assertFalse(self.locker._acquired(blocking=False)) self.assertFalse(self.locker.is_taken) d = { u'action': u'delete', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) returns = [('/_locks/test_lock/1', '/_locks/test_lock/4'), ('/_locks/test_lock/4', None)] def side_effect(): return returns.pop() > self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, side_effect=side_effect) etcd/tests/unit/test_lock.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/mock/mock.py:2188: in __init__ _safe_super(MagicMixin, self).__init__(*args, **kw) /usr/lib/python3/dist-packages/mock/mock.py:1160: in __init__ _safe_super(CallableMixin, self).__init__( /usr/lib/python3/dist-packages/mock/mock.py:486: in __init__ self._mock_add_spec(spec, spec_set, _spec_as_instance, _eat_self) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError('_mock_methods') raised in repr()] MagicMock object at 0xf5ea88a0> spec = , spec_set = None, _spec_as_instance = False _eat_self = False def _mock_add_spec(self, spec, spec_set, _spec_as_instance=False, _eat_self=False): if _is_instance_mock(spec): > raise InvalidSpecError(f'Cannot spec a Mock object. [object={spec!r}]') E mock.mock.InvalidSpecError: Cannot spec a Mock object. [object=] /usr/lib/python3/dist-packages/mock/mock.py:537: InvalidSpecError ________________________ TestClientLock.test_find_lock _________________________ self = def test_find_lock(self): d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker._sequence = '1' self.assertTrue(self.locker._find_lock()) # Now let's pretend the lock is not there self._mock_exception(etcd.EtcdKeyNotFound, self.locker.lock_key) self.assertFalse(self.locker._find_lock()) self.locker._sequence = None self.recursive_read() self.assertTrue(self.locker._find_lock()) > self.assertEquals(self.locker._sequence, '34') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:174: AttributeError ________________________ TestClientLock.test_get_locker ________________________ self = def test_get_locker(self): self.recursive_read() > self.assertEquals((u'/_locks/test_lock/1', etcd.EtcdResult(node={'newKey': False, '_children': [], 'createdIndex': 33, 'modifiedIndex': 33, 'value': u'2qwwwq', 'expiration': None, 'key': u'/_locks/test_lock/1', 'ttl': None, 'action': None, 'dir': False})), self.locker._get_locker()) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:178: AttributeError ______________________ TestClientLock.test_initialization ______________________ self = def test_initialization(self): """ Verify the lock gets initialized correctly """ > self.assertEquals(self.locker.name, u'test_lock') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:34: AttributeError _______________________ TestClientLock.test_is_acquired ________________________ self = def test_is_acquired(self): """ Test is_acquired """ self.locker._sequence = '1' d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker.is_taken = True > self.assertEquals(self.locker.is_acquired, True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:73: AttributeError _____________________ TestClientLock.test_is_not_acquired ______________________ self = def test_is_not_acquired(self): """ Test is_acquired failures """ self.locker._sequence = '2' self.locker.is_taken = False > self.assertEquals(self.locker.is_acquired, False) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:81: AttributeError _________________________ TestClientLock.test_lock_key _________________________ self = def test_lock_key(self): """ Test responses from the lock_key property """ with self.assertRaises(ValueError): self.locker.lock_key self.locker._sequence = '5' > self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:150: AttributeError _______________________ TestClientLock.test_set_sequence _______________________ self = def test_set_sequence(self): self.locker._set_sequence('/_locks/test_lock/10') > self.assertEquals('10', self.locker._sequence) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:154: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"DELETE",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"expiration":"2013-09-14T01:06:35.5242587+02:00",' '"modifiedIndex":189}}') ) result = client.delete('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'DELETE', u'node': { u'expiration': u'2013-09-14T01:06:35.5242587+02:00', u'modifiedIndex': 189, u'key': u'/testkey', u'prevValue': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:114: AttributeError __________________________ TestClientRequest.test_get __________________________ self = def test_get(self): """ Can get a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = client.get('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'GET', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:136: AttributeError __________________________ TestClientRequest.test_in ___________________________ self = def test_in(self): """ Can check if key is in client """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = '/testkey' in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:172: AttributeError ______________________ TestClientRequest.test_index_watch ______________________ self = def test_index_watch(self): """ Can watch values from index """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":180}}') ) result = client.watch('/testkey', index=180) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 180, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:216: AttributeError ________________________ TestClientRequest.test_not_in _________________________ self = def test_not_in(self): """ Can check if key is not in client """ client = etcd.Client() client.get = mock.Mock(side_effect=etcd.EtcdKeyNotFound()) result = '/testkey' not in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:157: AttributeError __________________________ TestClientRequest.test_set __________________________ self = def test_set(self): """ Can set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(201, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T00:56:59.316195568+02:00",' '"ttl":19,"modifiedIndex":183}}') ) result = client.set('/testkey', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', 'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'}}), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:45: AttributeError _____________________ TestClientRequest.test_simple_watch ______________________ self = def test_simple_watch(self): """ Can watch values """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":192}}') ) result = client.watch('/testkey') > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 192, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:189: AttributeError _____________________ TestClientRequest.test_test_and_set ______________________ self = def test_test_and_set(self): """ Can test and set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"value":"newvalue",' '"expiration":"2013-09-14T02:09:44.24390976+02:00",' '"ttl":49,"modifiedIndex":203}}') ) result = client.test_and_set('/testkey', 'newvalue', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T02:09:44.24390976+02:00', u'modifiedIndex': 203, u'key': u'/testkey', u'prevValue': u'test', u'ttl': 49, u'value': u'newvalue'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:70: AttributeError _________________ TestClientRequest.test_test_and_test_failure _________________ self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: > result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) etcd/tests/unit/test_old_request.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:703: in test_and_set return self.write(key, value, prevValue=prev_value, ttl=ttl) etcd/client.py:500: in write response = self.api_execute(path, method, params=params) /usr/lib/python3/dist-packages/mock/mock.py:1178: in __call__ return _mock_self._mock_call(*args, **kwargs) /usr/lib/python3/dist-packages/mock/mock.py:1182: in _mock_call return _mock_self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _mock_self = , args = ('/v2/keys/testkey', 'PUT') kwargs = {'params': {'prevValue': 'test', 'ttl': 19, 'value': 'newvalue'}} self = effect = ValueError('The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3') def _execute_mock_call(_mock_self, *args, **kwargs): self = _mock_self # separate from _increment_mock_call so that awaited functions are # executed separately from their call, also AsyncMock overrides this method effect = self.side_effect if effect is not None: if _is_exception(effect): > raise effect E ValueError: The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3 /usr/lib/python3/dist-packages/mock/mock.py:1239: ValueError During handling of the above exception, another exception occurred: self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) except ValueError as e: #from ipdb import set_trace; set_trace() > self.assertEquals( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3', str(e)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:97: AttributeError ______________________ TestClientApiExecutor.test_delete _______________________ self = def test_delete(self): """ http delete request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MDELETE) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:278: AttributeError ________________________ TestClientApiExecutor.test_get ________________________ self = def test_get(self): """ http get request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MGET) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:270: AttributeError _____________________ TestClientApiExecutor.test_get_error _____________________ self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: > client.api_execute('/v2/keys/testkey', client._MGET) etcd/tests/unit/test_old_request.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 100, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdKeyNotFound: message : cause etcd/__init__.py:306: EtcdKeyNotFound During handling of the above exception, another exception occurred: self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: client.api_execute('/v2/keys/testkey', client._MGET) assert False except etcd.EtcdKeyNotFound as e: > self.assertEquals(str(e), 'message : cause') E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:292: AttributeError ________________________ TestClientApiExecutor.test_put ________________________ self = def test_put(self): """ http put request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request_encode_body = mock.Mock(return_value=response) result = client.api_execute('/v2/keys/testkey', client._MPUT) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:300: AttributeError ________________ TestClientApiExecutor.test_set_not_file_error _________________ self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:325: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 102, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdNotFile: message : cause etcd/__init__.py:306: EtcdNotFile During handling of the above exception, another exception occurred: self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except etcd.EtcdNotFile as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:328: AttributeError ________________ TestClientApiExecutor.test_test_and_set_error _________________ self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 101, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdCompareFailed: message : cause etcd/__init__.py:306: EtcdCompareFailed During handling of the above exception, another exception occurred: self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except ValueError as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:314: AttributeError _________________ TestClientApiInternals.test_write_no_params __________________ self = def test_write_no_params(self): """ Calling `write` without a value argument will omit the `value` from the API call params """ d = { u'action': u'set', u'node': { u'createdIndex': 17, u'dir': True, u'key': u'/newdir', u'modifiedIndex': 17 } } self._mock_api(200, d) self.client.write('/newdir', None, dir=True) > self.assertEquals(self.client.api_execute.call_args, (('/v2/keys/newdir', 'PUT'), dict(params={'dir': 'true'}))) E AttributeError: 'TestClientApiInternals' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:71: AttributeError _________________ TestClientApiInterface.test_compare_and_swap _________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ______________________ TestClientApiInterface.test_delete ______________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError _____________________ TestClientApiInterface.test_get_dir ______________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ______________________ TestClientApiInterface.test_leader ______________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError ___________________ TestClientApiInterface.test_leader_stats ___________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _____________________ TestClientApiInterface.test_machines _____________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.12/contextlib.py:526: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError _____________________ TestClientApiInterface.test_members ______________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ______________________ TestClientApiInterface.test_newkey ______________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError _______________________ TestClientApiInterface.test_pop ________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _______________________ TestClientApiInterface.test_read _______________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError _____________________ TestClientApiInterface.test_refresh ______________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ____________________ TestClientApiInterface.test_self_stats ____________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ____________________ TestClientApiInterface.test_set_append ____________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError ____________________ TestClientApiInterface.test_set_plain _____________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ______________________ TestClientApiInterface.test_update ______________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ___________________ TestClientApiInterface.test_use_proxies ____________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError ______________________ TestClientApiInterface.test_watch _______________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ___________________ TestClientApiInterface.test_watch_index ____________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError ___________________ TestClientRequest.test_compare_and_swap ____________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError ________________________ TestClientRequest.test_get_dir ________________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ________________________ TestClientRequest.test_leader _________________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError _____________________ TestClientRequest.test_leader_stats ______________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _______________________ TestClientRequest.test_machines ________________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.12/contextlib.py:526: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError ________________________ TestClientRequest.test_members ________________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ________________________ TestClientRequest.test_newkey _________________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError __________________________ TestClientRequest.test_pop __________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _________________________ TestClientRequest.test_read __________________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError ________________________ TestClientRequest.test_refresh ________________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ______________________ TestClientRequest.test_self_stats _______________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ______________________ TestClientRequest.test_set_append _______________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError _______________________ TestClientRequest.test_set_plain _______________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ________________________ TestClientRequest.test_update _________________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ______________________ TestClientRequest.test_use_proxies ______________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError _________________________ TestClientRequest.test_watch _________________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ______________________ TestClientRequest.test_watch_index ______________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError =============================== warnings summary =============================== .pybuild/cpython3_3.12_etcd/build/etcd/tests/unit/test_old_request.py:243 .pybuild/cpython3_3.12_etcd/build/etcd/tests/unit/test_old_request.py:243: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_eternal_watch will be ignored -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED etcd/tests/unit/test_client.py::TestClient::test__set_version_info - A... FAILED etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property FAILED etcd/tests/unit/test_client.py::TestClient::test_discover - AttributeE... FAILED etcd/tests/unit/test_client.py::TestClient::test_version_property - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquire - Attribute... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquired - mock.moc... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock - Attribu... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker - Attrib... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_initialization - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired - Attri... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired - A... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key - Attribut... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_get - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_in - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_set - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error FAILED etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_members FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop - At... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_read - A... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_update FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch - ... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_delete - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_machines - Mo... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_members - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_newkey - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_pop - Attribu... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_read - Attrib... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_refresh - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_append - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain - A... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_update - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch - Attri... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index ============= 65 failed, 53 passed, 1 xfailed, 1 warning in 3.25s ============== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build; python3.12 -m pytest etcd/tests/unit/ dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 make: *** [debian/rules:9: 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/15834 and its subdirectories Starting cleanup. All cleanup done. Fri Nov 22 05:10:19 UTC 2024 - reproducible_build.sh stopped running as /tmp/jenkins-script-OpfcdxQQ, removing. /srv/reproducible-results/rbuild-debian/r-b-build.wn5UyE27: total 16 drwxr-xr-x 2 jenkins jenkins 4096 Nov 22 05:10 b1 drwxr-xr-x 2 jenkins jenkins 4096 Nov 22 05:09 b2 -rw-r--r-- 1 jenkins jenkins 2133 Sep 19 2022 python-etcd_0.4.5-4.dsc -rw------- 1 jenkins jenkins 3259 Nov 22 05:09 rbuildlog.HE6rRy7 /srv/reproducible-results/rbuild-debian/r-b-build.wn5UyE27/b1: total 196 -rw-r--r-- 1 jenkins jenkins 199888 Nov 22 05:10 build.log /srv/reproducible-results/rbuild-debian/r-b-build.wn5UyE27/b2: total 0 Fri Nov 22 05:10:20 UTC 2024 I: Deleting $TMPDIR on infom07-i386.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Thu Nov 21 17:09:35 -12 2024 I: pbuilder-time-stamp: 1732252175 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: using eatmydata during job I: Copying source file I: copying [python-etcd_0.4.5-4.dsc] I: copying [./python-etcd_0.4.5.orig.tar.gz] I: copying [./python-etcd_0.4.5-4.debian.tar.xz] I: Extracting source gpgv: Signature made Mon Sep 19 14:47:01 2022 gpgv: using RSA key 9545969619281C17FFAC5891D5085A0750FDB7A3 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./python-etcd_0.4.5-4.dsc: no acceptable signature found dpkg-source: info: extracting python-etcd in python-etcd-0.4.5 dpkg-source: info: unpacking python-etcd_0.4.5.orig.tar.gz dpkg-source: info: unpacking python-etcd_0.4.5-4.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/15834/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='i386' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=6 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='i386' IFS=' ' INVOCATION_ID='0cd05b97c4b44b4a8d0c80b81d842f07' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' LD_LIBRARY_PATH='/usr/lib/libeatmydata' LD_PRELOAD='libeatmydata.so' 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='15834' 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.wn5UyE27/pbuilderrc_uGgv --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wn5UyE27/b1 --logfile b1/build.log python-etcd_0.4.5-4.dsc' SUDO_GID='111' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' I: uname -a Linux infom07-i386 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin I: user script /srv/workspace/pbuilder/15834/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: i386 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-python, python3-all, python3-dnspython, python3-mock, python3-pytest, python3-openssl, python3-setuptools, python3-urllib3 dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19952 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-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-dnspython; however: Package python3-dnspython is not installed. pbuilder-satisfydepends-dummy depends on python3-mock; however: Package python3-mock is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-openssl; however: Package python3-openssl is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-urllib3; however: Package python3-urllib3 is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libcom-err2{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libgssapi-krb5-2{a} libicu72{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} libmagic-mgc{a} libmagic1t64{a} libnsl2{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} po-debconf{a} python3{a} python3-all{a} python3-autocommand{a} python3-bcrypt{a} python3-cffi-backend{a} python3-cryptography{a} python3-dnspython{a} python3-inflect{a} python3-iniconfig{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-minimal{a} python3-mock{a} python3-more-itertools{a} python3-openssl{a} python3-packaging{a} python3-pkg-resources{a} python3-pluggy{a} python3-pytest{a} python3-setuptools{a} python3-typeguard{a} python3-typing-extensions{a} python3-urllib3{a} python3-zipp{a} python3.12{a} python3.12-minimal{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: ca-certificates curl krb5-locales libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python3-h2 python3-httpcore python3-httpx python3-idna python3-pygments wget 0 packages upgraded, 79 newly installed, 0 to remove and 0 not upgraded. Need to get 36.4 MB of archives. After unpacking 142 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main i386 libpython3.12-minimal i386 3.12.7-3 [814 kB] Get: 2 http://deb.debian.org/debian unstable/main i386 libexpat1 i386 2.6.4-1 [107 kB] Get: 3 http://deb.debian.org/debian unstable/main i386 python3.12-minimal i386 3.12.7-3 [2236 kB] Get: 4 http://deb.debian.org/debian unstable/main i386 python3-minimal i386 3.12.7-1 [26.8 kB] Get: 5 http://deb.debian.org/debian unstable/main i386 media-types all 10.1.0 [26.9 kB] Get: 6 http://deb.debian.org/debian unstable/main i386 netbase all 6.4 [12.8 kB] Get: 7 http://deb.debian.org/debian unstable/main i386 tzdata all 2024b-3 [255 kB] Get: 8 http://deb.debian.org/debian unstable/main i386 libkrb5support0 i386 1.21.3-3 [34.9 kB] Get: 9 http://deb.debian.org/debian unstable/main i386 libcom-err2 i386 1.47.1-1+b1 [23.4 kB] Get: 10 http://deb.debian.org/debian unstable/main i386 libk5crypto3 i386 1.21.3-3 [83.6 kB] Get: 11 http://deb.debian.org/debian unstable/main i386 libkeyutils1 i386 1.6.3-4 [9600 B] Get: 12 http://deb.debian.org/debian unstable/main i386 libkrb5-3 i386 1.21.3-3 [350 kB] Get: 13 http://deb.debian.org/debian unstable/main i386 libgssapi-krb5-2 i386 1.21.3-3 [146 kB] Get: 14 http://deb.debian.org/debian unstable/main i386 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB] Get: 15 http://deb.debian.org/debian unstable/main i386 libtirpc3t64 i386 1.3.4+ds-1.3+b1 [90.5 kB] Get: 16 http://deb.debian.org/debian unstable/main i386 libnsl2 i386 1.3.0-3+b3 [42.7 kB] Get: 17 http://deb.debian.org/debian unstable/main i386 readline-common all 8.2-5 [69.3 kB] Get: 18 http://deb.debian.org/debian unstable/main i386 libreadline8t64 i386 8.2-5 [173 kB] Get: 19 http://deb.debian.org/debian unstable/main i386 libpython3.12-stdlib i386 3.12.7-3 [1964 kB] Get: 20 http://deb.debian.org/debian unstable/main i386 python3.12 i386 3.12.7-3 [671 kB] Get: 21 http://deb.debian.org/debian unstable/main i386 libpython3-stdlib i386 3.12.7-1 [9712 B] Get: 22 http://deb.debian.org/debian unstable/main i386 python3 i386 3.12.7-1 [27.8 kB] Get: 23 http://deb.debian.org/debian unstable/main i386 libpython3.13-minimal i386 3.13.0-2 [856 kB] Get: 24 http://deb.debian.org/debian unstable/main i386 python3.13-minimal i386 3.13.0-2 [2112 kB] Get: 25 http://deb.debian.org/debian unstable/main i386 sensible-utils all 0.0.24 [24.8 kB] Get: 26 http://deb.debian.org/debian unstable/main i386 libmagic-mgc i386 1:5.45-3+b1 [314 kB] Get: 27 http://deb.debian.org/debian unstable/main i386 libmagic1t64 i386 1:5.45-3+b1 [115 kB] Get: 28 http://deb.debian.org/debian unstable/main i386 file i386 1:5.45-3+b1 [43.2 kB] Get: 29 http://deb.debian.org/debian unstable/main i386 gettext-base i386 0.22.5-2 [201 kB] Get: 30 http://deb.debian.org/debian unstable/main i386 libuchardet0 i386 0.0.8-1+b2 [69.2 kB] Get: 31 http://deb.debian.org/debian unstable/main i386 groff-base i386 1.23.0-5 [1196 kB] Get: 32 http://deb.debian.org/debian unstable/main i386 bsdextrautils i386 2.40.2-11 [95.6 kB] Get: 33 http://deb.debian.org/debian unstable/main i386 libpipeline1 i386 1.5.8-1 [41.2 kB] Get: 34 http://deb.debian.org/debian unstable/main i386 man-db i386 2.13.0-1 [1428 kB] Get: 35 http://deb.debian.org/debian unstable/main i386 m4 i386 1.4.19-4 [293 kB] Get: 36 http://deb.debian.org/debian unstable/main i386 autoconf all 2.72-3 [493 kB] Get: 37 http://deb.debian.org/debian unstable/main i386 autotools-dev all 20220109.1 [51.6 kB] Get: 38 http://deb.debian.org/debian unstable/main i386 automake all 1:1.16.5-1.3 [823 kB] Get: 39 http://deb.debian.org/debian unstable/main i386 autopoint all 0.22.5-2 [723 kB] Get: 40 http://deb.debian.org/debian unstable/main i386 libdebhelper-perl all 13.20 [89.7 kB] Get: 41 http://deb.debian.org/debian unstable/main i386 libtool all 2.4.7-8 [517 kB] Get: 42 http://deb.debian.org/debian unstable/main i386 dh-autoreconf all 20 [17.1 kB] Get: 43 http://deb.debian.org/debian unstable/main i386 libarchive-zip-perl all 1.68-1 [104 kB] Get: 44 http://deb.debian.org/debian unstable/main i386 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB] Get: 45 http://deb.debian.org/debian unstable/main i386 dh-strip-nondeterminism all 1.14.0-1 [8448 B] Get: 46 http://deb.debian.org/debian unstable/main i386 libelf1t64 i386 0.192-4 [195 kB] Get: 47 http://deb.debian.org/debian unstable/main i386 dwz i386 0.15-1+b1 [116 kB] Get: 48 http://deb.debian.org/debian unstable/main i386 libicu72 i386 72.1-5+b1 [9583 kB] Get: 49 http://deb.debian.org/debian unstable/main i386 libxml2 i386 2.12.7+dfsg+really2.9.14-0.2+b1 [734 kB] Get: 50 http://deb.debian.org/debian unstable/main i386 gettext i386 0.22.5-2 [1631 kB] Get: 51 http://deb.debian.org/debian unstable/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 52 http://deb.debian.org/debian unstable/main i386 po-debconf all 1.0.21+nmu1 [248 kB] Get: 53 http://deb.debian.org/debian unstable/main i386 debhelper all 13.20 [915 kB] Get: 54 http://deb.debian.org/debian unstable/main i386 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 55 http://deb.debian.org/debian unstable/main i386 python3-more-itertools all 10.5.0-1 [63.8 kB] Get: 56 http://deb.debian.org/debian unstable/main i386 python3-typing-extensions all 4.12.2-2 [73.0 kB] Get: 57 http://deb.debian.org/debian unstable/main i386 python3-typeguard all 4.4.1-1 [37.0 kB] Get: 58 http://deb.debian.org/debian unstable/main i386 python3-inflect all 7.3.1-2 [32.4 kB] Get: 59 http://deb.debian.org/debian unstable/main i386 python3-jaraco.context all 6.0.0-1 [7984 B] Get: 60 http://deb.debian.org/debian unstable/main i386 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 61 http://deb.debian.org/debian unstable/main i386 python3-pkg-resources all 75.2.0-1 [213 kB] Get: 62 http://deb.debian.org/debian unstable/main i386 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 63 http://deb.debian.org/debian unstable/main i386 python3-zipp all 3.21.0-1 [10.6 kB] Get: 64 http://deb.debian.org/debian unstable/main i386 python3-setuptools all 75.2.0-1 [731 kB] Get: 65 http://deb.debian.org/debian unstable/main i386 dh-python all 6.20241024 [109 kB] Get: 66 http://deb.debian.org/debian unstable/main i386 libpython3.13-stdlib i386 3.13.0-2 [2002 kB] Get: 67 http://deb.debian.org/debian unstable/main i386 python3.13 i386 3.13.0-2 [730 kB] Get: 68 http://deb.debian.org/debian unstable/main i386 python3-all i386 3.12.7-1 [1052 B] Get: 69 http://deb.debian.org/debian unstable/main i386 python3-bcrypt i386 4.2.0-2.1 [248 kB] Get: 70 http://deb.debian.org/debian unstable/main i386 python3-cffi-backend i386 1.17.1-2+b1 [95.5 kB] Get: 71 http://deb.debian.org/debian unstable/main i386 python3-cryptography i386 43.0.0-1 [975 kB] Get: 72 http://deb.debian.org/debian unstable/main i386 python3-dnspython all 2.6.1-1 [161 kB] Get: 73 http://deb.debian.org/debian unstable/main i386 python3-iniconfig all 1.1.1-2 [6396 B] Get: 74 http://deb.debian.org/debian unstable/main i386 python3-mock all 5.1.0-1 [70.2 kB] Get: 75 http://deb.debian.org/debian unstable/main i386 python3-openssl all 24.2.1-1 [53.2 kB] Get: 76 http://deb.debian.org/debian unstable/main i386 python3-packaging all 24.2-1 [55.3 kB] Get: 77 http://deb.debian.org/debian unstable/main i386 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 78 http://deb.debian.org/debian unstable/main i386 python3-pytest all 8.3.3-1 [249 kB] Get: 79 http://deb.debian.org/debian unstable/main i386 python3-urllib3 all 2.0.7-2 [111 kB] Fetched 36.4 MB in 0s (110 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.12-minimal:i386. (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 ... 19952 files and directories currently installed.) Preparing to unpack .../libpython3.12-minimal_3.12.7-3_i386.deb ... Unpacking libpython3.12-minimal:i386 (3.12.7-3) ... Selecting previously unselected package libexpat1:i386. Preparing to unpack .../libexpat1_2.6.4-1_i386.deb ... Unpacking libexpat1:i386 (2.6.4-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../python3.12-minimal_3.12.7-3_i386.deb ... Unpacking python3.12-minimal (3.12.7-3) ... Setting up libpython3.12-minimal:i386 (3.12.7-3) ... Setting up libexpat1:i386 (2.6.4-1) ... Setting up python3.12-minimal (3.12.7-3) ... 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 ... 20272 files and directories currently installed.) Preparing to unpack .../00-python3-minimal_3.12.7-1_i386.deb ... Unpacking python3-minimal (3.12.7-1) ... Selecting previously unselected package media-types. Preparing to unpack .../01-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../02-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../03-tzdata_2024b-3_all.deb ... Unpacking tzdata (2024b-3) ... Selecting previously unselected package libkrb5support0:i386. Preparing to unpack .../04-libkrb5support0_1.21.3-3_i386.deb ... Unpacking libkrb5support0:i386 (1.21.3-3) ... Selecting previously unselected package libcom-err2:i386. Preparing to unpack .../05-libcom-err2_1.47.1-1+b1_i386.deb ... Unpacking libcom-err2:i386 (1.47.1-1+b1) ... Selecting previously unselected package libk5crypto3:i386. Preparing to unpack .../06-libk5crypto3_1.21.3-3_i386.deb ... Unpacking libk5crypto3:i386 (1.21.3-3) ... Selecting previously unselected package libkeyutils1:i386. Preparing to unpack .../07-libkeyutils1_1.6.3-4_i386.deb ... Unpacking libkeyutils1:i386 (1.6.3-4) ... Selecting previously unselected package libkrb5-3:i386. Preparing to unpack .../08-libkrb5-3_1.21.3-3_i386.deb ... Unpacking libkrb5-3:i386 (1.21.3-3) ... Selecting previously unselected package libgssapi-krb5-2:i386. Preparing to unpack .../09-libgssapi-krb5-2_1.21.3-3_i386.deb ... Unpacking libgssapi-krb5-2:i386 (1.21.3-3) ... Selecting previously unselected package libtirpc-common. Preparing to unpack .../10-libtirpc-common_1.3.4+ds-1.3_all.deb ... Unpacking libtirpc-common (1.3.4+ds-1.3) ... Selecting previously unselected package libtirpc3t64:i386. Preparing to unpack .../11-libtirpc3t64_1.3.4+ds-1.3+b1_i386.deb ... Adding 'diversion of /lib/i386-linux-gnu/libtirpc.so.3 to /lib/i386-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' Adding 'diversion of /lib/i386-linux-gnu/libtirpc.so.3.0.0 to /lib/i386-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' Unpacking libtirpc3t64:i386 (1.3.4+ds-1.3+b1) ... Selecting previously unselected package libnsl2:i386. Preparing to unpack .../12-libnsl2_1.3.0-3+b3_i386.deb ... Unpacking libnsl2:i386 (1.3.0-3+b3) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_8.2-5_all.deb ... Unpacking readline-common (8.2-5) ... Selecting previously unselected package libreadline8t64:i386. Preparing to unpack .../14-libreadline8t64_8.2-5_i386.deb ... Adding 'diversion of /lib/i386-linux-gnu/libhistory.so.8 to /lib/i386-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/i386-linux-gnu/libhistory.so.8.2 to /lib/i386-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/i386-linux-gnu/libreadline.so.8 to /lib/i386-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/i386-linux-gnu/libreadline.so.8.2 to /lib/i386-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:i386 (8.2-5) ... Selecting previously unselected package libpython3.12-stdlib:i386. Preparing to unpack .../15-libpython3.12-stdlib_3.12.7-3_i386.deb ... Unpacking libpython3.12-stdlib:i386 (3.12.7-3) ... Selecting previously unselected package python3.12. Preparing to unpack .../16-python3.12_3.12.7-3_i386.deb ... Unpacking python3.12 (3.12.7-3) ... Selecting previously unselected package libpython3-stdlib:i386. Preparing to unpack .../17-libpython3-stdlib_3.12.7-1_i386.deb ... Unpacking libpython3-stdlib:i386 (3.12.7-1) ... Setting up python3-minimal (3.12.7-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21334 files and directories currently installed.) Preparing to unpack .../00-python3_3.12.7-1_i386.deb ... Unpacking python3 (3.12.7-1) ... Selecting previously unselected package libpython3.13-minimal:i386. Preparing to unpack .../01-libpython3.13-minimal_3.13.0-2_i386.deb ... Unpacking libpython3.13-minimal:i386 (3.13.0-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../02-python3.13-minimal_3.13.0-2_i386.deb ... Unpacking python3.13-minimal (3.13.0-2) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../03-sensible-utils_0.0.24_all.deb ... Unpacking sensible-utils (0.0.24) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.45-3+b1_i386.deb ... Unpacking libmagic-mgc (1:5.45-3+b1) ... Selecting previously unselected package libmagic1t64:i386. Preparing to unpack .../05-libmagic1t64_1%3a5.45-3+b1_i386.deb ... Unpacking libmagic1t64:i386 (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.45-3+b1_i386.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_0.22.5-2_i386.deb ... Unpacking gettext-base (0.22.5-2) ... Selecting previously unselected package libuchardet0:i386. Preparing to unpack .../08-libuchardet0_0.0.8-1+b2_i386.deb ... Unpacking libuchardet0:i386 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.23.0-5_i386.deb ... Unpacking groff-base (1.23.0-5) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.40.2-11_i386.deb ... Unpacking bsdextrautils (2.40.2-11) ... Selecting previously unselected package libpipeline1:i386. Preparing to unpack .../11-libpipeline1_1.5.8-1_i386.deb ... Unpacking libpipeline1:i386 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.13.0-1_i386.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../13-m4_1.4.19-4_i386.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../14-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../15-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../16-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 .../17-autopoint_0.22.5-2_all.deb ... Unpacking autopoint (0.22.5-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../18-libdebhelper-perl_13.20_all.deb ... Unpacking libdebhelper-perl (13.20) ... Selecting previously unselected package libtool. Preparing to unpack .../19-libtool_2.4.7-8_all.deb ... Unpacking libtool (2.4.7-8) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../20-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../21-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../22-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../23-dh-strip-nondeterminism_1.14.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.0-1) ... Selecting previously unselected package libelf1t64:i386. Preparing to unpack .../24-libelf1t64_0.192-4_i386.deb ... Unpacking libelf1t64:i386 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../25-dwz_0.15-1+b1_i386.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:i386. Preparing to unpack .../26-libicu72_72.1-5+b1_i386.deb ... Unpacking libicu72:i386 (72.1-5+b1) ... Selecting previously unselected package libxml2:i386. Preparing to unpack .../27-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_i386.deb ... Unpacking libxml2:i386 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../28-gettext_0.22.5-2_i386.deb ... Unpacking gettext (0.22.5-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../29-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../30-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../31-debhelper_13.20_all.deb ... Unpacking debhelper (13.20) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../32-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../33-python3-more-itertools_10.5.0-1_all.deb ... Unpacking python3-more-itertools (10.5.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../34-python3-typing-extensions_4.12.2-2_all.deb ... Unpacking python3-typing-extensions (4.12.2-2) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../35-python3-typeguard_4.4.1-1_all.deb ... Unpacking python3-typeguard (4.4.1-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../36-python3-inflect_7.3.1-2_all.deb ... Unpacking python3-inflect (7.3.1-2) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../37-python3-jaraco.context_6.0.0-1_all.deb ... Unpacking python3-jaraco.context (6.0.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../38-python3-jaraco.functools_4.1.0-1_all.deb ... Unpacking python3-jaraco.functools (4.1.0-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../39-python3-pkg-resources_75.2.0-1_all.deb ... Unpacking python3-pkg-resources (75.2.0-1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../40-python3-jaraco.text_4.0.0-1_all.deb ... Unpacking python3-jaraco.text (4.0.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../41-python3-zipp_3.21.0-1_all.deb ... Unpacking python3-zipp (3.21.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../42-python3-setuptools_75.2.0-1_all.deb ... Unpacking python3-setuptools (75.2.0-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../43-dh-python_6.20241024_all.deb ... Unpacking dh-python (6.20241024) ... Selecting previously unselected package libpython3.13-stdlib:i386. Preparing to unpack .../44-libpython3.13-stdlib_3.13.0-2_i386.deb ... Unpacking libpython3.13-stdlib:i386 (3.13.0-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../45-python3.13_3.13.0-2_i386.deb ... Unpacking python3.13 (3.13.0-2) ... Selecting previously unselected package python3-all. Preparing to unpack .../46-python3-all_3.12.7-1_i386.deb ... Unpacking python3-all (3.12.7-1) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../47-python3-bcrypt_4.2.0-2.1_i386.deb ... Unpacking python3-bcrypt (4.2.0-2.1) ... Selecting previously unselected package python3-cffi-backend:i386. Preparing to unpack .../48-python3-cffi-backend_1.17.1-2+b1_i386.deb ... Unpacking python3-cffi-backend:i386 (1.17.1-2+b1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../49-python3-cryptography_43.0.0-1_i386.deb ... Unpacking python3-cryptography (43.0.0-1) ... Selecting previously unselected package python3-dnspython. Preparing to unpack .../50-python3-dnspython_2.6.1-1_all.deb ... Unpacking python3-dnspython (2.6.1-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../51-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-mock. Preparing to unpack .../52-python3-mock_5.1.0-1_all.deb ... Unpacking python3-mock (5.1.0-1) ... Selecting previously unselected package python3-openssl. Preparing to unpack .../53-python3-openssl_24.2.1-1_all.deb ... Unpacking python3-openssl (24.2.1-1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../54-python3-packaging_24.2-1_all.deb ... Unpacking python3-packaging (24.2-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../55-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../56-python3-pytest_8.3.3-1_all.deb ... Unpacking python3-pytest (8.3.3-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../57-python3-urllib3_2.0.7-2_all.deb ... Unpacking python3-urllib3 (2.0.7-2) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:i386 (1.5.8-1) ... Setting up libkeyutils1:i386 (1.6.3-4) ... Setting up libicu72:i386 (72.1-5+b1) ... Setting up bsdextrautils (2.40.2-11) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libtirpc-common (1.3.4+ds-1.3) ... Setting up libdebhelper-perl (13.20) ... Setting up libmagic1t64:i386 (1:5.45-3+b1) ... Setting up gettext-base (0.22.5-2) ... Setting up m4 (1.4.19-4) ... Setting up libcom-err2:i386 (1.47.1-1+b1) ... Setting up file (1:5.45-3+b1) ... Setting up libelf1t64:i386 (0.192-4) ... Setting up libkrb5support0:i386 (1.21.3-3) ... Setting up tzdata (2024b-3) ... Current default time zone: 'Etc/UTC' Local time is now: Fri Nov 22 05:09:53 UTC 2024. Universal Time is now: Fri Nov 22 05:09:53 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:i386 (3.13.0-2) ... Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.22.5-2) ... Setting up libk5crypto3:i386 (1.21.3-3) ... Setting up autoconf (2.72-3) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:i386 (0.0.8-1+b2) ... Setting up python3.13-minimal (3.13.0-2) ... Setting up netbase (6.4) ... Setting up libkrb5-3:i386 (1.21.3-3) ... Setting up readline-common (8.2-5) ... Setting up libxml2:i386 (2.12.7+dfsg+really2.9.14-0.2+b1) ... 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.14.0-1) ... Setting up gettext (0.22.5-2) ... Setting up libtool (2.4.7-8) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up libgssapi-krb5-2:i386 (1.21.3-3) ... Setting up libreadline8t64:i386 (8.2-5) ... Setting up dh-strip-nondeterminism (1.14.0-1) ... Setting up groff-base (1.23.0-5) ... Setting up libpython3.13-stdlib:i386 (3.13.0-2) ... Setting up libtirpc3t64:i386 (1.3.4+ds-1.3+b1) ... Setting up python3.13 (3.13.0-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libnsl2:i386 (1.3.0-3+b3) ... Setting up libpython3.12-stdlib:i386 (3.12.7-3) ... Setting up python3.12 (3.12.7-3) ... Setting up debhelper (13.20) ... Setting up libpython3-stdlib:i386 (3.12.7-1) ... Setting up python3 (3.12.7-1) ... Setting up python3-zipp (3.21.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up python3-mock (5.1.0-1) ... Setting up python3-packaging (24.2-1) ... Setting up python3-typing-extensions (4.12.2-2) ... Setting up python3-urllib3 (2.0.7-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up python3-dnspython (2.6.1-1) ... Setting up python3-cffi-backend:i386 (1.17.1-2+b1) ... Setting up python3-more-itertools (10.5.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-jaraco.context (6.0.0-1) ... Setting up python3-pytest (8.3.3-1) ... Setting up python3-bcrypt (4.2.0-2.1) ... Setting up python3-typeguard (4.4.1-1) ... Setting up python3-all (3.12.7-1) ... Setting up python3-inflect (7.3.1-2) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-cryptography (43.0.0-1) ... Setting up python3-pkg-resources (75.2.0-1) ... Setting up python3-setuptools (75.2.0-1) ... Setting up python3-openssl (24.2.1-1) ... Setting up dh-python (6.20241024) ... Processing triggers for libc-bin (2.40-3) ... 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/python-etcd-0.4.5/ && 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 > ../python-etcd_0.4.5-4_source.changes dpkg-buildpackage: info: source package python-etcd dpkg-buildpackage: info: source version 0.4.5-4 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Emanuele Rocca dpkg-source --before-build . dpkg-buildpackage: info: host architecture i386 debian/rules clean dh clean --with python3 --buildsystem pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:311: python3.13 setup.py clean /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running clean removing '/build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build' (and everything under it) 'build/bdist.linux-i686' does not exist -- can't clean it 'build/scripts-3.13' does not exist -- can't clean it I: pybuild base:311: python3.12 setup.py clean /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running clean removing '/build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build' (and everything under it) 'build/bdist.linux-i686' does not exist -- can't clean it 'build/scripts-3.12' 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:311: python3.13 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running config I: pybuild base:311: python3.12 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running config dh_auto_build -O--buildsystem=pybuild I: pybuild base:311: /usr/bin/python3.13 setup.py build /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running build running build_py creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd copying src/etcd/auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests copying src/etcd/tests/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests copying src/etcd/tests/test_auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/helpers.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_simple.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_ssl.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/integration creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_result.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_old_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build/etcd/tests/unit running egg_info creating src/python_etcd.egg-info writing src/python_etcd.egg-info/PKG-INFO writing dependency_links to src/python_etcd.egg-info/dependency_links.txt writing requirements to src/python_etcd.egg-info/requires.txt writing top-level names to src/python_etcd.egg-info/top_level.txt writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' reading manifest file 'src/python_etcd.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE.txt' adding license file 'AUTHORS' writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' I: pybuild base:311: /usr/bin/python3 setup.py build /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) running build running build_py creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd copying src/etcd/auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests copying src/etcd/tests/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests copying src/etcd/tests/test_auth.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/helpers.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_simple.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration copying src/etcd/tests/integration/test_ssl.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration creating /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_result.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_lock.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_old_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_client.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/__init__.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit copying src/etcd/tests/unit/test_request.py -> /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit running egg_info writing src/python_etcd.egg-info/PKG-INFO writing dependency_links to src/python_etcd.egg-info/dependency_links.txt writing requirements to src/python_etcd.egg-info/requires.txt writing top-level names to src/python_etcd.egg-info/top_level.txt reading manifest file 'src/python_etcd.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE.txt' adding license file 'AUTHORS' writing manifest file 'src/python_etcd.egg-info/SOURCES.txt' dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build; python3.13 -m pytest etcd/tests/unit/ ============================= test session starts ============================== platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 rootdir: /build/reproducible-path/python-etcd-0.4.5 plugins: typeguard-4.4.1 collected 119 items etcd/tests/unit/test_client.py F.F.........F..............F [ 23%] etcd/tests/unit/test_lock.py FF.FFFFFF.F [ 32%] etcd/tests/unit/test_old_request.py FF..FFFFFFFxFFF...FFF [ 50%] etcd/tests/unit/test_request.py ...FF.FF.FFFFF..FFFFF.FFFFF.F.FF.FFFFF.. [ 84%] .FF..FFF.FF.FFF. [ 97%] etcd/tests/unit/test_result.py ... [100%] =================================== FAILURES =================================== ______________________ TestClient.test__set_version_info _______________________ self = def test__set_version_info(self): """Verify _set_version_info makes the proper call to the server""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client and make the call. client = etcd.Client() client._set_version_info() # Verify we call the proper endpoint _request.assert_called_once_with( client._MGET, client._base_uri + '/version', headers=mock.ANY, redirect=mock.ANY, timeout=mock.ANY) # Verify the properties while we are here > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:145: AttributeError ___________________ TestClient.test_cluster_version_property ___________________ self = def test_cluster_version_property(self): """Ensure the cluster version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the cluster_version property is set > self.assertEquals('2.3.0', client.cluster_version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:174: AttributeError ___________________________ TestClient.test_discover ___________________________ self = def test_discover(self): """Tests discovery.""" answers = [] for i in range(1,3): r = mock.create_autospec(dns.rdtypes.IN.SRV.SRV) r.port = 2379 try: method = dns.name.from_unicode except AttributeError: method = dns.name.from_text r.target = method(u'etcd{}.example.com'.format(i)) answers.append(r) dns.resolver.query = mock.create_autospec(dns.resolver.query, return_value=answers) self.machines = etcd.Client.machines etcd.Client.machines = mock.create_autospec(etcd.Client.machines, return_value=[u'https://etcd2.example.com:2379']) c = etcd.Client(srv_domain="example.com", allow_reconnect=True, protocol="https") etcd.Client.machines = self.machines > self.assertEquals(c.host, u'etcd1.example.com') E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:210: AttributeError _______________________ TestClient.test_version_property _______________________ self = def test_version_property(self): """Ensure the version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the version property is set > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:160: AttributeError _________________________ TestClientLock.test_acquire __________________________ self = def test_acquire(self): """ Acquiring a precedingly inexistent lock works. """ l = etcd.Lock(self.client, 'test_lock') l._find_lock = mock.MagicMock(spec=l._find_lock, return_value=False) l._acquired = mock.MagicMock(spec=l._acquired, return_value=True) # Mock the write d = { u'action': u'set', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': l.uuid } } self._mock_api(200, d) > self.assertEquals(l.acquire(), True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:55: AttributeError _________________________ TestClientLock.test_acquired _________________________ self = def test_acquired(self): """ Test the acquiring primitives """ self.locker._sequence = '4' retval = ('/_locks/test_lock/4', None) self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, return_value=retval) self.assertTrue(self.locker._acquired()) self.assertTrue(self.locker.is_taken) retval = ('/_locks/test_lock/1', '/_locks/test_lock/4') self.locker._get_locker = mock.MagicMock(return_value=retval) self.assertFalse(self.locker._acquired(blocking=False)) self.assertFalse(self.locker.is_taken) d = { u'action': u'delete', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) returns = [('/_locks/test_lock/1', '/_locks/test_lock/4'), ('/_locks/test_lock/4', None)] def side_effect(): return returns.pop() > self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, side_effect=side_effect) etcd/tests/unit/test_lock.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/mock/mock.py:2188: in __init__ _safe_super(MagicMixin, self).__init__(*args, **kw) /usr/lib/python3/dist-packages/mock/mock.py:1160: in __init__ _safe_super(CallableMixin, self).__init__( /usr/lib/python3/dist-packages/mock/mock.py:486: in __init__ self._mock_add_spec(spec, spec_set, _spec_as_instance, _eat_self) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError('_mock_methods') raised in repr()] MagicMock object at 0xf5e6aaf8> spec = , spec_set = None, _spec_as_instance = False _eat_self = False def _mock_add_spec(self, spec, spec_set, _spec_as_instance=False, _eat_self=False): if _is_instance_mock(spec): > raise InvalidSpecError(f'Cannot spec a Mock object. [object={spec!r}]') E mock.mock.InvalidSpecError: Cannot spec a Mock object. [object=] /usr/lib/python3/dist-packages/mock/mock.py:537: InvalidSpecError ________________________ TestClientLock.test_find_lock _________________________ self = def test_find_lock(self): d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker._sequence = '1' self.assertTrue(self.locker._find_lock()) # Now let's pretend the lock is not there self._mock_exception(etcd.EtcdKeyNotFound, self.locker.lock_key) self.assertFalse(self.locker._find_lock()) self.locker._sequence = None self.recursive_read() self.assertTrue(self.locker._find_lock()) > self.assertEquals(self.locker._sequence, '34') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:174: AttributeError ________________________ TestClientLock.test_get_locker ________________________ self = def test_get_locker(self): self.recursive_read() > self.assertEquals((u'/_locks/test_lock/1', etcd.EtcdResult(node={'newKey': False, '_children': [], 'createdIndex': 33, 'modifiedIndex': 33, 'value': u'2qwwwq', 'expiration': None, 'key': u'/_locks/test_lock/1', 'ttl': None, 'action': None, 'dir': False})), self.locker._get_locker()) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:178: AttributeError ______________________ TestClientLock.test_initialization ______________________ self = def test_initialization(self): """ Verify the lock gets initialized correctly """ > self.assertEquals(self.locker.name, u'test_lock') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:34: AttributeError _______________________ TestClientLock.test_is_acquired ________________________ self = def test_is_acquired(self): """ Test is_acquired """ self.locker._sequence = '1' d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker.is_taken = True > self.assertEquals(self.locker.is_acquired, True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:73: AttributeError _____________________ TestClientLock.test_is_not_acquired ______________________ self = def test_is_not_acquired(self): """ Test is_acquired failures """ self.locker._sequence = '2' self.locker.is_taken = False > self.assertEquals(self.locker.is_acquired, False) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:81: AttributeError _________________________ TestClientLock.test_lock_key _________________________ self = def test_lock_key(self): """ Test responses from the lock_key property """ with self.assertRaises(ValueError): self.locker.lock_key self.locker._sequence = '5' > self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:150: AttributeError _______________________ TestClientLock.test_set_sequence _______________________ self = def test_set_sequence(self): self.locker._set_sequence('/_locks/test_lock/10') > self.assertEquals('10', self.locker._sequence) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:154: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"DELETE",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"expiration":"2013-09-14T01:06:35.5242587+02:00",' '"modifiedIndex":189}}') ) result = client.delete('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'DELETE', u'node': { u'expiration': u'2013-09-14T01:06:35.5242587+02:00', u'modifiedIndex': 189, u'key': u'/testkey', u'prevValue': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:114: AttributeError __________________________ TestClientRequest.test_get __________________________ self = def test_get(self): """ Can get a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = client.get('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'GET', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:136: AttributeError __________________________ TestClientRequest.test_in ___________________________ self = def test_in(self): """ Can check if key is in client """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = '/testkey' in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:172: AttributeError ______________________ TestClientRequest.test_index_watch ______________________ self = def test_index_watch(self): """ Can watch values from index """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":180}}') ) result = client.watch('/testkey', index=180) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 180, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:216: AttributeError ________________________ TestClientRequest.test_not_in _________________________ self = def test_not_in(self): """ Can check if key is not in client """ client = etcd.Client() client.get = mock.Mock(side_effect=etcd.EtcdKeyNotFound()) result = '/testkey' not in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:157: AttributeError __________________________ TestClientRequest.test_set __________________________ self = def test_set(self): """ Can set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(201, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T00:56:59.316195568+02:00",' '"ttl":19,"modifiedIndex":183}}') ) result = client.set('/testkey', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', 'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'}}), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:45: AttributeError _____________________ TestClientRequest.test_simple_watch ______________________ self = def test_simple_watch(self): """ Can watch values """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":192}}') ) result = client.watch('/testkey') > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 192, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:189: AttributeError _____________________ TestClientRequest.test_test_and_set ______________________ self = def test_test_and_set(self): """ Can test and set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"value":"newvalue",' '"expiration":"2013-09-14T02:09:44.24390976+02:00",' '"ttl":49,"modifiedIndex":203}}') ) result = client.test_and_set('/testkey', 'newvalue', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T02:09:44.24390976+02:00', u'modifiedIndex': 203, u'key': u'/testkey', u'prevValue': u'test', u'ttl': 49, u'value': u'newvalue'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:70: AttributeError _________________ TestClientRequest.test_test_and_test_failure _________________ self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: > result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) etcd/tests/unit/test_old_request.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:703: in test_and_set return self.write(key, value, prevValue=prev_value, ttl=ttl) etcd/client.py:500: in write response = self.api_execute(path, method, params=params) /usr/lib/python3/dist-packages/mock/mock.py:1178: in __call__ return _mock_self._mock_call(*args, **kwargs) /usr/lib/python3/dist-packages/mock/mock.py:1182: in _mock_call return _mock_self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _mock_self = , args = ('/v2/keys/testkey', 'PUT') kwargs = {'params': {'prevValue': 'test', 'ttl': 19, 'value': 'newvalue'}} self = effect = ValueError('The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3') def _execute_mock_call(_mock_self, *args, **kwargs): self = _mock_self # separate from _increment_mock_call so that awaited functions are # executed separately from their call, also AsyncMock overrides this method effect = self.side_effect if effect is not None: if _is_exception(effect): > raise effect E ValueError: The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3 /usr/lib/python3/dist-packages/mock/mock.py:1239: ValueError During handling of the above exception, another exception occurred: self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) except ValueError as e: #from ipdb import set_trace; set_trace() > self.assertEquals( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3', str(e)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:97: AttributeError ______________________ TestClientApiExecutor.test_delete _______________________ self = def test_delete(self): """ http delete request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MDELETE) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:278: AttributeError ________________________ TestClientApiExecutor.test_get ________________________ self = def test_get(self): """ http get request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MGET) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:270: AttributeError _____________________ TestClientApiExecutor.test_get_error _____________________ self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: > client.api_execute('/v2/keys/testkey', client._MGET) etcd/tests/unit/test_old_request.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 100, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdKeyNotFound: message : cause etcd/__init__.py:306: EtcdKeyNotFound During handling of the above exception, another exception occurred: self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: client.api_execute('/v2/keys/testkey', client._MGET) assert False except etcd.EtcdKeyNotFound as e: > self.assertEquals(str(e), 'message : cause') E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:292: AttributeError ________________________ TestClientApiExecutor.test_put ________________________ self = def test_put(self): """ http put request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request_encode_body = mock.Mock(return_value=response) result = client.api_execute('/v2/keys/testkey', client._MPUT) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:300: AttributeError ________________ TestClientApiExecutor.test_set_not_file_error _________________ self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:325: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 102, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdNotFile: message : cause etcd/__init__.py:306: EtcdNotFile During handling of the above exception, another exception occurred: self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except etcd.EtcdNotFile as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:328: AttributeError ________________ TestClientApiExecutor.test_test_and_set_error _________________ self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 101, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdCompareFailed: message : cause etcd/__init__.py:306: EtcdCompareFailed During handling of the above exception, another exception occurred: self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except ValueError as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:314: AttributeError _________________ TestClientApiInternals.test_write_no_params __________________ self = def test_write_no_params(self): """ Calling `write` without a value argument will omit the `value` from the API call params """ d = { u'action': u'set', u'node': { u'createdIndex': 17, u'dir': True, u'key': u'/newdir', u'modifiedIndex': 17 } } self._mock_api(200, d) self.client.write('/newdir', None, dir=True) > self.assertEquals(self.client.api_execute.call_args, (('/v2/keys/newdir', 'PUT'), dict(params={'dir': 'true'}))) E AttributeError: 'TestClientApiInternals' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:71: AttributeError _________________ TestClientApiInterface.test_compare_and_swap _________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ______________________ TestClientApiInterface.test_delete ______________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError _____________________ TestClientApiInterface.test_get_dir ______________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ______________________ TestClientApiInterface.test_leader ______________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError ___________________ TestClientApiInterface.test_leader_stats ___________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _____________________ TestClientApiInterface.test_machines _____________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.13/contextlib.py:141: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.13/contextlib.py:530: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError _____________________ TestClientApiInterface.test_members ______________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ______________________ TestClientApiInterface.test_newkey ______________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError _______________________ TestClientApiInterface.test_pop ________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _______________________ TestClientApiInterface.test_read _______________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError _____________________ TestClientApiInterface.test_refresh ______________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ____________________ TestClientApiInterface.test_self_stats ____________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ____________________ TestClientApiInterface.test_set_append ____________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError ____________________ TestClientApiInterface.test_set_plain _____________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ______________________ TestClientApiInterface.test_update ______________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ___________________ TestClientApiInterface.test_use_proxies ____________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError ______________________ TestClientApiInterface.test_watch _______________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ___________________ TestClientApiInterface.test_watch_index ____________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError ___________________ TestClientRequest.test_compare_and_swap ____________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError ________________________ TestClientRequest.test_get_dir ________________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ________________________ TestClientRequest.test_leader _________________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError _____________________ TestClientRequest.test_leader_stats ______________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _______________________ TestClientRequest.test_machines ________________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.13/contextlib.py:141: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.13/contextlib.py:530: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError ________________________ TestClientRequest.test_members ________________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ________________________ TestClientRequest.test_newkey _________________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError __________________________ TestClientRequest.test_pop __________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _________________________ TestClientRequest.test_read __________________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError ________________________ TestClientRequest.test_refresh ________________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ______________________ TestClientRequest.test_self_stats _______________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ______________________ TestClientRequest.test_set_append _______________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError _______________________ TestClientRequest.test_set_plain _______________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ________________________ TestClientRequest.test_update _________________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ______________________ TestClientRequest.test_use_proxies ______________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError _________________________ TestClientRequest.test_watch _________________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ______________________ TestClientRequest.test_watch_index ______________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError =============================== warnings summary =============================== .pybuild/cpython3_3.13_etcd/build/etcd/tests/unit/test_old_request.py:243 .pybuild/cpython3_3.13_etcd/build/etcd/tests/unit/test_old_request.py:243: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_eternal_watch will be ignored -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED etcd/tests/unit/test_client.py::TestClient::test__set_version_info - A... FAILED etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property FAILED etcd/tests/unit/test_client.py::TestClient::test_discover - AttributeE... FAILED etcd/tests/unit/test_client.py::TestClient::test_version_property - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquire - Attribute... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquired - mock.moc... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock - Attribu... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker - Attrib... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_initialization - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired - Attri... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired - A... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key - Attribut... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_get - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_in - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_set - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error FAILED etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_members FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop - At... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_read - A... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_update FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch - ... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_delete - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_machines - Mo... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_members - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_newkey - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_pop - Attribu... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_read - Attrib... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_refresh - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_append - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain - A... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_update - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch - Attri... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index ============= 65 failed, 53 passed, 1 xfailed, 1 warning in 3.52s ============== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.13_etcd/build; python3.13 -m pytest etcd/tests/unit/ I: pybuild base:311: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build; python3.12 -m pytest etcd/tests/unit/ ============================= test session starts ============================== platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 rootdir: /build/reproducible-path/python-etcd-0.4.5 plugins: typeguard-4.4.1 collected 119 items etcd/tests/unit/test_client.py F.F.........F..............F [ 23%] etcd/tests/unit/test_lock.py FF.FFFFFF.F [ 32%] etcd/tests/unit/test_old_request.py FF..FFFFFFFxFFF...FFF [ 50%] etcd/tests/unit/test_request.py ...FF.FF.FFFFF..FFFFF.FFFFF.F.FF.FFFFF.. [ 84%] .FF..FFF.FF.FFF. [ 97%] etcd/tests/unit/test_result.py ... [100%] =================================== FAILURES =================================== ______________________ TestClient.test__set_version_info _______________________ self = def test__set_version_info(self): """Verify _set_version_info makes the proper call to the server""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client and make the call. client = etcd.Client() client._set_version_info() # Verify we call the proper endpoint _request.assert_called_once_with( client._MGET, client._base_uri + '/version', headers=mock.ANY, redirect=mock.ANY, timeout=mock.ANY) # Verify the properties while we are here > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:145: AttributeError ___________________ TestClient.test_cluster_version_property ___________________ self = def test_cluster_version_property(self): """Ensure the cluster version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the cluster_version property is set > self.assertEquals('2.3.0', client.cluster_version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:174: AttributeError ___________________________ TestClient.test_discover ___________________________ self = def test_discover(self): """Tests discovery.""" answers = [] for i in range(1,3): r = mock.create_autospec(dns.rdtypes.IN.SRV.SRV) r.port = 2379 try: method = dns.name.from_unicode except AttributeError: method = dns.name.from_text r.target = method(u'etcd{}.example.com'.format(i)) answers.append(r) dns.resolver.query = mock.create_autospec(dns.resolver.query, return_value=answers) self.machines = etcd.Client.machines etcd.Client.machines = mock.create_autospec(etcd.Client.machines, return_value=[u'https://etcd2.example.com:2379']) c = etcd.Client(srv_domain="example.com", allow_reconnect=True, protocol="https") etcd.Client.machines = self.machines > self.assertEquals(c.host, u'etcd1.example.com') E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:210: AttributeError _______________________ TestClient.test_version_property _______________________ self = def test_version_property(self): """Ensure the version property is set on first access.""" with mock.patch('urllib3.PoolManager') as _pm: _request = _pm().request # Return the expected data type _request.return_value = mock.MagicMock( data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}') # Create the client. client = etcd.Client() # Verify the version property is set > self.assertEquals('2.2.3', client.version) E AttributeError: 'TestClient' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_client.py:160: AttributeError _________________________ TestClientLock.test_acquire __________________________ self = def test_acquire(self): """ Acquiring a precedingly inexistent lock works. """ l = etcd.Lock(self.client, 'test_lock') l._find_lock = mock.MagicMock(spec=l._find_lock, return_value=False) l._acquired = mock.MagicMock(spec=l._acquired, return_value=True) # Mock the write d = { u'action': u'set', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': l.uuid } } self._mock_api(200, d) > self.assertEquals(l.acquire(), True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:55: AttributeError _________________________ TestClientLock.test_acquired _________________________ self = def test_acquired(self): """ Test the acquiring primitives """ self.locker._sequence = '4' retval = ('/_locks/test_lock/4', None) self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, return_value=retval) self.assertTrue(self.locker._acquired()) self.assertTrue(self.locker.is_taken) retval = ('/_locks/test_lock/1', '/_locks/test_lock/4') self.locker._get_locker = mock.MagicMock(return_value=retval) self.assertFalse(self.locker._acquired(blocking=False)) self.assertFalse(self.locker.is_taken) d = { u'action': u'delete', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) returns = [('/_locks/test_lock/1', '/_locks/test_lock/4'), ('/_locks/test_lock/4', None)] def side_effect(): return returns.pop() > self.locker._get_locker = mock.MagicMock( spec=self.locker._get_locker, side_effect=side_effect) etcd/tests/unit/test_lock.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/mock/mock.py:2188: in __init__ _safe_super(MagicMixin, self).__init__(*args, **kw) /usr/lib/python3/dist-packages/mock/mock.py:1160: in __init__ _safe_super(CallableMixin, self).__init__( /usr/lib/python3/dist-packages/mock/mock.py:486: in __init__ self._mock_add_spec(spec, spec_set, _spec_as_instance, _eat_self) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError('_mock_methods') raised in repr()] MagicMock object at 0xf5ea88a0> spec = , spec_set = None, _spec_as_instance = False _eat_self = False def _mock_add_spec(self, spec, spec_set, _spec_as_instance=False, _eat_self=False): if _is_instance_mock(spec): > raise InvalidSpecError(f'Cannot spec a Mock object. [object={spec!r}]') E mock.mock.InvalidSpecError: Cannot spec a Mock object. [object=] /usr/lib/python3/dist-packages/mock/mock.py:537: InvalidSpecError ________________________ TestClientLock.test_find_lock _________________________ self = def test_find_lock(self): d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker._sequence = '1' self.assertTrue(self.locker._find_lock()) # Now let's pretend the lock is not there self._mock_exception(etcd.EtcdKeyNotFound, self.locker.lock_key) self.assertFalse(self.locker._find_lock()) self.locker._sequence = None self.recursive_read() self.assertTrue(self.locker._find_lock()) > self.assertEquals(self.locker._sequence, '34') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:174: AttributeError ________________________ TestClientLock.test_get_locker ________________________ self = def test_get_locker(self): self.recursive_read() > self.assertEquals((u'/_locks/test_lock/1', etcd.EtcdResult(node={'newKey': False, '_children': [], 'createdIndex': 33, 'modifiedIndex': 33, 'value': u'2qwwwq', 'expiration': None, 'key': u'/_locks/test_lock/1', 'ttl': None, 'action': None, 'dir': False})), self.locker._get_locker()) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:178: AttributeError ______________________ TestClientLock.test_initialization ______________________ self = def test_initialization(self): """ Verify the lock gets initialized correctly """ > self.assertEquals(self.locker.name, u'test_lock') E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:34: AttributeError _______________________ TestClientLock.test_is_acquired ________________________ self = def test_is_acquired(self): """ Test is_acquired """ self.locker._sequence = '1' d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/_locks/test_lock/1', u'value': self.locker.uuid } } self._mock_api(200, d) self.locker.is_taken = True > self.assertEquals(self.locker.is_acquired, True) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:73: AttributeError _____________________ TestClientLock.test_is_not_acquired ______________________ self = def test_is_not_acquired(self): """ Test is_acquired failures """ self.locker._sequence = '2' self.locker.is_taken = False > self.assertEquals(self.locker.is_acquired, False) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:81: AttributeError _________________________ TestClientLock.test_lock_key _________________________ self = def test_lock_key(self): """ Test responses from the lock_key property """ with self.assertRaises(ValueError): self.locker.lock_key self.locker._sequence = '5' > self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:150: AttributeError _______________________ TestClientLock.test_set_sequence _______________________ self = def test_set_sequence(self): self.locker._set_sequence('/_locks/test_lock/10') > self.assertEquals('10', self.locker._sequence) E AttributeError: 'TestClientLock' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_lock.py:154: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"DELETE",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"expiration":"2013-09-14T01:06:35.5242587+02:00",' '"modifiedIndex":189}}') ) result = client.delete('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'DELETE', u'node': { u'expiration': u'2013-09-14T01:06:35.5242587+02:00', u'modifiedIndex': 189, u'key': u'/testkey', u'prevValue': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:114: AttributeError __________________________ TestClientRequest.test_get __________________________ self = def test_get(self): """ Can get a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = client.get('/testkey') > self.assertEquals(etcd.EtcdResult( **{u'action': u'GET', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:136: AttributeError __________________________ TestClientRequest.test_in ___________________________ self = def test_in(self): """ Can check if key is in client """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"GET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"modifiedIndex":190}}') ) result = '/testkey' in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:172: AttributeError ______________________ TestClientRequest.test_index_watch ______________________ self = def test_index_watch(self): """ Can watch values from index """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":180}}') ) result = client.watch('/testkey', index=180) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 180, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:216: AttributeError ________________________ TestClientRequest.test_not_in _________________________ self = def test_not_in(self): """ Can check if key is not in client """ client = etcd.Client() client.get = mock.Mock(side_effect=etcd.EtcdKeyNotFound()) result = '/testkey' not in client > self.assertEquals(True, result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:157: AttributeError __________________________ TestClientRequest.test_set __________________________ self = def test_set(self): """ Can set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(201, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T00:56:59.316195568+02:00",' '"ttl":19,"modifiedIndex":183}}') ) result = client.set('/testkey', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', 'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'}}), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:45: AttributeError _____________________ TestClientRequest.test_simple_watch ______________________ self = def test_simple_watch(self): """ Can watch values """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"value":"test",' '"newKey":true,' '"expiration":"2013-09-14T01:35:07.623681365+02:00",' '"ttl":19,' '"modifiedIndex":192}}') ) result = client.watch('/testkey') > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T01:35:07.623681365+02:00', u'modifiedIndex': 192, u'key': u'/testkey', u'newKey': True, u'ttl': 19, u'value': u'test'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:189: AttributeError _____________________ TestClientRequest.test_test_and_set ______________________ self = def test_test_and_set(self): """ Can test and set a value """ client = etcd.Client() client.api_execute = mock.Mock( return_value=FakeHTTPResponse(200, '{"action":"SET",' '"node": {' '"key":"/testkey",' '"prevValue":"test",' '"value":"newvalue",' '"expiration":"2013-09-14T02:09:44.24390976+02:00",' '"ttl":49,"modifiedIndex":203}}') ) result = client.test_and_set('/testkey', 'newvalue', 'test', ttl=19) > self.assertEquals( etcd.EtcdResult( **{u'action': u'SET', u'node': { u'expiration': u'2013-09-14T02:09:44.24390976+02:00', u'modifiedIndex': 203, u'key': u'/testkey', u'prevValue': u'test', u'ttl': 49, u'value': u'newvalue'} }), result) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:70: AttributeError _________________ TestClientRequest.test_test_and_test_failure _________________ self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: > result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) etcd/tests/unit/test_old_request.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:703: in test_and_set return self.write(key, value, prevValue=prev_value, ttl=ttl) etcd/client.py:500: in write response = self.api_execute(path, method, params=params) /usr/lib/python3/dist-packages/mock/mock.py:1178: in __call__ return _mock_self._mock_call(*args, **kwargs) /usr/lib/python3/dist-packages/mock/mock.py:1182: in _mock_call return _mock_self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _mock_self = , args = ('/v2/keys/testkey', 'PUT') kwargs = {'params': {'prevValue': 'test', 'ttl': 19, 'value': 'newvalue'}} self = effect = ValueError('The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3') def _execute_mock_call(_mock_self, *args, **kwargs): self = _mock_self # separate from _increment_mock_call so that awaited functions are # executed separately from their call, also AsyncMock overrides this method effect = self.side_effect if effect is not None: if _is_exception(effect): > raise effect E ValueError: The given PrevValue is not equal to the value of the key : TestAndSet: 1!=3 /usr/lib/python3/dist-packages/mock/mock.py:1239: ValueError During handling of the above exception, another exception occurred: self = def test_test_and_test_failure(self): """ Exception will be raised if prevValue != value in test_set """ client = etcd.Client() client.api_execute = mock.Mock( side_effect=ValueError( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3')) try: result = client.test_and_set( '/testkey', 'newvalue', 'test', ttl=19) except ValueError as e: #from ipdb import set_trace; set_trace() > self.assertEquals( 'The given PrevValue is not equal' ' to the value of the key : TestAndSet: 1!=3', str(e)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:97: AttributeError ______________________ TestClientApiExecutor.test_delete _______________________ self = def test_delete(self): """ http delete request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MDELETE) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:278: AttributeError ________________________ TestClientApiExecutor.test_get ________________________ self = def test_get(self): """ http get request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request = mock.Mock(return_value=response) result = client.api_execute('/v1/keys/testkey', client._MGET) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:270: AttributeError _____________________ TestClientApiExecutor.test_get_error _____________________ self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: > client.api_execute('/v2/keys/testkey', client._MGET) etcd/tests/unit/test_old_request.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 100, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdKeyNotFound: message : cause etcd/__init__.py:306: EtcdKeyNotFound During handling of the above exception, another exception occurred: self = def test_get_error(self): """ http get error request 101""" client = etcd.Client() response = FakeHTTPResponse(status=400, data='{"message": "message",' ' "cause": "cause",' ' "errorCode": 100}') client.http.request = mock.Mock(return_value=response) try: client.api_execute('/v2/keys/testkey', client._MGET) assert False except etcd.EtcdKeyNotFound as e: > self.assertEquals(str(e), 'message : cause') E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:292: AttributeError ________________________ TestClientApiExecutor.test_put ________________________ self = def test_put(self): """ http put request """ client = etcd.Client() response = FakeHTTPResponse(status=200, data='arbitrary json data') client.http.request_encode_body = mock.Mock(return_value=response) result = client.api_execute('/v2/keys/testkey', client._MPUT) > self.assertEquals('arbitrary json data'.encode('utf-8'), result.data) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:300: AttributeError ________________ TestClientApiExecutor.test_set_not_file_error _________________ self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:325: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 102, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdNotFile: message : cause etcd/__init__.py:306: EtcdNotFile During handling of the above exception, another exception occurred: self = def test_set_not_file_error(self): """ http post error request 102 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 102}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except etcd.EtcdNotFile as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:328: AttributeError ________________ TestClientApiExecutor.test_test_and_set_error _________________ self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: > client.api_execute('/v2/keys/testkey', client._MPUT, payload) etcd/tests/unit/test_old_request.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ etcd/client.py:907: in wrapper return self._handle_server_response(response) etcd/client.py:987: in _handle_server_response etcd.EtcdError.handle(r) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = payload = {'cause': 'cause', 'errorCode': 101, 'message': 'message', 'status': 400} @classmethod def handle(cls, payload): """ Decodes the error and throws the appropriate error message :param payload: The decoded JSON error payload as a dict. """ error_code = payload.get("errorCode") message = payload.get("message") cause = payload.get("cause") msg = '{} : {}'.format(message, cause) status = payload.get("status") # Some general status handling, as # not all endpoints return coherent error messages if status == 404: error_code = 100 elif status == 401: error_code = 110 exc = cls.error_exceptions.get(error_code, EtcdException) if issubclass(exc, EtcdException): > raise exc(msg, payload) E etcd.EtcdCompareFailed: message : cause etcd/__init__.py:306: EtcdCompareFailed During handling of the above exception, another exception occurred: self = def test_test_and_set_error(self): """ http post error request 101 """ client = etcd.Client() response = FakeHTTPResponse( status=400, data='{"message": "message", "cause": "cause", "errorCode": 101}') client.http.request_encode_body = mock.Mock(return_value=response) payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'} try: client.api_execute('/v2/keys/testkey', client._MPUT, payload) self.fail() except ValueError as e: > self.assertEquals('message : cause', str(e)) E AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_old_request.py:314: AttributeError _________________ TestClientApiInternals.test_write_no_params __________________ self = def test_write_no_params(self): """ Calling `write` without a value argument will omit the `value` from the API call params """ d = { u'action': u'set', u'node': { u'createdIndex': 17, u'dir': True, u'key': u'/newdir', u'modifiedIndex': 17 } } self._mock_api(200, d) self.client.write('/newdir', None, dir=True) > self.assertEquals(self.client.api_execute.call_args, (('/v2/keys/newdir', 'PUT'), dict(params={'dir': 'true'}))) E AttributeError: 'TestClientApiInternals' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:71: AttributeError _________________ TestClientApiInterface.test_compare_and_swap _________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ______________________ TestClientApiInterface.test_delete ______________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError _____________________ TestClientApiInterface.test_get_dir ______________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ______________________ TestClientApiInterface.test_leader ______________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError ___________________ TestClientApiInterface.test_leader_stats ___________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _____________________ TestClientApiInterface.test_machines _____________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.12/contextlib.py:526: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError _____________________ TestClientApiInterface.test_members ______________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ______________________ TestClientApiInterface.test_newkey ______________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError _______________________ TestClientApiInterface.test_pop ________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _______________________ TestClientApiInterface.test_read _______________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError _____________________ TestClientApiInterface.test_refresh ______________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ____________________ TestClientApiInterface.test_self_stats ____________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ____________________ TestClientApiInterface.test_set_append ____________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError ____________________ TestClientApiInterface.test_set_plain _____________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ______________________ TestClientApiInterface.test_update ______________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ___________________ TestClientApiInterface.test_use_proxies ____________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError ______________________ TestClientApiInterface.test_watch _______________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ___________________ TestClientApiInterface.test_watch_index ____________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError ___________________ TestClientRequest.test_compare_and_swap ____________________ self = def test_compare_and_swap(self): """ Can set compare-and-swap a value """ d = {u'action': u'compareAndSwap', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test', prevValue='test_old') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:256: AttributeError ________________________ TestClientRequest.test_delete _________________________ self = def test_delete(self): """ Can delete a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', "modifiedIndex": 3, "createdIndex": 2 } } self._mock_api(200, d) res = self.client.delete('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:301: AttributeError ________________________ TestClientRequest.test_get_dir ________________________ self = def test_get_dir(self): """Can get values in dirs""" d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'dir': True, u'nodes': [ { u'key': u'/testDir/testKey', u'modifiedIndex': 150, u'value': 'test' }, { u'key': u'/testDir/testKey2', u'modifiedIndex': 190, u'value': 'test2' } ] } } self._mock_api(200, d) res = self.client.read('/testDir', recursive=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:361: AttributeError ________________________ TestClientRequest.test_leader _________________________ self = mocker = @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock) def test_leader(self, mocker): """ Can request the leader """ members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": "default"}} mocker.return_value = members self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", "followers": {}}}) > self.assertEquals(self.client.leader, members["ce2a822cea30bfca"]) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:166: AttributeError _____________________ TestClientRequest.test_leader_stats ______________________ self = def test_leader_stats(self): """ Request for leader stats """ data = {"leader": "924e2e83e93f2560", "followers": {}} self._mock_api(200,data) > self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:157: AttributeError _______________________ TestClientRequest.test_machines ________________________ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: > return getattr(thing, comp) E AttributeError: 'function' object has no attribute 'RequestMethods' /usr/lib/python3/dist-packages/mock/mock.py:1321: AttributeError During handling of the above exception, another exception occurred: /usr/lib/python3/dist-packages/mock/mock.py:1449: in patched with self.decoration_helper(patched, /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) /usr/lib/python3/dist-packages/mock/mock.py:1431: in decoration_helper arg = exit_stack.enter_context(patching) /usr/lib/python3.12/contextlib.py:526: in enter_context result = _enter(cm) /usr/lib/python3/dist-packages/mock/mock.py:1504: in __enter__ self.target = self.getter() /usr/lib/python3/dist-packages/mock/mock.py:1691: in getter = lambda: _importer(target) /usr/lib/python3/dist-packages/mock/mock.py:1334: in _importer thing = _dot_lookup(thing, comp, import_path) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thing = , comp = 'RequestMethods' import_path = 'urllib3.request.RequestMethods' def _dot_lookup(thing, comp, import_path): try: return getattr(thing, comp) except AttributeError: > __import__(import_path) E ModuleNotFoundError: No module named 'urllib3.request' /usr/lib/python3/dist-packages/mock/mock.py:1323: ModuleNotFoundError ________________________ TestClientRequest.test_members ________________________ self = def test_members(self): """ Can request machines """ data = { "members": [ { "id": "ce2a822cea30bfca", "name": "default", "peerURLs": ["http://localhost:2380", "http://localhost:7001"], "clientURLs": ["http://127.0.0.1:4001"] } ] } self._mock_api(200, data) > self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:131: AttributeError ________________________ TestClientRequest.test_newkey _________________________ self = def test_newkey(self): """ Can set a new value """ d = { u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testkey', 'test') d['node']['newKey'] = True > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:218: AttributeError __________________________ TestClientRequest.test_pop __________________________ self = def test_pop(self): """ Can pop a value """ d = { u'action': u'delete', u'node': { u'key': u'/testkey', u'modifiedIndex': 3, u'createdIndex': 2 }, u'prevNode': {u'newKey': False, u'createdIndex': None, u'modifiedIndex': 190, u'value': u'test', u'expiration': None, u'key': u'/testkey', u'ttl': None, u'dir': False} } self._mock_api(200, d) res = self.client.pop(d['node']['key']) > self.assertEquals({attr: getattr(res, attr) for attr in dir(res) if attr in etcd.EtcdResult._node_props}, d['prevNode']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:319: AttributeError _________________________ TestClientRequest.test_read __________________________ self = def test_read(self): """ Can get a value """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testKey') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:335: AttributeError ________________________ TestClientRequest.test_refresh ________________________ self = def test_refresh(self): """ Can refresh a new value """ d = { u'action': u'update', u'node': { u'expiration': u'2016-05-31T08:27:54.660337Z', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 600, u'value': u'test' } } self._mock_api(200, d) res = self.client.refresh('/testkey', ttl=600) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:235: AttributeError ______________________ TestClientRequest.test_self_stats _______________________ self = def test_self_stats(self): """ Request for stats """ data = { "id": "eca0338f4ea31566", "leaderInfo": { "leader": "8a69d5f6b7814500", "startTime": "2014-10-24T13:15:51.186620747-07:00", "uptime": "10m59.322358947s" }, "name": "node3", "recvAppendRequestCnt": 5944, "recvBandwidthRate": 570.6254930219969, "recvPkgRate": 9.00892789741075, "sendAppendRequestCnt": 0, "startTime": "2014-10-24T13:15:50.072007085-07:00", "state": "StateFollower" } self._mock_api(200,data) > self.assertEquals(self.client.stats['name'], "node3") E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:151: AttributeError ______________________ TestClientRequest.test_set_append _______________________ self = def test_set_append(self): """ Can append a new key """ d = { u'action': u'create', u'node': { u'createdIndex': 190, u'modifiedIndex': 190, u'key': u'/testdir/190', u'value': u'test' } } self._mock_api(201, d) res = self.client.write('/testdir', 'test') > self.assertEquals(res.createdIndex, 190) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:282: AttributeError _______________________ TestClientRequest.test_set_plain _______________________ self = def test_set_plain(self): """ Can set a value """ d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 183, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200, d) res = self.client.write('/testkey', 'test') > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:182: AttributeError ________________________ TestClientRequest.test_update _________________________ self = def test_update(self): """Can update a result.""" d = {u'action': u'set', u'node': { u'expiration': u'2013-09-14T00:56:59.316195568+02:00', u'modifiedIndex': 6, u'key': u'/testkey', u'ttl': 19, u'value': u'test' } } self._mock_api(200,d) res = self.client.get('/testkey') res.value = 'ciao' d['node']['value'] = 'ciao' self._mock_api(200,d) newres = self.client.update(res) > self.assertEquals(newres.value, 'ciao') E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:201: AttributeError ______________________ TestClientRequest.test_use_proxies ______________________ self = mocker = @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock) def test_use_proxies(self, mocker): """Do not overwrite the machines cache when using proxies""" mocker.return_value = ['https://10.0.0.2:4001', 'https://10.0.0.3:4001', 'https://10.0.0.4:4001'] c = etcd.Client( host=(('localhost', 4001), ('localproxy', 4001)), protocol='https', allow_reconnect=True, use_proxies=True ) > self.assertEquals(c._machines_cache, ['https://localproxy:4001']) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:104: AttributeError _________________________ TestClientRequest.test_watch _________________________ self = def test_watch(self): """ Can watch a key """ d = { u'action': u'get', u'node': { u'modifiedIndex': 190, u'key': u'/testkey', u'value': u'test' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:393: AttributeError ______________________ TestClientRequest.test_watch_index ______________________ self = def test_watch_index(self): """ Can watch a key starting from the given Index """ d = { u'action': u'get', u'node': { u'modifiedIndex': 170, u'key': u'/testkey', u'value': u'testold' } } self._mock_api(200, d) res = self.client.read('/testkey', wait=True, waitIndex=True) > self.assertEquals(res, etcd.EtcdResult(**d)) E AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'. Did you mean: 'assertEqual'? etcd/tests/unit/test_request.py:407: AttributeError =============================== warnings summary =============================== .pybuild/cpython3_3.12_etcd/build/etcd/tests/unit/test_old_request.py:243 .pybuild/cpython3_3.12_etcd/build/etcd/tests/unit/test_old_request.py:243: PytestCollectionWarning: yield tests were removed in pytest 4.0 - test_eternal_watch will be ignored -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED etcd/tests/unit/test_client.py::TestClient::test__set_version_info - A... FAILED etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property FAILED etcd/tests/unit/test_client.py::TestClient::test_discover - AttributeE... FAILED etcd/tests/unit/test_client.py::TestClient::test_version_property - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquire - Attribute... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquired - mock.moc... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock - Attribu... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker - Attrib... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_initialization - At... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired - Attri... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired - A... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key - Attribut... FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_get - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_in - Attr... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in - ... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_set - Att... FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error FAILED etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_members FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop - At... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_read - A... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_update FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch - ... FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_delete - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_machines - Mo... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_members - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_newkey - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_pop - Attribu... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_read - Attrib... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_refresh - Att... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_append - ... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain - A... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_update - Attr... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch - Attri... FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index ============= 65 failed, 53 passed, 1 xfailed, 1 warning in 3.25s ============== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-etcd-0.4.5/.pybuild/cpython3_3.12_etcd/build; python3.12 -m pytest etcd/tests/unit/ dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 make: *** [debian/rules:9: 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/15834 and its subdirectories python-etcd failed to build from source. removed '/var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/i386/python-etcd_0.4.5-4.rbuild.log' removed '/var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/i386/python-etcd_0.4.5-4.rbuild.log.gz' removed '/var/lib/jenkins/userContent/reproducible/debian/logs/unstable/i386/python-etcd_0.4.5-4.build1.log.gz' Fri Nov 22 05:10:21 UTC 2024 W: No second build log, what happened? Compressing the 1st log... b1/build.log: 87.9% -- replaced with stdout INSERT 0 1 INSERT 0 1 DELETE 1 [2024-11-22 05:10:22] INFO: Starting at 2024-11-22 05:10:22.057423 [2024-11-22 05:10:22] INFO: Generating the pages of 1 package(s) [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/amd64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/amd64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/arm64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/arm64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/armhf/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/armhf/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] CRITICAL: https://tests.reproducible-builds.org/debian/unstable/i386/python-etcd didn't produce a buildlog, even though it has been built. [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/amd64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/amd64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/arm64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/arm64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/armhf/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/armhf/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/i386/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/i386/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:22] INFO: Finished at 2024-11-22 05:10:22.523405, took: 0:00:00.465989 Fri Nov 22 05:10:22 UTC 2024 - successfully updated the database and updated https://tests.reproducible-builds.org/debian/rb-pkg/unstable/i386/python-etcd.html Starting cleanup. /var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/i386/python-etcd_0.4.5-4.rbuild.log: 87.3% -- replaced with /var/lib/jenkins/userContent/reproducible/debian/rbuild/unstable/i386/python-etcd_0.4.5-4.rbuild.log.gz [2024-11-22 05:10:22] INFO: Starting at 2024-11-22 05:10:22.920231 [2024-11-22 05:10:22] INFO: Generating the pages of 1 package(s) [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/amd64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/amd64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/arm64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/arm64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/armhf/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/armhf/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/unstable/i386/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/unstable/i386/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/amd64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/amd64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/arm64/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/arm64/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/armhf/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/armhf/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] ERROR: Either /var/lib/jenkins/userContent/reproducible/debian/logs/trixie/i386/python-etcd_0.4.5-4.build2.log.gz or /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/i386/python-etcd_0.4.5-4.diff.gz is missing [2024-11-22 05:10:23] INFO: Finished at 2024-11-22 05:10:23.362264, took: 0:00:00.442041 All cleanup done. Fri Nov 22 05:10:23 UTC 2024 - total duration: 0h 1m 6s. Fri Nov 22 05:10:23 UTC 2024 - reproducible_build.sh stopped running as /tmp/jenkins-script-Ks190DVC, removing. Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 1min 8.200s CPU time consumed: 5.247s