Diff of the two buildlogs: -- --- b1/build.log 2024-05-31 15:02:59.413656042 +0000 +++ b2/build.log 2024-05-31 15:07:19.182605139 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Jul 3 09:23:14 -12 2025 -I: pbuilder-time-stamp: 1751577794 +I: Current time: Sat Jun 1 05:03:01 +14 2024 +I: pbuilder-time-stamp: 1717167781 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -28,52 +28,84 @@ dpkg-source: info: applying 0002-add-khard-data-dir-to-MANIFEST.in.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1959565/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/D01_modify_environment starting +debug: Running on ionos1-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 31 15:03 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='6f998948c9684080828980c51681d59b' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1959565' - PS1='# ' - PS2='> ' + INVOCATION_ID=f74a3a20fd2042a8b3730b5157bd0698 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=3836759 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.Yn3zok0d/pbuilderrc_5w53 --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.Yn3zok0d/b1 --logfile b1/build.log khard_0.19.1-2.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.Yn3zok0d/pbuilderrc_rNgl --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Yn3zok0d/b2 --logfile b2/build.log khard_0.19.1-2.dsc' + SUDO_GID=110 + SUDO_UID=105 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos5-amd64 6.7.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.7.12-1~bpo12+1 (2024-05-06) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Jun 29 14:05 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1959565/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 27 07:42 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -236,7 +268,7 @@ Get: 93 http://deb.debian.org/debian unstable/main amd64 python3-sphinx-autoapi all 3.0.0-0.1 [103 kB] Get: 94 http://deb.debian.org/debian unstable/main amd64 python3-sphinx-autodoc-typehints all 1.25.3-1 [24.4 kB] Get: 95 http://deb.debian.org/debian unstable/main amd64 python3-vobject all 0.9.6.1-2 [40.2 kB] -Fetched 44.1 MB in 1s (66.7 MB/s) +Fetched 44.1 MB in 1s (54.7 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19719 files and directories currently installed.) @@ -552,8 +584,8 @@ Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Jul 3 21:24:34 UTC 2025. -Universal Time is now: Thu Jul 3 21:24:34 UTC 2025. +Local time is now: Fri May 31 15:04:05 UTC 2024. +Universal Time is now: Fri May 31 15:04:05 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -667,7 +699,11 @@ fakeroot is already the newest version (1.34-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/khard-0.19.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../khard_0.19.1-2_source.changes +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/khard-0.19.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../khard_0.19.1-2_source.changes dpkg-buildpackage: info: source package khard dpkg-buildpackage: info: source version 0.19.1-2 dpkg-buildpackage: info: source distribution unstable @@ -711,21 +747,21 @@ make[2]: Entering directory '/build/reproducible-path/khard-0.19.1/doc' Running Sphinx v7.2.6 making output directory... done -[AutoAPI] Reading files... [ 7%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Reading files... [ 14%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Reading files... [ 21%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Reading files... [ 29%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Reading files... [ 36%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Reading files... [ 43%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Reading files... [ 50%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Reading files... [ 57%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Reading files... [ 64%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Reading files... [ 71%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Reading files... [ 79%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Reading files... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Reading files... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Reading files... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py -[AutoAPI] Mapping Data... [ 7%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Mapping Data... [ 14%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Mapping Data... [ 21%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Mapping Data... [ 29%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Mapping Data... [ 36%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Mapping Data... [ 43%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Mapping Data... [ 50%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Mapping Data... [ 57%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Mapping Data... [ 64%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Mapping Data... [ 71%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Mapping Data... [ 79%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Mapping Data... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Mapping Data... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Mapping Data... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py -[AutoAPI] Rendering Data... [ 7%] khard.config -[AutoAPI] Rendering Data... [ 14%] khard.carddav_object -[AutoAPI] Rendering Data... [ 21%] khard.actions -[AutoAPI] Rendering Data... [ 29%] khard.version -[AutoAPI] Rendering Data... [ 36%] khard.formatter -[AutoAPI] Rendering Data... [ 43%] khard.khard -[AutoAPI] Rendering Data... [ 50%] khard -[AutoAPI] Rendering Data... [ 57%] khard.address_book -[AutoAPI] Rendering Data... [ 64%] khard.cli -[AutoAPI] Rendering Data... [ 71%] khard.query -[AutoAPI] Rendering Data... [ 79%] khard.__main__ -[AutoAPI] Rendering Data... [ 86%] khard.helpers.typing -[AutoAPI] Rendering Data... [ 93%] khard.helpers +[AutoAPI] Reading files... [ 7%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Reading files... [ 14%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Reading files... [ 21%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Reading files... [ 29%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Reading files... [ 36%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Reading files... [ 43%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Reading files... [ 50%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Reading files... [ 57%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Reading files... [ 64%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Reading files... [ 71%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Reading files... [ 79%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Reading files... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Reading files... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Reading files... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py +[AutoAPI] Mapping Data... [ 7%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Mapping Data... [ 14%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Mapping Data... [ 21%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Mapping Data... [ 29%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Mapping Data... [ 36%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Mapping Data... [ 43%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Mapping Data... [ 50%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Mapping Data... [ 57%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Mapping Data... [ 64%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Mapping Data... [ 71%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Mapping Data... [ 79%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Mapping Data... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Mapping Data... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Mapping Data... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py +[AutoAPI] Rendering Data... [ 7%] khard.carddav_object +[AutoAPI] Rendering Data... [ 14%] khard.khard +[AutoAPI] Rendering Data... [ 21%] khard.version +[AutoAPI] Rendering Data... [ 29%] khard +[AutoAPI] Rendering Data... [ 36%] khard.address_book +[AutoAPI] Rendering Data... [ 43%] khard.config +[AutoAPI] Rendering Data... [ 50%] khard.query +[AutoAPI] Rendering Data... [ 57%] khard.__main__ +[AutoAPI] Rendering Data... [ 64%] khard.actions +[AutoAPI] Rendering Data... [ 71%] khard.cli +[AutoAPI] Rendering Data... [ 79%] khard.formatter +[AutoAPI] Rendering Data... [ 86%] khard.helpers +[AutoAPI] Rendering Data... [ 93%] khard.helpers.typing [AutoAPI] Rendering Data... [100%] khard.helpers.interactive [autosummary] generating autosummary for: bench.rst, commandline.rst, contributing.rst, davcontroller.rst, index.rst, indices.rst, man.rst, man/khard.conf.rst, man/khard.rst, scripting.rst @@ -799,21 +835,21 @@ Running Sphinx v7.2.6 making output directory... done loading pickled environment... done -[AutoAPI] Reading files... [ 7%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Reading files... [ 14%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Reading files... [ 21%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Reading files... [ 29%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Reading files... [ 36%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Reading files... [ 43%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Reading files... [ 50%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Reading files... [ 57%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Reading files... [ 64%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Reading files... [ 71%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Reading files... [ 79%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Reading files... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Reading files... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Reading files... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py -[AutoAPI] Mapping Data... [ 7%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Mapping Data... [ 14%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Mapping Data... [ 21%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Mapping Data... [ 29%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Mapping Data... [ 36%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Mapping Data... [ 43%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Mapping Data... [ 50%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Mapping Data... [ 57%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Mapping Data... [ 64%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Mapping Data... [ 71%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Mapping Data... [ 79%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Mapping Data... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Mapping Data... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Mapping Data... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py -[AutoAPI] Rendering Data... [ 7%] khard.config -[AutoAPI] Rendering Data... [ 14%] khard.carddav_object -[AutoAPI] Rendering Data... [ 21%] khard.actions -[AutoAPI] Rendering Data... [ 29%] khard.version -[AutoAPI] Rendering Data... [ 36%] khard.formatter -[AutoAPI] Rendering Data... [ 43%] khard.khard -[AutoAPI] Rendering Data... [ 50%] khard -[AutoAPI] Rendering Data... [ 57%] khard.address_book -[AutoAPI] Rendering Data... [ 64%] khard.cli -[AutoAPI] Rendering Data... [ 71%] khard.query -[AutoAPI] Rendering Data... [ 79%] khard.__main__ -[AutoAPI] Rendering Data... [ 86%] khard.helpers.typing -[AutoAPI] Rendering Data... [ 93%] khard.helpers +[AutoAPI] Reading files... [ 7%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Reading files... [ 14%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Reading files... [ 21%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Reading files... [ 29%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Reading files... [ 36%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Reading files... [ 43%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Reading files... [ 50%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Reading files... [ 57%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Reading files... [ 64%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Reading files... [ 71%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Reading files... [ 79%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Reading files... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Reading files... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Reading files... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py +[AutoAPI] Mapping Data... [ 7%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Mapping Data... [ 14%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Mapping Data... [ 21%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Mapping Data... [ 29%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Mapping Data... [ 36%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Mapping Data... [ 43%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Mapping Data... [ 50%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Mapping Data... [ 57%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Mapping Data... [ 64%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Mapping Data... [ 71%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Mapping Data... [ 79%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Mapping Data... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Mapping Data... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Mapping Data... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py +[AutoAPI] Rendering Data... [ 7%] khard.carddav_object +[AutoAPI] Rendering Data... [ 14%] khard.khard +[AutoAPI] Rendering Data... [ 21%] khard.version +[AutoAPI] Rendering Data... [ 29%] khard +[AutoAPI] Rendering Data... [ 36%] khard.address_book +[AutoAPI] Rendering Data... [ 43%] khard.config +[AutoAPI] Rendering Data... [ 50%] khard.query +[AutoAPI] Rendering Data... [ 57%] khard.__main__ +[AutoAPI] Rendering Data... [ 64%] khard.actions +[AutoAPI] Rendering Data... [ 71%] khard.cli +[AutoAPI] Rendering Data... [ 79%] khard.formatter +[AutoAPI] Rendering Data... [ 86%] khard.helpers +[AutoAPI] Rendering Data... [ 93%] khard.helpers.typing [AutoAPI] Rendering Data... [100%] khard.helpers.interactive [autosummary] generating autosummary for: autoapi/index.rst, autoapi/khard/__main__/index.rst, autoapi/khard/actions/index.rst, autoapi/khard/address_book/index.rst, autoapi/khard/carddav_object/index.rst, autoapi/khard/cli/index.rst, autoapi/khard/config/index.rst, autoapi/khard/formatter/index.rst, autoapi/khard/helpers/index.rst, autoapi/khard/helpers/interactive/index.rst, ..., bench.rst, commandline.rst, contributing.rst, davcontroller.rst, index.rst, indices.rst, man.rst, man/khard.conf.rst, man/khard.rst, scripting.rst @@ -881,21 +917,21 @@ Running Sphinx v7.2.6 making output directory... done loading pickled environment... done -[AutoAPI] Reading files... [ 7%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Reading files... [ 14%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Reading files... [ 21%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Reading files... [ 29%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Reading files... [ 36%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Reading files... [ 43%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Reading files... [ 50%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Reading files... [ 57%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Reading files... [ 64%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Reading files... [ 71%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Reading files... [ 79%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Reading files... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Reading files... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Reading files... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py -[AutoAPI] Mapping Data... [ 7%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Mapping Data... [ 14%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Mapping Data... [ 21%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Mapping Data... [ 29%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Mapping Data... [ 36%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Mapping Data... [ 43%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Mapping Data... [ 50%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Mapping Data... [ 57%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Mapping Data... [ 64%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Mapping Data... [ 71%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Mapping Data... [ 79%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Mapping Data... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Mapping Data... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Mapping Data... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py -[AutoAPI] Rendering Data... [ 7%] khard.config -[AutoAPI] Rendering Data... [ 14%] khard.carddav_object -[AutoAPI] Rendering Data... [ 21%] khard.actions -[AutoAPI] Rendering Data... [ 29%] khard.version -[AutoAPI] Rendering Data... [ 36%] khard.formatter -[AutoAPI] Rendering Data... [ 43%] khard.khard -[AutoAPI] Rendering Data... [ 50%] khard -[AutoAPI] Rendering Data... [ 57%] khard.address_book -[AutoAPI] Rendering Data... [ 64%] khard.cli -[AutoAPI] Rendering Data... [ 71%] khard.query -[AutoAPI] Rendering Data... [ 79%] khard.__main__ -[AutoAPI] Rendering Data... [ 86%] khard.helpers.typing -[AutoAPI] Rendering Data... [ 93%] khard.helpers +[AutoAPI] Reading files... [ 7%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Reading files... [ 14%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Reading files... [ 21%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Reading files... [ 29%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Reading files... [ 36%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Reading files... [ 43%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Reading files... [ 50%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Reading files... [ 57%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Reading files... [ 64%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Reading files... [ 71%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Reading files... [ 79%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Reading files... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Reading files... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Reading files... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py +[AutoAPI] Mapping Data... [ 7%] /build/reproducible-path/khard-0.19.1/khard/carddav_object.py [AutoAPI] Mapping Data... [ 14%] /build/reproducible-path/khard-0.19.1/khard/khard.py [AutoAPI] Mapping Data... [ 21%] /build/reproducible-path/khard-0.19.1/khard/version.py [AutoAPI] Mapping Data... [ 29%] /build/reproducible-path/khard-0.19.1/khard/__init__.py [AutoAPI] Mapping Data... [ 36%] /build/reproducible-path/khard-0.19.1/khard/address_book.py [AutoAPI] Mapping Data... [ 43%] /build/reproducible-path/khard-0.19.1/khard/config.py [AutoAPI] Mapping Data... [ 50%] /build/reproducible-path/khard-0.19.1/khard/query.py [AutoAPI] Mapping Data... [ 57%] /build/reproducible-path/khard-0.19.1/khard/__main__.py [AutoAPI] Mapping Data... [ 64%] /build/reproducible-path/khard-0.19.1/khard/actions.py [AutoAPI] Mapping Data... [ 71%] /build/reproducible-path/khard-0.19.1/khard/cli.py [AutoAPI] Mapping Data... [ 79%] /build/reproducible-path/khard-0.19.1/khard/formatter.py [AutoAPI] Mapping Data... [ 86%] /build/reproducible-path/khard-0.19.1/khard/helpers/__init__.py [AutoAPI] Mapping Data... [ 93%] /build/reproducible-path/khard-0.19.1/khard/helpers/typing.py [AutoAPI] Mapping Data... [100%] /build/reproducible-path/khard-0.19.1/khard/helpers/interactive.py +[AutoAPI] Rendering Data... [ 7%] khard.carddav_object +[AutoAPI] Rendering Data... [ 14%] khard.khard +[AutoAPI] Rendering Data... [ 21%] khard.version +[AutoAPI] Rendering Data... [ 29%] khard +[AutoAPI] Rendering Data... [ 36%] khard.address_book +[AutoAPI] Rendering Data... [ 43%] khard.config +[AutoAPI] Rendering Data... [ 50%] khard.query +[AutoAPI] Rendering Data... [ 57%] khard.__main__ +[AutoAPI] Rendering Data... [ 64%] khard.actions +[AutoAPI] Rendering Data... [ 71%] khard.cli +[AutoAPI] Rendering Data... [ 79%] khard.formatter +[AutoAPI] Rendering Data... [ 86%] khard.helpers +[AutoAPI] Rendering Data... [ 93%] khard.helpers.typing [AutoAPI] Rendering Data... [100%] khard.helpers.interactive [autosummary] generating autosummary for: autoapi/index.rst, autoapi/khard/__main__/index.rst, autoapi/khard/actions/index.rst, autoapi/khard/address_book/index.rst, autoapi/khard/carddav_object/index.rst, autoapi/khard/cli/index.rst, autoapi/khard/config/index.rst, autoapi/khard/formatter/index.rst, autoapi/khard/helpers/index.rst, autoapi/khard/helpers/interactive/index.rst, ..., bench.rst, commandline.rst, contributing.rst, davcontroller.rst, index.rst, indices.rst, man.rst, man/khard.conf.rst, man/khard.rst, scripting.rst @@ -959,20 +995,20 @@ running build running build_py creating /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard -copying khard/config.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard copying khard/carddav_object.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard -copying khard/actions.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard -copying khard/version.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard -copying khard/formatter.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard copying khard/khard.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard +copying khard/version.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard copying khard/__init__.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard copying khard/address_book.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard -copying khard/cli.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard +copying khard/config.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard copying khard/query.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard copying khard/__main__.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard +copying khard/actions.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard +copying khard/cli.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard +copying khard/formatter.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard creating /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers -copying khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers copying khard/helpers/__init__.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers +copying khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers copying khard/helpers/interactive.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers running egg_info creating khard.egg-info @@ -1035,20 +1071,20 @@ running build running build_py creating /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard -copying khard/config.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard copying khard/carddav_object.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard -copying khard/actions.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard -copying khard/version.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard -copying khard/formatter.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard copying khard/khard.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard +copying khard/version.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard copying khard/__init__.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard copying khard/address_book.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard -copying khard/cli.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard +copying khard/config.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard copying khard/query.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard copying khard/__main__.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard +copying khard/actions.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard +copying khard/cli.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard +copying khard/formatter.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard creating /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers -copying khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers copying khard/helpers/__init__.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers +copying khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers copying khard/helpers/interactive.py -> /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers running egg_info writing khard.egg-info/PKG-INFO @@ -1155,6 +1191,38 @@ adding license file 'LICENSE' writing manifest file 'khard.egg-info/SOURCES.txt' running build_ext +test_get_action_resolves_aliases (test.test_actions.Action.test_get_action_resolves_aliases) ... ok +test_get_action_returns_none_for_actions (test.test_actions.Action.test_get_action_returns_none_for_actions) ... ok +test_get_action_returns_none_for_unknown (test.test_actions.Action.test_get_action_returns_none_for_unknown) ... ok +test_get_actions_does_not_return_aliases (test.test_actions.Action.test_get_actions_does_not_return_aliases) ... ok +test_get_actions_returns_actions (test.test_actions.Action.test_get_actions_returns_actions) ... ok +test_get_aliases_reverse_resolves_aliases (test.test_actions.Action.test_get_aliases_reverse_resolves_aliases) ... ok +test_get_aliases_throws_keyerror_for_aliases (test.test_actions.Action.test_get_aliases_throws_keyerror_for_aliases) ... ok +test_get_aliases_throws_keyerror_for_unknown (test.test_actions.Action.test_get_aliases_throws_keyerror_for_unknown) ... ok +test_get_all_returns_actions (test.test_actions.Action.test_get_all_returns_actions) ... ok +test_get_all_returns_aliases (test.test_actions.Action.test_get_all_returns_aliases) ... ok +test_search_passes_query_to_load (test.test_address_book.AbstractAddressBookSearch.test_search_passes_query_to_load) ... ok +test_search_will_not_trigger_load_if_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_not_trigger_load_if_loaded) ... ok +test_search_will_trigger_load_if_not_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_trigger_load_if_not_loaded) ... ok +test_different_strings (test.test_address_book.AddressBookCompareUids.test_different_strings) ... ok +test_no_error_on_equal_strings (test.test_address_book.AddressBookCompareUids.test_no_error_on_equal_strings) ... ok +test_two_simple_strings (test.test_address_book.AddressBookCompareUids.test_two_simple_strings) ... ok +test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict (test.test_address_book.AddressBookGetShortUidDict.test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict) ... ok +test_issue_159_uid_search_doesnt_return_items_twice (test.test_address_book.ReportedBugs.test_issue_159_uid_search_doesnt_return_items_twice) ... ok +test_do_not_expand_env_var_that_is_unset (test.test_address_book.VcardAddressBookLoad.test_do_not_expand_env_var_that_is_unset) ... ok +test_expand_env_var_that_is_empty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_empty) ... ok +test_expand_env_var_that_is_nonempty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_nonempty) ... ok +test_loading_unparsable_vcard_fails (test.test_address_book.VcardAddressBookLoad.test_loading_unparsable_vcard_fails) ... ok +test_loading_vcards_from_disk (test.test_address_book.VcardAddressBookLoad.test_loading_vcards_from_disk) ... ok +test_search_in_source_files_only_loads_matching_cards (test.test_address_book.VcardAddressBookLoad.test_search_in_source_files_only_loads_matching_cards) ... ok +test_unparsable_files_can_be_skipped (test.test_address_book.VcardAddressBookLoad.test_unparsable_files_can_be_skipped) ... ok +test_vcards_without_uid_generate_a_warning (test.test_address_book.VcardAddressBookLoad.test_vcards_without_uid_generate_a_warning) ... ok +test_copied_from_merge_test_1 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_1) ... ok +test_copied_from_merge_test_2 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_2) ... ok +test_term_query (test.test_address_book.VcardAddressBookSearch.test_term_query) ... ok +test_term_query_failing (test.test_address_book.VcardAddressBookSearch.test_term_query_failing) ... ok +test_term_query_matching (test.test_address_book.VcardAddressBookSearch.test_term_query_matching) ... ok +test_uid_query (test.test_address_book.VcardAddressBookSearch.test_uid_query) ... ok test_labels_on_structured_values (test.test_vcard_wrapper.ABLabels.test_labels_on_structured_values) ... ok test_setting_and_getting_webpage_ablabel (test.test_vcard_wrapper.ABLabels.test_setting_and_getting_webpage_ablabel) ... ok test_setting_fn_from_labelled_org (test.test_vcard_wrapper.ABLabels.test_setting_fn_from_labelled_org) ... ok @@ -1209,6 +1277,176 @@ test_stores_vcard_object_unmodified (test.test_vcard_wrapper.VcardWrapperInit.test_stores_vcard_object_unmodified) ... ok test_warns_about_missing_version_and_sets_it (test.test_vcard_wrapper.VcardWrapperInit.test_warns_about_missing_version_and_sets_it) ... ok test_warns_about_unsupported_version (test.test_vcard_wrapper.VcardWrapperInit.test_warns_about_unsupported_version) ... ok +test_empty_list_items_are_filtered (test.test_helpers_typing.ConvertToVcard.test_empty_list_items_are_filtered) ... ok +test_fail_if_not_string (test.test_helpers_typing.ConvertToVcard.test_fail_if_not_string) ... ok +test_fails_if_string_lists_are_not_homogenous (test.test_helpers_typing.ConvertToVcard.test_fails_if_string_lists_are_not_homogenous) ... ok +test_returns_lists (test.test_helpers_typing.ConvertToVcard.test_returns_lists) ... ok +test_returns_strings (test.test_helpers_typing.ConvertToVcard.test_returns_strings) ... ok +test_strings_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_are_stripped) ... ok +test_strings_in_lists_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_in_lists_are_stripped) ... ok +test_upgrades_string_to_list (test.test_helpers_typing.ConvertToVcard.test_upgrades_string_to_list) ... ok +test_empty_list_returns_empty_string (test.test_helpers_typing.ListToString.test_empty_list_returns_empty_string) ... ok +test_list_to_string_passes_through_other_objects (test.test_helpers_typing.ListToString.test_list_to_string_passes_through_other_objects) ... ok +test_multi_level_nested_list (test.test_helpers_typing.ListToString.test_multi_level_nested_list) ... ok +test_simple_list (test.test_helpers_typing.ListToString.test_simple_list) ... ok +test_simple_nested_list (test.test_helpers_typing.ListToString.test_simple_nested_list) ... ok +test_mm_dd_format (test.test_helpers_typing.StringToDate.test_mm_dd_format) ... ok +test_mmdd_format (test.test_helpers_typing.StringToDate.test_mmdd_format) ... ok +test_yyyy_mm_ddThh_mm_ssZ_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssZ_format) ... ok +test_yyyy_mm_ddThh_mm_ss_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ss_format) ... ok +test_yyyy_mm_ddThh_mm_ssz_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssz_format) ... ok +test_yyyy_mm_dd_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_dd_format) ... ok +test_yyyymmddThhmmssZ_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssZ_format) ... ok +test_yyyymmddThhmmss_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmss_format) ... ok +test_yyyymmddThhmmssz_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssz_format) ... ok +test_yyyymmdd_format (test.test_helpers_typing.StringToDate.test_yyyymmdd_format) ... ok +test_altids_are_read (test.test_carddav_object.AltIds.test_altids_are_read) ... ok +test_format_date_object_will_not_touch_strings (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_will_not_touch_strings) ... ok +test_format_date_object_with_date_1900 (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_date_1900) ... ok +test_format_date_object_with_simple_date_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_date_object) ... ok +test_format_date_object_with_simple_datetime_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_datetime_object) ... ok +test_parsing_base64_ecoded_photo_vcard_v3 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v3) ... ok +test_parsing_base64_ecoded_photo_vcard_v4 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v4) ... ok +test_accepts_on_of_the_given_options (test.test_helpers_interactive.Ask.test_accepts_on_of_the_given_options) ... ok +test_accepts_prefix_match (test.test_helpers_interactive.Ask.test_accepts_prefix_match) ... ok +test_default_is_accepted_on_empty_input (test.test_helpers_interactive.Ask.test_default_is_accepted_on_empty_input) ... ok +test_does_not_accept_answers_not_in_choices (test.test_helpers_interactive.Ask.test_does_not_accept_answers_not_in_choices) ... ok +test_only_accepts_unique_prefix_match (test.test_helpers_interactive.Ask.test_only_accepts_unique_prefix_match) ... ok +test_N_is_false (test.test_helpers_interactive.Confirm.test_N_is_false) ... ok +test_Y_is_true (test.test_helpers_interactive.Confirm.test_Y_is_true) ... ok +test_empty_input_can_be_forbidden_with_argument (test.test_helpers_interactive.Confirm.test_empty_input_can_be_forbidden_with_argument) ... ok +test_empty_input_is_no (test.test_helpers_interactive.Confirm.test_empty_input_is_no) ... ok +test_n_is_false (test.test_helpers_interactive.Confirm.test_n_is_false) ... ok +test_y_is_true (test.test_helpers_interactive.Confirm.test_y_is_true) ... ok +test_empty_input_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_empty_input_prints_a_message_and_repeats) ... ok +test_index_0_is_accepted_with_include_none (test.test_helpers_interactive.Select.test_index_0_is_accepted_with_include_none) ... ok +test_index_0_is_not_accepted (test.test_helpers_interactive.Select.test_index_0_is_not_accepted) ... ok +test_out_of_bounds_repeats (test.test_helpers_interactive.Select.test_out_of_bounds_repeats) ... ok +test_selection_index_is_1_based (test.test_helpers_interactive.Select.test_selection_index_is_1_based) ... ok +test_typing_a_non_number_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_typing_a_non_number_prints_a_message_and_repeats) ... ok +test_case_does_not_matter (test.test_cli.TestFieldsArgument.test_case_does_not_matter) ... ok +test_only_first_component_must_match_choices_with_nested (test.test_cli.TestFieldsArgument.test_only_first_component_must_match_choices_with_nested) ... ok +test_raises_exception_when_choices_dont_match (test.test_cli.TestFieldsArgument.test_raises_exception_when_choices_dont_match) ... ok +test_works_when_choices_match (test.test_cli.TestFieldsArgument.test_works_when_choices_match) ... ok +test_add_email_another_field (test.test_cli.TestParseArgs.test_add_email_another_field) ... ok +test_add_email_defaults_to_from_lowercase (test.test_cli.TestParseArgs.test_add_email_defaults_to_from_lowercase) ... ok +test_add_email_from_field (test.test_cli.TestParseArgs.test_add_email_from_field) ... ok +test_add_email_multiple_headers_comma_separated (test.test_cli.TestParseArgs.test_add_email_multiple_headers_comma_separated) ... ok +test_add_email_multiple_headers_separate_args_takes_last (test.test_cli.TestParseArgs.test_add_email_multiple_headers_separate_args_takes_last) ... ok +test_exit_user_friendly_without_config_file (test.test_cli.TestParseArgs.test_exit_user_friendly_without_config_file) ... Error reading config file: Config file not found: "/this file should hopefully never exist.". +ok +test_exit_user_friendly_without_contacts_folder (test.test_cli.TestParseArgs.test_exit_user_friendly_without_contacts_folder) ... ok +test_multible_search_terms_generate_and_queries (test.test_cli.TestParseArgs.test_multible_search_terms_generate_and_queries) ... ok +test_no_search_terms_create_an_any_query (test.test_cli.TestParseArgs.test_no_search_terms_create_an_any_query) ... ok +test_no_target_specification_results_in_an_any_query (test.test_cli.TestParseArgs.test_no_target_specification_results_in_an_any_query) ... ok +test_normal_search_terms_create_term_queries (test.test_cli.TestParseArgs.test_normal_search_terms_create_term_queries) ... ok +test_second_target_search_term_overrides_first (test.test_cli.TestParseArgs.test_second_target_search_term_overrides_first) ... ok +test_target_search_terms_are_typed (test.test_cli.TestParseArgs.test_target_search_terms_are_typed) ... ok +test_target_uid_and_free_target_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_target_uid_and_free_target_search_terms_produce_a_conflict) ... ok +test_target_uid_option_creates_uid_queries (test.test_cli.TestParseArgs.test_target_uid_option_creates_uid_queries) ... Deprecated option --target-uid, use the new query syntax instead. +ok +test_uid_and_free_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_uid_and_free_search_terms_produce_a_conflict) ... ok +test_uid_option_is_combined_with_search_terms_for_merge_command (test.test_cli.TestParseArgs.test_uid_option_is_combined_with_search_terms_for_merge_command) ... Deprecated option --uid, use the new query syntax instead. +ok +test_uid_options_create_uid_queries (test.test_cli.TestParseArgs.test_uid_options_create_uid_queries) ... Deprecated option --uid, use the new query syntax instead. +ok +test_calls_subprocess_popen_with_editor_for_one_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_editor_for_one_args) ... ok +test_calls_subprocess_popen_with_merge_editor_for_two_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_merge_editor_for_two_args) ... ok +test_editing_templates (test.test_editor.EditFiles.test_editing_templates) ... ok +test_exception_from_yaml_conversion_is_caught (test.test_editor.EditFiles.test_exception_from_yaml_conversion_is_caught) ... ok +test_failing_external_command_returns_aborted_state (test.test_editor.EditFiles.test_failing_external_command_returns_aborted_state) ... ok +test_returns_state_modiefied_if_timestamp_does_change (test.test_editor.EditFiles.test_returns_state_modiefied_if_timestamp_does_change) ... ok +test_returns_state_unmodiefied_if_timestamp_does_not_change (test.test_editor.EditFiles.test_returns_state_unmodiefied_if_timestamp_does_not_change) ... ok +test_failes_if_at_least_one_subterm_fails (test.test_query.TestAndQuery.test_failes_if_at_least_one_subterm_fails) ... ok +test_matches_if_all_subterms_match (test.test_query.TestAndQuery.test_matches_if_all_subterms_match) ... ok +test_order_does_not_matter (test.test_query.TestAndQuery.test_order_does_not_matter) ... ok +test_and_queries_match_after_sorting (test.test_query.TestEquality.test_and_queries_match_after_sorting) ... ok +test_any_queries_are_equal (test.test_query.TestEquality.test_any_queries_are_equal) ... ok +test_null_queries_are_equal (test.test_query.TestEquality.test_null_queries_are_equal) ... ok +test_or_queries_match_after_sorting (test.test_query.TestEquality.test_or_queries_match_after_sorting) ... ok +test_empty_field_values_fails_if_the_field_is_absent (test.test_query.TestFieldQuery.test_empty_field_values_fails_if_the_field_is_absent) ... ok +test_empty_field_values_match_if_the_field_is_present (test.test_query.TestFieldQuery.test_empty_field_values_match_if_the_field_is_present) ... expected failure +test_fail_match_in_other_field (test.test_query.TestFieldQuery.test_fail_match_in_other_field) ... ok +test_match_birthday (test.test_query.TestFieldQuery.test_match_birthday) ... ok +test_match_email (test.test_query.TestFieldQuery.test_match_email) ... ok +test_match_email_type (test.test_query.TestFieldQuery.test_match_email_type) ... ok +test_match_formatted_name (test.test_query.TestFieldQuery.test_match_formatted_name) ... ok +test_values_can_match_exact (test.test_query.TestFieldQuery.test_values_can_match_exact) ... ok +test_values_can_match_substrings (test.test_query.TestFieldQuery.test_values_can_match_substrings) ... ok +test_valuess_can_match_case_insensitive (test.test_query.TestFieldQuery.test_valuess_can_match_case_insensitive) ... ok +test_does_not_match_uid_field (test.test_query.TestNameQuery.test_does_not_match_uid_field) ... ok +test_matches_formatted_name_field (test.test_query.TestNameQuery.test_matches_formatted_name_field) ... ok +test_matches_name_field (test.test_query.TestNameQuery.test_matches_name_field) ... ok +test_matches_nickname_field (test.test_query.TestNameQuery.test_matches_nickname_field) ... ok +test_failes_if_all_subterms_fail (test.test_query.TestOrQuery.test_failes_if_all_subterms_fail) ... ok +test_matches_if_at_least_one_subterm_matchs (test.test_query.TestOrQuery.test_matches_if_at_least_one_subterm_matchs) ... ok +test_order_does_not_matter (test.test_query.TestOrQuery.test_order_does_not_matter) ... ok +test_bad_field_name_returns_term_query (test.test_query.TestParser.test_bad_field_name_returns_term_query) ... ok +test_field_value_can_be_empty (test.test_query.TestParser.test_field_value_can_be_empty) ... ok +test_field_value_can_contain_colons (test.test_query.TestParser.test_field_value_can_contain_colons) ... ok +test_parsing_simple_field_queries (test.test_query.TestParser.test_parsing_simple_field_queries) ... ok +test_parsing_simple_terms (test.test_query.TestParser.test_parsing_simple_terms) ... ok +test_special_field_name_creates_name_queries (test.test_query.TestParser.test_special_field_name_creates_name_queries) ... ok +test_match_arguments_are_case_insensitive (test.test_query.TestTermQuery.test_match_arguments_are_case_insensitive) ... ok +test_match_if_query_is_anywhere_in_string (test.test_query.TestTermQuery.test_match_if_query_is_anywhere_in_string) ... ok +test_query_terms_are_case_insensitive (test.test_query.TestTermQuery.test_query_terms_are_case_insensitive) ... ok +test_spaces_in_query_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_query_are_not_stripped) ... ok +test_spaces_in_search_subject_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_search_subject_are_not_stripped) ... ok +test_duplicate_key_errors_are_translated_to_value_errors (test.test_yaml_editable.ExceptionHandling.test_duplicate_key_errors_are_translated_to_value_errors) ... ok +test_parser_error_is_translated_to_value_error (test.test_yaml_editable.ExceptionHandling.test_parser_error_is_translated_to_value_error) ... ok +test_dumping_multiple_home_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_addresses_to_yaml) ... ok +test_dumping_multiple_home_email_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_email_addresses_to_yaml) ... ok +test_dumping_multiple_home_phone_number_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_phone_number_to_yaml) ... ok +test_yaml_quoted_special_characters (test.test_yaml_editable.ToYamlConversion.test_yaml_quoted_special_characters) ... ok +test_alphabetically_first_value_is_used (test.test_formatter.FormatLabeledField.test_alphabetically_first_value_is_used) ... ok +test_labels_are_selected_alphabetically_if_no_preferred_given (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_given) ... ok +test_labels_are_selected_alphabetically_if_no_preferred_matches (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_matches) ... ok +test_not_only_first_char_of_label_is_used (test.test_formatter.FormatLabeledField.test_not_only_first_char_of_label_is_used) ... ok +test_preferred_labels_are_used (test.test_formatter.FormatLabeledField.test_preferred_labels_are_used) ... ok +test_name_formatted_as_first_name_last_name (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name) ... ok +test_name_formatted_as_first_name_last_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name_with_nickname) ... ok +test_name_formatted_as_formatted_name (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name) ... ok +test_name_formatted_as_formatted_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name_with_nickname) ... ok +test_name_formatted_as_last_name_first_name (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name) ... ok +test_name_formatted_as_last_name_first_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name_with_nickname) ... ok +test_parsable_overrides_nickname_with_first_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_first_formatting) ... ok +test_parsable_overrides_nickname_with_formatted_name (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_formatted_name) ... ok +test_parsable_overrides_nickname_with_last_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_last_formatting) ... ok +test_default_value_is_3 (test.test_config.ConfigPreferredVcardVersion.test_default_value_is_3) ... ok +test_set_preferred_version (test.test_config.ConfigPreferredVcardVersion.test_set_preferred_version) ... ok +test_debug_defaults_to_false (test.test_config.Defaults.test_debug_defaults_to_false) ... ok +test_default_action_defaults_to_none (test.test_config.Defaults.test_default_action_defaults_to_none) ... ok +test_display_defaults_to_first_name (test.test_config.Defaults.test_display_defaults_to_first_name) ... ok +test_editor_defaults_to_vim (test.test_config.Defaults.test_editor_defaults_to_vim) ... ok +test_group_by_addressbook_defaults_to_false (test.test_config.Defaults.test_group_by_addressbook_defaults_to_false) ... ok +test_localize_dates_defaults_to_true (test.test_config.Defaults.test_localize_dates_defaults_to_true) ... ok +test_merge_editor_defaults_to_vimdiff (test.test_config.Defaults.test_merge_editor_defaults_to_vimdiff) ... ok +test_preferred_email_address_type_defaults_to_pref (test.test_config.Defaults.test_preferred_email_address_type_defaults_to_pref) ... ok +test_preferred_phone_number_type_defaults_to_pref (test.test_config.Defaults.test_preferred_phone_number_type_defaults_to_pref) ... ok +test_preferred_version_defaults_to_3 (test.test_config.Defaults.test_preferred_version_defaults_to_3) ... ok +test_private_objects_defaults_to_empty (test.test_config.Defaults.test_private_objects_defaults_to_empty) ... ok +test_reverse_defaults_to_false (test.test_config.Defaults.test_reverse_defaults_to_false) ... ok +test_search_in_source_files_defaults_to_false (test.test_config.Defaults.test_search_in_source_files_defaults_to_false) ... ok +test_show_kinds_defaults_to_false (test.test_config.Defaults.test_show_kinds_defaults_to_false) ... ok +test_show_nicknames_defaults_to_false (test.test_config.Defaults.test_show_nicknames_defaults_to_false) ... ok +test_show_uids_defaults_to_true (test.test_config.Defaults.test_show_uids_defaults_to_true) ... ok +test_skip_unparsable_defaults_to_false (test.test_config.Defaults.test_skip_unparsable_defaults_to_false) ... ok +test_sort_defaults_to_first_name (test.test_config.Defaults.test_sort_defaults_to_first_name) ... ok +test_load_empty_file_fails (test.test_config.LoadingConfigFile.test_load_empty_file_fails) ... ok +test_load_minimal_file_by_name (test.test_config.LoadingConfigFile.test_load_minimal_file_by_name) ... ok +test_load_non_existing_file_fails (test.test_config.LoadingConfigFile.test_load_non_existing_file_fails) ... ok +test_uses_config_dir_if_environment_unset (test.test_config.LoadingConfigFile.test_uses_config_dir_if_environment_unset) ... ok +test_uses_khard_config_environment_variable (test.test_config.LoadingConfigFile.test_uses_khard_config_environment_variable) ... ok +test_uses_xdg_config_home_environment_variable (test.test_config.LoadingConfigFile.test_uses_xdg_config_home_environment_variable) ... ok +test_rejects_invalid_default_actions (test.test_config.Validation.test_rejects_invalid_default_actions) ... ok +test_rejects_private_objects_starting_with_minus (test.test_config.Validation.test_rejects_private_objects_starting_with_minus) ... ok +test_rejects_private_objects_with_strange_chars (test.test_config.Validation.test_rejects_private_objects_with_strange_chars) ... ok +test_rejects_unparsable_editor_commands (test.test_config.Validation.test_rejects_unparsable_editor_commands) ... ok +test_colon_handling (test.test_helpers.ConvertToYAML.test_colon_handling) ... ok +test_empty_strings_produce_empty_values (test.test_helpers.ConvertToYAML.test_empty_strings_produce_empty_values) ... ok +test_none_values_produce_no_output (test.test_helpers.ConvertToYAML.test_none_values_produce_no_output) ... ok +test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries (test.test_helpers.ConvertToYAML.test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries) ... ok +test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list (test.test_helpers.ConvertToYAML.test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list) ... ok test_adding_several_email_addresses (test.test_command_line_interface.AddEmail.test_adding_several_email_addresses) ... ok test_contact_is_found_if_name_matches (test.test_command_line_interface.AddEmail.test_contact_is_found_if_name_matches) ... ok test_email_addresses_can_be_skipped (test.test_command_line_interface.AddEmail.test_email_addresses_can_be_skipped) ... ok @@ -1259,77 +1497,6 @@ test_edit_source_file_without_modifications (test.test_command_line_interface.MiscCommands.test_edit_source_file_without_modifications) ... ok test_simple_edit_without_modification (test.test_command_line_interface.MiscCommands.test_simple_edit_without_modification) ... ok test_simple_show_with_yaml_format (test.test_command_line_interface.MiscCommands.test_simple_show_with_yaml_format) ... ok -test_altids_are_read (test.test_carddav_object.AltIds.test_altids_are_read) ... ok -test_format_date_object_will_not_touch_strings (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_will_not_touch_strings) ... ok -test_format_date_object_with_date_1900 (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_date_1900) ... ok -test_format_date_object_with_simple_date_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_date_object) ... ok -test_format_date_object_with_simple_datetime_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_datetime_object) ... ok -test_parsing_base64_ecoded_photo_vcard_v3 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v3) ... ok -test_parsing_base64_ecoded_photo_vcard_v4 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v4) ... ok -test_colon_handling (test.test_helpers.ConvertToYAML.test_colon_handling) ... ok -test_empty_strings_produce_empty_values (test.test_helpers.ConvertToYAML.test_empty_strings_produce_empty_values) ... ok -test_none_values_produce_no_output (test.test_helpers.ConvertToYAML.test_none_values_produce_no_output) ... ok -test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries (test.test_helpers.ConvertToYAML.test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries) ... ok -test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list (test.test_helpers.ConvertToYAML.test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list) ... ok -test_accepts_on_of_the_given_options (test.test_helpers_interactive.Ask.test_accepts_on_of_the_given_options) ... ok -test_accepts_prefix_match (test.test_helpers_interactive.Ask.test_accepts_prefix_match) ... ok -test_default_is_accepted_on_empty_input (test.test_helpers_interactive.Ask.test_default_is_accepted_on_empty_input) ... ok -test_does_not_accept_answers_not_in_choices (test.test_helpers_interactive.Ask.test_does_not_accept_answers_not_in_choices) ... ok -test_only_accepts_unique_prefix_match (test.test_helpers_interactive.Ask.test_only_accepts_unique_prefix_match) ... ok -test_N_is_false (test.test_helpers_interactive.Confirm.test_N_is_false) ... ok -test_Y_is_true (test.test_helpers_interactive.Confirm.test_Y_is_true) ... ok -test_empty_input_can_be_forbidden_with_argument (test.test_helpers_interactive.Confirm.test_empty_input_can_be_forbidden_with_argument) ... ok -test_empty_input_is_no (test.test_helpers_interactive.Confirm.test_empty_input_is_no) ... ok -test_n_is_false (test.test_helpers_interactive.Confirm.test_n_is_false) ... ok -test_y_is_true (test.test_helpers_interactive.Confirm.test_y_is_true) ... ok -test_empty_input_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_empty_input_prints_a_message_and_repeats) ... ok -test_index_0_is_accepted_with_include_none (test.test_helpers_interactive.Select.test_index_0_is_accepted_with_include_none) ... ok -test_index_0_is_not_accepted (test.test_helpers_interactive.Select.test_index_0_is_not_accepted) ... ok -test_out_of_bounds_repeats (test.test_helpers_interactive.Select.test_out_of_bounds_repeats) ... ok -test_selection_index_is_1_based (test.test_helpers_interactive.Select.test_selection_index_is_1_based) ... ok -test_typing_a_non_number_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_typing_a_non_number_prints_a_message_and_repeats) ... ok -test_search_passes_query_to_load (test.test_address_book.AbstractAddressBookSearch.test_search_passes_query_to_load) ... ok -test_search_will_not_trigger_load_if_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_not_trigger_load_if_loaded) ... ok -test_search_will_trigger_load_if_not_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_trigger_load_if_not_loaded) ... ok -test_different_strings (test.test_address_book.AddressBookCompareUids.test_different_strings) ... ok -test_no_error_on_equal_strings (test.test_address_book.AddressBookCompareUids.test_no_error_on_equal_strings) ... ok -test_two_simple_strings (test.test_address_book.AddressBookCompareUids.test_two_simple_strings) ... ok -test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict (test.test_address_book.AddressBookGetShortUidDict.test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict) ... ok -test_issue_159_uid_search_doesnt_return_items_twice (test.test_address_book.ReportedBugs.test_issue_159_uid_search_doesnt_return_items_twice) ... ok -test_do_not_expand_env_var_that_is_unset (test.test_address_book.VcardAddressBookLoad.test_do_not_expand_env_var_that_is_unset) ... ok -test_expand_env_var_that_is_empty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_empty) ... ok -test_expand_env_var_that_is_nonempty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_nonempty) ... ok -test_loading_unparsable_vcard_fails (test.test_address_book.VcardAddressBookLoad.test_loading_unparsable_vcard_fails) ... ok -test_loading_vcards_from_disk (test.test_address_book.VcardAddressBookLoad.test_loading_vcards_from_disk) ... ok -test_search_in_source_files_only_loads_matching_cards (test.test_address_book.VcardAddressBookLoad.test_search_in_source_files_only_loads_matching_cards) ... ok -test_unparsable_files_can_be_skipped (test.test_address_book.VcardAddressBookLoad.test_unparsable_files_can_be_skipped) ... ok -test_vcards_without_uid_generate_a_warning (test.test_address_book.VcardAddressBookLoad.test_vcards_without_uid_generate_a_warning) ... ok -test_copied_from_merge_test_1 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_1) ... ok -test_copied_from_merge_test_2 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_2) ... ok -test_term_query (test.test_address_book.VcardAddressBookSearch.test_term_query) ... ok -test_term_query_failing (test.test_address_book.VcardAddressBookSearch.test_term_query_failing) ... ok -test_term_query_matching (test.test_address_book.VcardAddressBookSearch.test_term_query_matching) ... ok -test_uid_query (test.test_address_book.VcardAddressBookSearch.test_uid_query) ... ok -test_duplicate_key_errors_are_translated_to_value_errors (test.test_yaml_editable.ExceptionHandling.test_duplicate_key_errors_are_translated_to_value_errors) ... ok -test_parser_error_is_translated_to_value_error (test.test_yaml_editable.ExceptionHandling.test_parser_error_is_translated_to_value_error) ... ok -test_dumping_multiple_home_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_addresses_to_yaml) ... ok -test_dumping_multiple_home_email_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_email_addresses_to_yaml) ... ok -test_dumping_multiple_home_phone_number_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_phone_number_to_yaml) ... ok -test_yaml_quoted_special_characters (test.test_yaml_editable.ToYamlConversion.test_yaml_quoted_special_characters) ... ok -test_alphabetically_first_value_is_used (test.test_formatter.FormatLabeledField.test_alphabetically_first_value_is_used) ... ok -test_labels_are_selected_alphabetically_if_no_preferred_given (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_given) ... ok -test_labels_are_selected_alphabetically_if_no_preferred_matches (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_matches) ... ok -test_not_only_first_char_of_label_is_used (test.test_formatter.FormatLabeledField.test_not_only_first_char_of_label_is_used) ... ok -test_preferred_labels_are_used (test.test_formatter.FormatLabeledField.test_preferred_labels_are_used) ... ok -test_name_formatted_as_first_name_last_name (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name) ... ok -test_name_formatted_as_first_name_last_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name_with_nickname) ... ok -test_name_formatted_as_formatted_name (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name) ... ok -test_name_formatted_as_formatted_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name_with_nickname) ... ok -test_name_formatted_as_last_name_first_name (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name) ... ok -test_name_formatted_as_last_name_first_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name_with_nickname) ... ok -test_parsable_overrides_nickname_with_first_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_first_formatting) ... ok -test_parsable_overrides_nickname_with_formatted_name (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_formatted_name) ... ok -test_parsable_overrides_nickname_with_last_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_last_formatting) ... ok test_empty_anniversary_in_yaml_input (test.test_yaml.EmptyFieldsAndSpaces.test_empty_anniversary_in_yaml_input) ... ok test_empty_birthday_in_yaml_input (test.test_yaml.EmptyFieldsAndSpaces.test_empty_birthday_in_yaml_input) ... ok test_empty_categories_in_yaml_input (test.test_yaml.EmptyFieldsAndSpaces.test_empty_categories_in_yaml_input) ... ok @@ -1382,140 +1549,9 @@ test_group_by_addressbook (test.test_khard.TestSortContacts.test_group_by_addressbook) ... ok test_reverses_sort_order (test.test_khard.TestSortContacts.test_reverses_sort_order) ... ok test_sorts_by_first_name_by_default (test.test_khard.TestSortContacts.test_sorts_by_first_name_by_default) ... ok -test_empty_list_items_are_filtered (test.test_helpers_typing.ConvertToVcard.test_empty_list_items_are_filtered) ... ok -test_fail_if_not_string (test.test_helpers_typing.ConvertToVcard.test_fail_if_not_string) ... ok -test_fails_if_string_lists_are_not_homogenous (test.test_helpers_typing.ConvertToVcard.test_fails_if_string_lists_are_not_homogenous) ... ok -test_returns_lists (test.test_helpers_typing.ConvertToVcard.test_returns_lists) ... ok -test_returns_strings (test.test_helpers_typing.ConvertToVcard.test_returns_strings) ... ok -test_strings_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_are_stripped) ... ok -test_strings_in_lists_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_in_lists_are_stripped) ... ok -test_upgrades_string_to_list (test.test_helpers_typing.ConvertToVcard.test_upgrades_string_to_list) ... ok -test_empty_list_returns_empty_string (test.test_helpers_typing.ListToString.test_empty_list_returns_empty_string) ... ok -test_list_to_string_passes_through_other_objects (test.test_helpers_typing.ListToString.test_list_to_string_passes_through_other_objects) ... ok -test_multi_level_nested_list (test.test_helpers_typing.ListToString.test_multi_level_nested_list) ... ok -test_simple_list (test.test_helpers_typing.ListToString.test_simple_list) ... ok -test_simple_nested_list (test.test_helpers_typing.ListToString.test_simple_nested_list) ... ok -test_mm_dd_format (test.test_helpers_typing.StringToDate.test_mm_dd_format) ... ok -test_mmdd_format (test.test_helpers_typing.StringToDate.test_mmdd_format) ... ok -test_yyyy_mm_ddThh_mm_ssZ_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssZ_format) ... ok -test_yyyy_mm_ddThh_mm_ss_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ss_format) ... ok -test_yyyy_mm_ddThh_mm_ssz_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssz_format) ... ok -test_yyyy_mm_dd_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_dd_format) ... ok -test_yyyymmddThhmmssZ_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssZ_format) ... ok -test_yyyymmddThhmmss_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmss_format) ... ok -test_yyyymmddThhmmssz_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssz_format) ... ok -test_yyyymmdd_format (test.test_helpers_typing.StringToDate.test_yyyymmdd_format) ... ok -test_calls_subprocess_popen_with_editor_for_one_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_editor_for_one_args) ... ok -test_calls_subprocess_popen_with_merge_editor_for_two_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_merge_editor_for_two_args) ... ok -test_editing_templates (test.test_editor.EditFiles.test_editing_templates) ... ok -test_exception_from_yaml_conversion_is_caught (test.test_editor.EditFiles.test_exception_from_yaml_conversion_is_caught) ... ok -test_failing_external_command_returns_aborted_state (test.test_editor.EditFiles.test_failing_external_command_returns_aborted_state) ... ok -test_returns_state_modiefied_if_timestamp_does_change (test.test_editor.EditFiles.test_returns_state_modiefied_if_timestamp_does_change) ... ok -test_returns_state_unmodiefied_if_timestamp_does_not_change (test.test_editor.EditFiles.test_returns_state_unmodiefied_if_timestamp_does_not_change) ... ok -test_failes_if_at_least_one_subterm_fails (test.test_query.TestAndQuery.test_failes_if_at_least_one_subterm_fails) ... ok -test_matches_if_all_subterms_match (test.test_query.TestAndQuery.test_matches_if_all_subterms_match) ... ok -test_order_does_not_matter (test.test_query.TestAndQuery.test_order_does_not_matter) ... ok -test_and_queries_match_after_sorting (test.test_query.TestEquality.test_and_queries_match_after_sorting) ... ok -test_any_queries_are_equal (test.test_query.TestEquality.test_any_queries_are_equal) ... ok -test_null_queries_are_equal (test.test_query.TestEquality.test_null_queries_are_equal) ... ok -test_or_queries_match_after_sorting (test.test_query.TestEquality.test_or_queries_match_after_sorting) ... ok -test_empty_field_values_fails_if_the_field_is_absent (test.test_query.TestFieldQuery.test_empty_field_values_fails_if_the_field_is_absent) ... ok -test_empty_field_values_match_if_the_field_is_present (test.test_query.TestFieldQuery.test_empty_field_values_match_if_the_field_is_present) ... expected failure -test_fail_match_in_other_field (test.test_query.TestFieldQuery.test_fail_match_in_other_field) ... ok -test_match_birthday (test.test_query.TestFieldQuery.test_match_birthday) ... ok -test_match_email (test.test_query.TestFieldQuery.test_match_email) ... ok -test_match_email_type (test.test_query.TestFieldQuery.test_match_email_type) ... ok -test_match_formatted_name (test.test_query.TestFieldQuery.test_match_formatted_name) ... ok -test_values_can_match_exact (test.test_query.TestFieldQuery.test_values_can_match_exact) ... ok -test_values_can_match_substrings (test.test_query.TestFieldQuery.test_values_can_match_substrings) ... ok -test_valuess_can_match_case_insensitive (test.test_query.TestFieldQuery.test_valuess_can_match_case_insensitive) ... ok -test_does_not_match_uid_field (test.test_query.TestNameQuery.test_does_not_match_uid_field) ... ok -test_matches_formatted_name_field (test.test_query.TestNameQuery.test_matches_formatted_name_field) ... ok -test_matches_name_field (test.test_query.TestNameQuery.test_matches_name_field) ... ok -test_matches_nickname_field (test.test_query.TestNameQuery.test_matches_nickname_field) ... ok -test_failes_if_all_subterms_fail (test.test_query.TestOrQuery.test_failes_if_all_subterms_fail) ... ok -test_matches_if_at_least_one_subterm_matchs (test.test_query.TestOrQuery.test_matches_if_at_least_one_subterm_matchs) ... ok -test_order_does_not_matter (test.test_query.TestOrQuery.test_order_does_not_matter) ... ok -test_bad_field_name_returns_term_query (test.test_query.TestParser.test_bad_field_name_returns_term_query) ... ok -test_field_value_can_be_empty (test.test_query.TestParser.test_field_value_can_be_empty) ... ok -test_field_value_can_contain_colons (test.test_query.TestParser.test_field_value_can_contain_colons) ... ok -test_parsing_simple_field_queries (test.test_query.TestParser.test_parsing_simple_field_queries) ... ok -test_parsing_simple_terms (test.test_query.TestParser.test_parsing_simple_terms) ... ok -test_special_field_name_creates_name_queries (test.test_query.TestParser.test_special_field_name_creates_name_queries) ... ok -test_match_arguments_are_case_insensitive (test.test_query.TestTermQuery.test_match_arguments_are_case_insensitive) ... ok -test_match_if_query_is_anywhere_in_string (test.test_query.TestTermQuery.test_match_if_query_is_anywhere_in_string) ... ok -test_query_terms_are_case_insensitive (test.test_query.TestTermQuery.test_query_terms_are_case_insensitive) ... ok -test_spaces_in_query_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_query_are_not_stripped) ... ok -test_spaces_in_search_subject_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_search_subject_are_not_stripped) ... ok -test_get_action_resolves_aliases (test.test_actions.Action.test_get_action_resolves_aliases) ... ok -test_get_action_returns_none_for_actions (test.test_actions.Action.test_get_action_returns_none_for_actions) ... ok -test_get_action_returns_none_for_unknown (test.test_actions.Action.test_get_action_returns_none_for_unknown) ... ok -test_get_actions_does_not_return_aliases (test.test_actions.Action.test_get_actions_does_not_return_aliases) ... ok -test_get_actions_returns_actions (test.test_actions.Action.test_get_actions_returns_actions) ... ok -test_get_aliases_reverse_resolves_aliases (test.test_actions.Action.test_get_aliases_reverse_resolves_aliases) ... ok -test_get_aliases_throws_keyerror_for_aliases (test.test_actions.Action.test_get_aliases_throws_keyerror_for_aliases) ... ok -test_get_aliases_throws_keyerror_for_unknown (test.test_actions.Action.test_get_aliases_throws_keyerror_for_unknown) ... ok -test_get_all_returns_actions (test.test_actions.Action.test_get_all_returns_actions) ... ok -test_get_all_returns_aliases (test.test_actions.Action.test_get_all_returns_aliases) ... ok -test_case_does_not_matter (test.test_cli.TestFieldsArgument.test_case_does_not_matter) ... ok -test_only_first_component_must_match_choices_with_nested (test.test_cli.TestFieldsArgument.test_only_first_component_must_match_choices_with_nested) ... ok -test_raises_exception_when_choices_dont_match (test.test_cli.TestFieldsArgument.test_raises_exception_when_choices_dont_match) ... ok -test_works_when_choices_match (test.test_cli.TestFieldsArgument.test_works_when_choices_match) ... ok -test_add_email_another_field (test.test_cli.TestParseArgs.test_add_email_another_field) ... ok -test_add_email_defaults_to_from_lowercase (test.test_cli.TestParseArgs.test_add_email_defaults_to_from_lowercase) ... ok -test_add_email_from_field (test.test_cli.TestParseArgs.test_add_email_from_field) ... ok -test_add_email_multiple_headers_comma_separated (test.test_cli.TestParseArgs.test_add_email_multiple_headers_comma_separated) ... ok -test_add_email_multiple_headers_separate_args_takes_last (test.test_cli.TestParseArgs.test_add_email_multiple_headers_separate_args_takes_last) ... ok -test_exit_user_friendly_without_config_file (test.test_cli.TestParseArgs.test_exit_user_friendly_without_config_file) ... Error reading config file: Config file not found: "/this file should hopefully never exist.". -ok -test_exit_user_friendly_without_contacts_folder (test.test_cli.TestParseArgs.test_exit_user_friendly_without_contacts_folder) ... ok -test_multible_search_terms_generate_and_queries (test.test_cli.TestParseArgs.test_multible_search_terms_generate_and_queries) ... ok -test_no_search_terms_create_an_any_query (test.test_cli.TestParseArgs.test_no_search_terms_create_an_any_query) ... ok -test_no_target_specification_results_in_an_any_query (test.test_cli.TestParseArgs.test_no_target_specification_results_in_an_any_query) ... ok -test_normal_search_terms_create_term_queries (test.test_cli.TestParseArgs.test_normal_search_terms_create_term_queries) ... ok -test_second_target_search_term_overrides_first (test.test_cli.TestParseArgs.test_second_target_search_term_overrides_first) ... ok -test_target_search_terms_are_typed (test.test_cli.TestParseArgs.test_target_search_terms_are_typed) ... ok -test_target_uid_and_free_target_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_target_uid_and_free_target_search_terms_produce_a_conflict) ... ok -test_target_uid_option_creates_uid_queries (test.test_cli.TestParseArgs.test_target_uid_option_creates_uid_queries) ... Deprecated option --target-uid, use the new query syntax instead. -ok -test_uid_and_free_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_uid_and_free_search_terms_produce_a_conflict) ... ok -test_uid_option_is_combined_with_search_terms_for_merge_command (test.test_cli.TestParseArgs.test_uid_option_is_combined_with_search_terms_for_merge_command) ... Deprecated option --uid, use the new query syntax instead. -ok -test_uid_options_create_uid_queries (test.test_cli.TestParseArgs.test_uid_options_create_uid_queries) ... Deprecated option --uid, use the new query syntax instead. -ok -test_default_value_is_3 (test.test_config.ConfigPreferredVcardVersion.test_default_value_is_3) ... ok -test_set_preferred_version (test.test_config.ConfigPreferredVcardVersion.test_set_preferred_version) ... ok -test_debug_defaults_to_false (test.test_config.Defaults.test_debug_defaults_to_false) ... ok -test_default_action_defaults_to_none (test.test_config.Defaults.test_default_action_defaults_to_none) ... ok -test_display_defaults_to_first_name (test.test_config.Defaults.test_display_defaults_to_first_name) ... ok -test_editor_defaults_to_vim (test.test_config.Defaults.test_editor_defaults_to_vim) ... ok -test_group_by_addressbook_defaults_to_false (test.test_config.Defaults.test_group_by_addressbook_defaults_to_false) ... ok -test_localize_dates_defaults_to_true (test.test_config.Defaults.test_localize_dates_defaults_to_true) ... ok -test_merge_editor_defaults_to_vimdiff (test.test_config.Defaults.test_merge_editor_defaults_to_vimdiff) ... ok -test_preferred_email_address_type_defaults_to_pref (test.test_config.Defaults.test_preferred_email_address_type_defaults_to_pref) ... ok -test_preferred_phone_number_type_defaults_to_pref (test.test_config.Defaults.test_preferred_phone_number_type_defaults_to_pref) ... ok -test_preferred_version_defaults_to_3 (test.test_config.Defaults.test_preferred_version_defaults_to_3) ... ok -test_private_objects_defaults_to_empty (test.test_config.Defaults.test_private_objects_defaults_to_empty) ... ok -test_reverse_defaults_to_false (test.test_config.Defaults.test_reverse_defaults_to_false) ... ok -test_search_in_source_files_defaults_to_false (test.test_config.Defaults.test_search_in_source_files_defaults_to_false) ... ok -test_show_kinds_defaults_to_false (test.test_config.Defaults.test_show_kinds_defaults_to_false) ... ok -test_show_nicknames_defaults_to_false (test.test_config.Defaults.test_show_nicknames_defaults_to_false) ... ok -test_show_uids_defaults_to_true (test.test_config.Defaults.test_show_uids_defaults_to_true) ... ok -test_skip_unparsable_defaults_to_false (test.test_config.Defaults.test_skip_unparsable_defaults_to_false) ... ok -test_sort_defaults_to_first_name (test.test_config.Defaults.test_sort_defaults_to_first_name) ... ok -test_load_empty_file_fails (test.test_config.LoadingConfigFile.test_load_empty_file_fails) ... ok -test_load_minimal_file_by_name (test.test_config.LoadingConfigFile.test_load_minimal_file_by_name) ... ok -test_load_non_existing_file_fails (test.test_config.LoadingConfigFile.test_load_non_existing_file_fails) ... ok -test_uses_config_dir_if_environment_unset (test.test_config.LoadingConfigFile.test_uses_config_dir_if_environment_unset) ... ok -test_uses_khard_config_environment_variable (test.test_config.LoadingConfigFile.test_uses_khard_config_environment_variable) ... ok -test_uses_xdg_config_home_environment_variable (test.test_config.LoadingConfigFile.test_uses_xdg_config_home_environment_variable) ... ok -test_rejects_invalid_default_actions (test.test_config.Validation.test_rejects_invalid_default_actions) ... ok -test_rejects_private_objects_starting_with_minus (test.test_config.Validation.test_rejects_private_objects_starting_with_minus) ... ok -test_rejects_private_objects_with_strange_chars (test.test_config.Validation.test_rejects_private_objects_with_strange_chars) ... ok -test_rejects_unparsable_editor_commands (test.test_config.Validation.test_rejects_unparsable_editor_commands) ... ok ---------------------------------------------------------------------- -Ran 347 tests in 1.286s +Ran 347 tests in 2.373s OK (expected failures=1) I: pybuild base:311: python3.11 setup.py test @@ -1566,6 +1602,38 @@ adding license file 'LICENSE' writing manifest file 'khard.egg-info/SOURCES.txt' running build_ext +test_get_action_resolves_aliases (test.test_actions.Action.test_get_action_resolves_aliases) ... ok +test_get_action_returns_none_for_actions (test.test_actions.Action.test_get_action_returns_none_for_actions) ... ok +test_get_action_returns_none_for_unknown (test.test_actions.Action.test_get_action_returns_none_for_unknown) ... ok +test_get_actions_does_not_return_aliases (test.test_actions.Action.test_get_actions_does_not_return_aliases) ... ok +test_get_actions_returns_actions (test.test_actions.Action.test_get_actions_returns_actions) ... ok +test_get_aliases_reverse_resolves_aliases (test.test_actions.Action.test_get_aliases_reverse_resolves_aliases) ... ok +test_get_aliases_throws_keyerror_for_aliases (test.test_actions.Action.test_get_aliases_throws_keyerror_for_aliases) ... ok +test_get_aliases_throws_keyerror_for_unknown (test.test_actions.Action.test_get_aliases_throws_keyerror_for_unknown) ... ok +test_get_all_returns_actions (test.test_actions.Action.test_get_all_returns_actions) ... ok +test_get_all_returns_aliases (test.test_actions.Action.test_get_all_returns_aliases) ... ok +test_search_passes_query_to_load (test.test_address_book.AbstractAddressBookSearch.test_search_passes_query_to_load) ... ok +test_search_will_not_trigger_load_if_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_not_trigger_load_if_loaded) ... ok +test_search_will_trigger_load_if_not_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_trigger_load_if_not_loaded) ... ok +test_different_strings (test.test_address_book.AddressBookCompareUids.test_different_strings) ... ok +test_no_error_on_equal_strings (test.test_address_book.AddressBookCompareUids.test_no_error_on_equal_strings) ... ok +test_two_simple_strings (test.test_address_book.AddressBookCompareUids.test_two_simple_strings) ... ok +test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict (test.test_address_book.AddressBookGetShortUidDict.test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict) ... ok +test_issue_159_uid_search_doesnt_return_items_twice (test.test_address_book.ReportedBugs.test_issue_159_uid_search_doesnt_return_items_twice) ... ok +test_do_not_expand_env_var_that_is_unset (test.test_address_book.VcardAddressBookLoad.test_do_not_expand_env_var_that_is_unset) ... ok +test_expand_env_var_that_is_empty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_empty) ... ok +test_expand_env_var_that_is_nonempty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_nonempty) ... ok +test_loading_unparsable_vcard_fails (test.test_address_book.VcardAddressBookLoad.test_loading_unparsable_vcard_fails) ... ok +test_loading_vcards_from_disk (test.test_address_book.VcardAddressBookLoad.test_loading_vcards_from_disk) ... ok +test_search_in_source_files_only_loads_matching_cards (test.test_address_book.VcardAddressBookLoad.test_search_in_source_files_only_loads_matching_cards) ... ok +test_unparsable_files_can_be_skipped (test.test_address_book.VcardAddressBookLoad.test_unparsable_files_can_be_skipped) ... ok +test_vcards_without_uid_generate_a_warning (test.test_address_book.VcardAddressBookLoad.test_vcards_without_uid_generate_a_warning) ... ok +test_copied_from_merge_test_1 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_1) ... ok +test_copied_from_merge_test_2 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_2) ... ok +test_term_query (test.test_address_book.VcardAddressBookSearch.test_term_query) ... ok +test_term_query_failing (test.test_address_book.VcardAddressBookSearch.test_term_query_failing) ... ok +test_term_query_matching (test.test_address_book.VcardAddressBookSearch.test_term_query_matching) ... ok +test_uid_query (test.test_address_book.VcardAddressBookSearch.test_uid_query) ... ok test_labels_on_structured_values (test.test_vcard_wrapper.ABLabels.test_labels_on_structured_values) ... ok test_setting_and_getting_webpage_ablabel (test.test_vcard_wrapper.ABLabels.test_setting_and_getting_webpage_ablabel) ... ok test_setting_fn_from_labelled_org (test.test_vcard_wrapper.ABLabels.test_setting_fn_from_labelled_org) ... ok @@ -1620,6 +1688,176 @@ test_stores_vcard_object_unmodified (test.test_vcard_wrapper.VcardWrapperInit.test_stores_vcard_object_unmodified) ... ok test_warns_about_missing_version_and_sets_it (test.test_vcard_wrapper.VcardWrapperInit.test_warns_about_missing_version_and_sets_it) ... ok test_warns_about_unsupported_version (test.test_vcard_wrapper.VcardWrapperInit.test_warns_about_unsupported_version) ... ok +test_empty_list_items_are_filtered (test.test_helpers_typing.ConvertToVcard.test_empty_list_items_are_filtered) ... ok +test_fail_if_not_string (test.test_helpers_typing.ConvertToVcard.test_fail_if_not_string) ... ok +test_fails_if_string_lists_are_not_homogenous (test.test_helpers_typing.ConvertToVcard.test_fails_if_string_lists_are_not_homogenous) ... ok +test_returns_lists (test.test_helpers_typing.ConvertToVcard.test_returns_lists) ... ok +test_returns_strings (test.test_helpers_typing.ConvertToVcard.test_returns_strings) ... ok +test_strings_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_are_stripped) ... ok +test_strings_in_lists_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_in_lists_are_stripped) ... ok +test_upgrades_string_to_list (test.test_helpers_typing.ConvertToVcard.test_upgrades_string_to_list) ... ok +test_empty_list_returns_empty_string (test.test_helpers_typing.ListToString.test_empty_list_returns_empty_string) ... ok +test_list_to_string_passes_through_other_objects (test.test_helpers_typing.ListToString.test_list_to_string_passes_through_other_objects) ... ok +test_multi_level_nested_list (test.test_helpers_typing.ListToString.test_multi_level_nested_list) ... ok +test_simple_list (test.test_helpers_typing.ListToString.test_simple_list) ... ok +test_simple_nested_list (test.test_helpers_typing.ListToString.test_simple_nested_list) ... ok +test_mm_dd_format (test.test_helpers_typing.StringToDate.test_mm_dd_format) ... ok +test_mmdd_format (test.test_helpers_typing.StringToDate.test_mmdd_format) ... ok +test_yyyy_mm_ddThh_mm_ssZ_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssZ_format) ... ok +test_yyyy_mm_ddThh_mm_ss_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ss_format) ... ok +test_yyyy_mm_ddThh_mm_ssz_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssz_format) ... ok +test_yyyy_mm_dd_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_dd_format) ... ok +test_yyyymmddThhmmssZ_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssZ_format) ... ok +test_yyyymmddThhmmss_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmss_format) ... ok +test_yyyymmddThhmmssz_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssz_format) ... ok +test_yyyymmdd_format (test.test_helpers_typing.StringToDate.test_yyyymmdd_format) ... ok +test_altids_are_read (test.test_carddav_object.AltIds.test_altids_are_read) ... ok +test_format_date_object_will_not_touch_strings (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_will_not_touch_strings) ... ok +test_format_date_object_with_date_1900 (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_date_1900) ... ok +test_format_date_object_with_simple_date_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_date_object) ... ok +test_format_date_object_with_simple_datetime_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_datetime_object) ... ok +test_parsing_base64_ecoded_photo_vcard_v3 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v3) ... ok +test_parsing_base64_ecoded_photo_vcard_v4 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v4) ... ok +test_accepts_on_of_the_given_options (test.test_helpers_interactive.Ask.test_accepts_on_of_the_given_options) ... ok +test_accepts_prefix_match (test.test_helpers_interactive.Ask.test_accepts_prefix_match) ... ok +test_default_is_accepted_on_empty_input (test.test_helpers_interactive.Ask.test_default_is_accepted_on_empty_input) ... ok +test_does_not_accept_answers_not_in_choices (test.test_helpers_interactive.Ask.test_does_not_accept_answers_not_in_choices) ... ok +test_only_accepts_unique_prefix_match (test.test_helpers_interactive.Ask.test_only_accepts_unique_prefix_match) ... ok +test_N_is_false (test.test_helpers_interactive.Confirm.test_N_is_false) ... ok +test_Y_is_true (test.test_helpers_interactive.Confirm.test_Y_is_true) ... ok +test_empty_input_can_be_forbidden_with_argument (test.test_helpers_interactive.Confirm.test_empty_input_can_be_forbidden_with_argument) ... ok +test_empty_input_is_no (test.test_helpers_interactive.Confirm.test_empty_input_is_no) ... ok +test_n_is_false (test.test_helpers_interactive.Confirm.test_n_is_false) ... ok +test_y_is_true (test.test_helpers_interactive.Confirm.test_y_is_true) ... ok +test_empty_input_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_empty_input_prints_a_message_and_repeats) ... ok +test_index_0_is_accepted_with_include_none (test.test_helpers_interactive.Select.test_index_0_is_accepted_with_include_none) ... ok +test_index_0_is_not_accepted (test.test_helpers_interactive.Select.test_index_0_is_not_accepted) ... ok +test_out_of_bounds_repeats (test.test_helpers_interactive.Select.test_out_of_bounds_repeats) ... ok +test_selection_index_is_1_based (test.test_helpers_interactive.Select.test_selection_index_is_1_based) ... ok +test_typing_a_non_number_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_typing_a_non_number_prints_a_message_and_repeats) ... ok +test_case_does_not_matter (test.test_cli.TestFieldsArgument.test_case_does_not_matter) ... ok +test_only_first_component_must_match_choices_with_nested (test.test_cli.TestFieldsArgument.test_only_first_component_must_match_choices_with_nested) ... ok +test_raises_exception_when_choices_dont_match (test.test_cli.TestFieldsArgument.test_raises_exception_when_choices_dont_match) ... ok +test_works_when_choices_match (test.test_cli.TestFieldsArgument.test_works_when_choices_match) ... ok +test_add_email_another_field (test.test_cli.TestParseArgs.test_add_email_another_field) ... ok +test_add_email_defaults_to_from_lowercase (test.test_cli.TestParseArgs.test_add_email_defaults_to_from_lowercase) ... ok +test_add_email_from_field (test.test_cli.TestParseArgs.test_add_email_from_field) ... ok +test_add_email_multiple_headers_comma_separated (test.test_cli.TestParseArgs.test_add_email_multiple_headers_comma_separated) ... ok +test_add_email_multiple_headers_separate_args_takes_last (test.test_cli.TestParseArgs.test_add_email_multiple_headers_separate_args_takes_last) ... ok +test_exit_user_friendly_without_config_file (test.test_cli.TestParseArgs.test_exit_user_friendly_without_config_file) ... Error reading config file: Config file not found: "/this file should hopefully never exist.". +ok +test_exit_user_friendly_without_contacts_folder (test.test_cli.TestParseArgs.test_exit_user_friendly_without_contacts_folder) ... ok +test_multible_search_terms_generate_and_queries (test.test_cli.TestParseArgs.test_multible_search_terms_generate_and_queries) ... ok +test_no_search_terms_create_an_any_query (test.test_cli.TestParseArgs.test_no_search_terms_create_an_any_query) ... ok +test_no_target_specification_results_in_an_any_query (test.test_cli.TestParseArgs.test_no_target_specification_results_in_an_any_query) ... ok +test_normal_search_terms_create_term_queries (test.test_cli.TestParseArgs.test_normal_search_terms_create_term_queries) ... ok +test_second_target_search_term_overrides_first (test.test_cli.TestParseArgs.test_second_target_search_term_overrides_first) ... ok +test_target_search_terms_are_typed (test.test_cli.TestParseArgs.test_target_search_terms_are_typed) ... ok +test_target_uid_and_free_target_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_target_uid_and_free_target_search_terms_produce_a_conflict) ... ok +test_target_uid_option_creates_uid_queries (test.test_cli.TestParseArgs.test_target_uid_option_creates_uid_queries) ... Deprecated option --target-uid, use the new query syntax instead. +ok +test_uid_and_free_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_uid_and_free_search_terms_produce_a_conflict) ... ok +test_uid_option_is_combined_with_search_terms_for_merge_command (test.test_cli.TestParseArgs.test_uid_option_is_combined_with_search_terms_for_merge_command) ... Deprecated option --uid, use the new query syntax instead. +ok +test_uid_options_create_uid_queries (test.test_cli.TestParseArgs.test_uid_options_create_uid_queries) ... Deprecated option --uid, use the new query syntax instead. +ok +test_calls_subprocess_popen_with_editor_for_one_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_editor_for_one_args) ... ok +test_calls_subprocess_popen_with_merge_editor_for_two_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_merge_editor_for_two_args) ... ok +test_editing_templates (test.test_editor.EditFiles.test_editing_templates) ... ok +test_exception_from_yaml_conversion_is_caught (test.test_editor.EditFiles.test_exception_from_yaml_conversion_is_caught) ... ok +test_failing_external_command_returns_aborted_state (test.test_editor.EditFiles.test_failing_external_command_returns_aborted_state) ... ok +test_returns_state_modiefied_if_timestamp_does_change (test.test_editor.EditFiles.test_returns_state_modiefied_if_timestamp_does_change) ... ok +test_returns_state_unmodiefied_if_timestamp_does_not_change (test.test_editor.EditFiles.test_returns_state_unmodiefied_if_timestamp_does_not_change) ... ok +test_failes_if_at_least_one_subterm_fails (test.test_query.TestAndQuery.test_failes_if_at_least_one_subterm_fails) ... ok +test_matches_if_all_subterms_match (test.test_query.TestAndQuery.test_matches_if_all_subterms_match) ... ok +test_order_does_not_matter (test.test_query.TestAndQuery.test_order_does_not_matter) ... ok +test_and_queries_match_after_sorting (test.test_query.TestEquality.test_and_queries_match_after_sorting) ... ok +test_any_queries_are_equal (test.test_query.TestEquality.test_any_queries_are_equal) ... ok +test_null_queries_are_equal (test.test_query.TestEquality.test_null_queries_are_equal) ... ok +test_or_queries_match_after_sorting (test.test_query.TestEquality.test_or_queries_match_after_sorting) ... ok +test_empty_field_values_fails_if_the_field_is_absent (test.test_query.TestFieldQuery.test_empty_field_values_fails_if_the_field_is_absent) ... ok +test_empty_field_values_match_if_the_field_is_present (test.test_query.TestFieldQuery.test_empty_field_values_match_if_the_field_is_present) ... expected failure +test_fail_match_in_other_field (test.test_query.TestFieldQuery.test_fail_match_in_other_field) ... ok +test_match_birthday (test.test_query.TestFieldQuery.test_match_birthday) ... ok +test_match_email (test.test_query.TestFieldQuery.test_match_email) ... ok +test_match_email_type (test.test_query.TestFieldQuery.test_match_email_type) ... ok +test_match_formatted_name (test.test_query.TestFieldQuery.test_match_formatted_name) ... ok +test_values_can_match_exact (test.test_query.TestFieldQuery.test_values_can_match_exact) ... ok +test_values_can_match_substrings (test.test_query.TestFieldQuery.test_values_can_match_substrings) ... ok +test_valuess_can_match_case_insensitive (test.test_query.TestFieldQuery.test_valuess_can_match_case_insensitive) ... ok +test_does_not_match_uid_field (test.test_query.TestNameQuery.test_does_not_match_uid_field) ... ok +test_matches_formatted_name_field (test.test_query.TestNameQuery.test_matches_formatted_name_field) ... ok +test_matches_name_field (test.test_query.TestNameQuery.test_matches_name_field) ... ok +test_matches_nickname_field (test.test_query.TestNameQuery.test_matches_nickname_field) ... ok +test_failes_if_all_subterms_fail (test.test_query.TestOrQuery.test_failes_if_all_subterms_fail) ... ok +test_matches_if_at_least_one_subterm_matchs (test.test_query.TestOrQuery.test_matches_if_at_least_one_subterm_matchs) ... ok +test_order_does_not_matter (test.test_query.TestOrQuery.test_order_does_not_matter) ... ok +test_bad_field_name_returns_term_query (test.test_query.TestParser.test_bad_field_name_returns_term_query) ... ok +test_field_value_can_be_empty (test.test_query.TestParser.test_field_value_can_be_empty) ... ok +test_field_value_can_contain_colons (test.test_query.TestParser.test_field_value_can_contain_colons) ... ok +test_parsing_simple_field_queries (test.test_query.TestParser.test_parsing_simple_field_queries) ... ok +test_parsing_simple_terms (test.test_query.TestParser.test_parsing_simple_terms) ... ok +test_special_field_name_creates_name_queries (test.test_query.TestParser.test_special_field_name_creates_name_queries) ... ok +test_match_arguments_are_case_insensitive (test.test_query.TestTermQuery.test_match_arguments_are_case_insensitive) ... ok +test_match_if_query_is_anywhere_in_string (test.test_query.TestTermQuery.test_match_if_query_is_anywhere_in_string) ... ok +test_query_terms_are_case_insensitive (test.test_query.TestTermQuery.test_query_terms_are_case_insensitive) ... ok +test_spaces_in_query_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_query_are_not_stripped) ... ok +test_spaces_in_search_subject_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_search_subject_are_not_stripped) ... ok +test_duplicate_key_errors_are_translated_to_value_errors (test.test_yaml_editable.ExceptionHandling.test_duplicate_key_errors_are_translated_to_value_errors) ... ok +test_parser_error_is_translated_to_value_error (test.test_yaml_editable.ExceptionHandling.test_parser_error_is_translated_to_value_error) ... ok +test_dumping_multiple_home_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_addresses_to_yaml) ... ok +test_dumping_multiple_home_email_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_email_addresses_to_yaml) ... ok +test_dumping_multiple_home_phone_number_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_phone_number_to_yaml) ... ok +test_yaml_quoted_special_characters (test.test_yaml_editable.ToYamlConversion.test_yaml_quoted_special_characters) ... ok +test_alphabetically_first_value_is_used (test.test_formatter.FormatLabeledField.test_alphabetically_first_value_is_used) ... ok +test_labels_are_selected_alphabetically_if_no_preferred_given (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_given) ... ok +test_labels_are_selected_alphabetically_if_no_preferred_matches (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_matches) ... ok +test_not_only_first_char_of_label_is_used (test.test_formatter.FormatLabeledField.test_not_only_first_char_of_label_is_used) ... ok +test_preferred_labels_are_used (test.test_formatter.FormatLabeledField.test_preferred_labels_are_used) ... ok +test_name_formatted_as_first_name_last_name (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name) ... ok +test_name_formatted_as_first_name_last_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name_with_nickname) ... ok +test_name_formatted_as_formatted_name (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name) ... ok +test_name_formatted_as_formatted_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name_with_nickname) ... ok +test_name_formatted_as_last_name_first_name (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name) ... ok +test_name_formatted_as_last_name_first_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name_with_nickname) ... ok +test_parsable_overrides_nickname_with_first_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_first_formatting) ... ok +test_parsable_overrides_nickname_with_formatted_name (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_formatted_name) ... ok +test_parsable_overrides_nickname_with_last_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_last_formatting) ... ok +test_default_value_is_3 (test.test_config.ConfigPreferredVcardVersion.test_default_value_is_3) ... ok +test_set_preferred_version (test.test_config.ConfigPreferredVcardVersion.test_set_preferred_version) ... ok +test_debug_defaults_to_false (test.test_config.Defaults.test_debug_defaults_to_false) ... ok +test_default_action_defaults_to_none (test.test_config.Defaults.test_default_action_defaults_to_none) ... ok +test_display_defaults_to_first_name (test.test_config.Defaults.test_display_defaults_to_first_name) ... ok +test_editor_defaults_to_vim (test.test_config.Defaults.test_editor_defaults_to_vim) ... ok +test_group_by_addressbook_defaults_to_false (test.test_config.Defaults.test_group_by_addressbook_defaults_to_false) ... ok +test_localize_dates_defaults_to_true (test.test_config.Defaults.test_localize_dates_defaults_to_true) ... ok +test_merge_editor_defaults_to_vimdiff (test.test_config.Defaults.test_merge_editor_defaults_to_vimdiff) ... ok +test_preferred_email_address_type_defaults_to_pref (test.test_config.Defaults.test_preferred_email_address_type_defaults_to_pref) ... ok +test_preferred_phone_number_type_defaults_to_pref (test.test_config.Defaults.test_preferred_phone_number_type_defaults_to_pref) ... ok +test_preferred_version_defaults_to_3 (test.test_config.Defaults.test_preferred_version_defaults_to_3) ... ok +test_private_objects_defaults_to_empty (test.test_config.Defaults.test_private_objects_defaults_to_empty) ... ok +test_reverse_defaults_to_false (test.test_config.Defaults.test_reverse_defaults_to_false) ... ok +test_search_in_source_files_defaults_to_false (test.test_config.Defaults.test_search_in_source_files_defaults_to_false) ... ok +test_show_kinds_defaults_to_false (test.test_config.Defaults.test_show_kinds_defaults_to_false) ... ok +test_show_nicknames_defaults_to_false (test.test_config.Defaults.test_show_nicknames_defaults_to_false) ... ok +test_show_uids_defaults_to_true (test.test_config.Defaults.test_show_uids_defaults_to_true) ... ok +test_skip_unparsable_defaults_to_false (test.test_config.Defaults.test_skip_unparsable_defaults_to_false) ... ok +test_sort_defaults_to_first_name (test.test_config.Defaults.test_sort_defaults_to_first_name) ... ok +test_load_empty_file_fails (test.test_config.LoadingConfigFile.test_load_empty_file_fails) ... ok +test_load_minimal_file_by_name (test.test_config.LoadingConfigFile.test_load_minimal_file_by_name) ... ok +test_load_non_existing_file_fails (test.test_config.LoadingConfigFile.test_load_non_existing_file_fails) ... ok +test_uses_config_dir_if_environment_unset (test.test_config.LoadingConfigFile.test_uses_config_dir_if_environment_unset) ... ok +test_uses_khard_config_environment_variable (test.test_config.LoadingConfigFile.test_uses_khard_config_environment_variable) ... ok +test_uses_xdg_config_home_environment_variable (test.test_config.LoadingConfigFile.test_uses_xdg_config_home_environment_variable) ... ok +test_rejects_invalid_default_actions (test.test_config.Validation.test_rejects_invalid_default_actions) ... ok +test_rejects_private_objects_starting_with_minus (test.test_config.Validation.test_rejects_private_objects_starting_with_minus) ... ok +test_rejects_private_objects_with_strange_chars (test.test_config.Validation.test_rejects_private_objects_with_strange_chars) ... ok +test_rejects_unparsable_editor_commands (test.test_config.Validation.test_rejects_unparsable_editor_commands) ... ok +test_colon_handling (test.test_helpers.ConvertToYAML.test_colon_handling) ... ok +test_empty_strings_produce_empty_values (test.test_helpers.ConvertToYAML.test_empty_strings_produce_empty_values) ... ok +test_none_values_produce_no_output (test.test_helpers.ConvertToYAML.test_none_values_produce_no_output) ... ok +test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries (test.test_helpers.ConvertToYAML.test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries) ... ok +test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list (test.test_helpers.ConvertToYAML.test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list) ... ok test_adding_several_email_addresses (test.test_command_line_interface.AddEmail.test_adding_several_email_addresses) ... ok test_contact_is_found_if_name_matches (test.test_command_line_interface.AddEmail.test_contact_is_found_if_name_matches) ... ok test_email_addresses_can_be_skipped (test.test_command_line_interface.AddEmail.test_email_addresses_can_be_skipped) ... ok @@ -1670,77 +1908,6 @@ test_edit_source_file_without_modifications (test.test_command_line_interface.MiscCommands.test_edit_source_file_without_modifications) ... ok test_simple_edit_without_modification (test.test_command_line_interface.MiscCommands.test_simple_edit_without_modification) ... ok test_simple_show_with_yaml_format (test.test_command_line_interface.MiscCommands.test_simple_show_with_yaml_format) ... ok -test_altids_are_read (test.test_carddav_object.AltIds.test_altids_are_read) ... ok -test_format_date_object_will_not_touch_strings (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_will_not_touch_strings) ... ok -test_format_date_object_with_date_1900 (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_date_1900) ... ok -test_format_date_object_with_simple_date_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_date_object) ... ok -test_format_date_object_with_simple_datetime_object (test.test_carddav_object.CarddavObjectFormatDateObject.test_format_date_object_with_simple_datetime_object) ... ok -test_parsing_base64_ecoded_photo_vcard_v3 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v3) ... ok -test_parsing_base64_ecoded_photo_vcard_v4 (test.test_carddav_object.Photo.test_parsing_base64_ecoded_photo_vcard_v4) ... ok -test_colon_handling (test.test_helpers.ConvertToYAML.test_colon_handling) ... ok -test_empty_strings_produce_empty_values (test.test_helpers.ConvertToYAML.test_empty_strings_produce_empty_values) ... ok -test_none_values_produce_no_output (test.test_helpers.ConvertToYAML.test_none_values_produce_no_output) ... ok -test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries (test.test_helpers.ConvertToYAML.test_preparing_multiple_addresses_with_same_label_for_yaml_conversion_returns_all_entries) ... ok -test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list (test.test_helpers.ConvertToYAML.test_preparing_single_addresse_for_yaml_conversion_returns_dict_not_list) ... ok -test_accepts_on_of_the_given_options (test.test_helpers_interactive.Ask.test_accepts_on_of_the_given_options) ... ok -test_accepts_prefix_match (test.test_helpers_interactive.Ask.test_accepts_prefix_match) ... ok -test_default_is_accepted_on_empty_input (test.test_helpers_interactive.Ask.test_default_is_accepted_on_empty_input) ... ok -test_does_not_accept_answers_not_in_choices (test.test_helpers_interactive.Ask.test_does_not_accept_answers_not_in_choices) ... ok -test_only_accepts_unique_prefix_match (test.test_helpers_interactive.Ask.test_only_accepts_unique_prefix_match) ... ok -test_N_is_false (test.test_helpers_interactive.Confirm.test_N_is_false) ... ok -test_Y_is_true (test.test_helpers_interactive.Confirm.test_Y_is_true) ... ok -test_empty_input_can_be_forbidden_with_argument (test.test_helpers_interactive.Confirm.test_empty_input_can_be_forbidden_with_argument) ... ok -test_empty_input_is_no (test.test_helpers_interactive.Confirm.test_empty_input_is_no) ... ok -test_n_is_false (test.test_helpers_interactive.Confirm.test_n_is_false) ... ok -test_y_is_true (test.test_helpers_interactive.Confirm.test_y_is_true) ... ok -test_empty_input_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_empty_input_prints_a_message_and_repeats) ... ok -test_index_0_is_accepted_with_include_none (test.test_helpers_interactive.Select.test_index_0_is_accepted_with_include_none) ... ok -test_index_0_is_not_accepted (test.test_helpers_interactive.Select.test_index_0_is_not_accepted) ... ok -test_out_of_bounds_repeats (test.test_helpers_interactive.Select.test_out_of_bounds_repeats) ... ok -test_selection_index_is_1_based (test.test_helpers_interactive.Select.test_selection_index_is_1_based) ... ok -test_typing_a_non_number_prints_a_message_and_repeats (test.test_helpers_interactive.Select.test_typing_a_non_number_prints_a_message_and_repeats) ... ok -test_search_passes_query_to_load (test.test_address_book.AbstractAddressBookSearch.test_search_passes_query_to_load) ... ok -test_search_will_not_trigger_load_if_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_not_trigger_load_if_loaded) ... ok -test_search_will_trigger_load_if_not_loaded (test.test_address_book.AbstractAddressBookSearch.test_search_will_trigger_load_if_not_loaded) ... ok -test_different_strings (test.test_address_book.AddressBookCompareUids.test_different_strings) ... ok -test_no_error_on_equal_strings (test.test_address_book.AddressBookCompareUids.test_no_error_on_equal_strings) ... ok -test_two_simple_strings (test.test_address_book.AddressBookCompareUids.test_two_simple_strings) ... ok -test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict (test.test_address_book.AddressBookGetShortUidDict.test_uniqe_uid_also_reslts_in_shortend_uid_in_short_uid_dict) ... ok -test_issue_159_uid_search_doesnt_return_items_twice (test.test_address_book.ReportedBugs.test_issue_159_uid_search_doesnt_return_items_twice) ... ok -test_do_not_expand_env_var_that_is_unset (test.test_address_book.VcardAddressBookLoad.test_do_not_expand_env_var_that_is_unset) ... ok -test_expand_env_var_that_is_empty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_empty) ... ok -test_expand_env_var_that_is_nonempty (test.test_address_book.VcardAddressBookLoad.test_expand_env_var_that_is_nonempty) ... ok -test_loading_unparsable_vcard_fails (test.test_address_book.VcardAddressBookLoad.test_loading_unparsable_vcard_fails) ... ok -test_loading_vcards_from_disk (test.test_address_book.VcardAddressBookLoad.test_loading_vcards_from_disk) ... ok -test_search_in_source_files_only_loads_matching_cards (test.test_address_book.VcardAddressBookLoad.test_search_in_source_files_only_loads_matching_cards) ... ok -test_unparsable_files_can_be_skipped (test.test_address_book.VcardAddressBookLoad.test_unparsable_files_can_be_skipped) ... ok -test_vcards_without_uid_generate_a_warning (test.test_address_book.VcardAddressBookLoad.test_vcards_without_uid_generate_a_warning) ... ok -test_copied_from_merge_test_1 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_1) ... ok -test_copied_from_merge_test_2 (test.test_address_book.VcardAddressBookSearch.test_copied_from_merge_test_2) ... ok -test_term_query (test.test_address_book.VcardAddressBookSearch.test_term_query) ... ok -test_term_query_failing (test.test_address_book.VcardAddressBookSearch.test_term_query_failing) ... ok -test_term_query_matching (test.test_address_book.VcardAddressBookSearch.test_term_query_matching) ... ok -test_uid_query (test.test_address_book.VcardAddressBookSearch.test_uid_query) ... ok -test_duplicate_key_errors_are_translated_to_value_errors (test.test_yaml_editable.ExceptionHandling.test_duplicate_key_errors_are_translated_to_value_errors) ... ok -test_parser_error_is_translated_to_value_error (test.test_yaml_editable.ExceptionHandling.test_parser_error_is_translated_to_value_error) ... ok -test_dumping_multiple_home_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_addresses_to_yaml) ... ok -test_dumping_multiple_home_email_addresses_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_email_addresses_to_yaml) ... ok -test_dumping_multiple_home_phone_number_to_yaml (test.test_yaml_editable.ToYamlConversion.test_dumping_multiple_home_phone_number_to_yaml) ... ok -test_yaml_quoted_special_characters (test.test_yaml_editable.ToYamlConversion.test_yaml_quoted_special_characters) ... ok -test_alphabetically_first_value_is_used (test.test_formatter.FormatLabeledField.test_alphabetically_first_value_is_used) ... ok -test_labels_are_selected_alphabetically_if_no_preferred_given (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_given) ... ok -test_labels_are_selected_alphabetically_if_no_preferred_matches (test.test_formatter.FormatLabeledField.test_labels_are_selected_alphabetically_if_no_preferred_matches) ... ok -test_not_only_first_char_of_label_is_used (test.test_formatter.FormatLabeledField.test_not_only_first_char_of_label_is_used) ... ok -test_preferred_labels_are_used (test.test_formatter.FormatLabeledField.test_preferred_labels_are_used) ... ok -test_name_formatted_as_first_name_last_name (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name) ... ok -test_name_formatted_as_first_name_last_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_first_name_last_name_with_nickname) ... ok -test_name_formatted_as_formatted_name (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name) ... ok -test_name_formatted_as_formatted_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_formatted_name_with_nickname) ... ok -test_name_formatted_as_last_name_first_name (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name) ... ok -test_name_formatted_as_last_name_first_name_with_nickname (test.test_formatter.GetSpecialField.test_name_formatted_as_last_name_first_name_with_nickname) ... ok -test_parsable_overrides_nickname_with_first_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_first_formatting) ... ok -test_parsable_overrides_nickname_with_formatted_name (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_formatted_name) ... ok -test_parsable_overrides_nickname_with_last_formatting (test.test_formatter.GetSpecialField.test_parsable_overrides_nickname_with_last_formatting) ... ok test_empty_anniversary_in_yaml_input (test.test_yaml.EmptyFieldsAndSpaces.test_empty_anniversary_in_yaml_input) ... ok test_empty_birthday_in_yaml_input (test.test_yaml.EmptyFieldsAndSpaces.test_empty_birthday_in_yaml_input) ... ok test_empty_categories_in_yaml_input (test.test_yaml.EmptyFieldsAndSpaces.test_empty_categories_in_yaml_input) ... ok @@ -1793,140 +1960,9 @@ test_group_by_addressbook (test.test_khard.TestSortContacts.test_group_by_addressbook) ... ok test_reverses_sort_order (test.test_khard.TestSortContacts.test_reverses_sort_order) ... ok test_sorts_by_first_name_by_default (test.test_khard.TestSortContacts.test_sorts_by_first_name_by_default) ... ok -test_empty_list_items_are_filtered (test.test_helpers_typing.ConvertToVcard.test_empty_list_items_are_filtered) ... ok -test_fail_if_not_string (test.test_helpers_typing.ConvertToVcard.test_fail_if_not_string) ... ok -test_fails_if_string_lists_are_not_homogenous (test.test_helpers_typing.ConvertToVcard.test_fails_if_string_lists_are_not_homogenous) ... ok -test_returns_lists (test.test_helpers_typing.ConvertToVcard.test_returns_lists) ... ok -test_returns_strings (test.test_helpers_typing.ConvertToVcard.test_returns_strings) ... ok -test_strings_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_are_stripped) ... ok -test_strings_in_lists_are_stripped (test.test_helpers_typing.ConvertToVcard.test_strings_in_lists_are_stripped) ... ok -test_upgrades_string_to_list (test.test_helpers_typing.ConvertToVcard.test_upgrades_string_to_list) ... ok -test_empty_list_returns_empty_string (test.test_helpers_typing.ListToString.test_empty_list_returns_empty_string) ... ok -test_list_to_string_passes_through_other_objects (test.test_helpers_typing.ListToString.test_list_to_string_passes_through_other_objects) ... ok -test_multi_level_nested_list (test.test_helpers_typing.ListToString.test_multi_level_nested_list) ... ok -test_simple_list (test.test_helpers_typing.ListToString.test_simple_list) ... ok -test_simple_nested_list (test.test_helpers_typing.ListToString.test_simple_nested_list) ... ok -test_mm_dd_format (test.test_helpers_typing.StringToDate.test_mm_dd_format) ... ok -test_mmdd_format (test.test_helpers_typing.StringToDate.test_mmdd_format) ... ok -test_yyyy_mm_ddThh_mm_ssZ_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssZ_format) ... ok -test_yyyy_mm_ddThh_mm_ss_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ss_format) ... ok -test_yyyy_mm_ddThh_mm_ssz_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_ddThh_mm_ssz_format) ... ok -test_yyyy_mm_dd_format (test.test_helpers_typing.StringToDate.test_yyyy_mm_dd_format) ... ok -test_yyyymmddThhmmssZ_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssZ_format) ... ok -test_yyyymmddThhmmss_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmss_format) ... ok -test_yyyymmddThhmmssz_format (test.test_helpers_typing.StringToDate.test_yyyymmddThhmmssz_format) ... ok -test_yyyymmdd_format (test.test_helpers_typing.StringToDate.test_yyyymmdd_format) ... ok -test_calls_subprocess_popen_with_editor_for_one_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_editor_for_one_args) ... ok -test_calls_subprocess_popen_with_merge_editor_for_two_args (test.test_editor.EditFiles.test_calls_subprocess_popen_with_merge_editor_for_two_args) ... ok -test_editing_templates (test.test_editor.EditFiles.test_editing_templates) ... ok -test_exception_from_yaml_conversion_is_caught (test.test_editor.EditFiles.test_exception_from_yaml_conversion_is_caught) ... ok -test_failing_external_command_returns_aborted_state (test.test_editor.EditFiles.test_failing_external_command_returns_aborted_state) ... ok -test_returns_state_modiefied_if_timestamp_does_change (test.test_editor.EditFiles.test_returns_state_modiefied_if_timestamp_does_change) ... ok -test_returns_state_unmodiefied_if_timestamp_does_not_change (test.test_editor.EditFiles.test_returns_state_unmodiefied_if_timestamp_does_not_change) ... ok -test_failes_if_at_least_one_subterm_fails (test.test_query.TestAndQuery.test_failes_if_at_least_one_subterm_fails) ... ok -test_matches_if_all_subterms_match (test.test_query.TestAndQuery.test_matches_if_all_subterms_match) ... ok -test_order_does_not_matter (test.test_query.TestAndQuery.test_order_does_not_matter) ... ok -test_and_queries_match_after_sorting (test.test_query.TestEquality.test_and_queries_match_after_sorting) ... ok -test_any_queries_are_equal (test.test_query.TestEquality.test_any_queries_are_equal) ... ok -test_null_queries_are_equal (test.test_query.TestEquality.test_null_queries_are_equal) ... ok -test_or_queries_match_after_sorting (test.test_query.TestEquality.test_or_queries_match_after_sorting) ... ok -test_empty_field_values_fails_if_the_field_is_absent (test.test_query.TestFieldQuery.test_empty_field_values_fails_if_the_field_is_absent) ... ok -test_empty_field_values_match_if_the_field_is_present (test.test_query.TestFieldQuery.test_empty_field_values_match_if_the_field_is_present) ... expected failure -test_fail_match_in_other_field (test.test_query.TestFieldQuery.test_fail_match_in_other_field) ... ok -test_match_birthday (test.test_query.TestFieldQuery.test_match_birthday) ... ok -test_match_email (test.test_query.TestFieldQuery.test_match_email) ... ok -test_match_email_type (test.test_query.TestFieldQuery.test_match_email_type) ... ok -test_match_formatted_name (test.test_query.TestFieldQuery.test_match_formatted_name) ... ok -test_values_can_match_exact (test.test_query.TestFieldQuery.test_values_can_match_exact) ... ok -test_values_can_match_substrings (test.test_query.TestFieldQuery.test_values_can_match_substrings) ... ok -test_valuess_can_match_case_insensitive (test.test_query.TestFieldQuery.test_valuess_can_match_case_insensitive) ... ok -test_does_not_match_uid_field (test.test_query.TestNameQuery.test_does_not_match_uid_field) ... ok -test_matches_formatted_name_field (test.test_query.TestNameQuery.test_matches_formatted_name_field) ... ok -test_matches_name_field (test.test_query.TestNameQuery.test_matches_name_field) ... ok -test_matches_nickname_field (test.test_query.TestNameQuery.test_matches_nickname_field) ... ok -test_failes_if_all_subterms_fail (test.test_query.TestOrQuery.test_failes_if_all_subterms_fail) ... ok -test_matches_if_at_least_one_subterm_matchs (test.test_query.TestOrQuery.test_matches_if_at_least_one_subterm_matchs) ... ok -test_order_does_not_matter (test.test_query.TestOrQuery.test_order_does_not_matter) ... ok -test_bad_field_name_returns_term_query (test.test_query.TestParser.test_bad_field_name_returns_term_query) ... ok -test_field_value_can_be_empty (test.test_query.TestParser.test_field_value_can_be_empty) ... ok -test_field_value_can_contain_colons (test.test_query.TestParser.test_field_value_can_contain_colons) ... ok -test_parsing_simple_field_queries (test.test_query.TestParser.test_parsing_simple_field_queries) ... ok -test_parsing_simple_terms (test.test_query.TestParser.test_parsing_simple_terms) ... ok -test_special_field_name_creates_name_queries (test.test_query.TestParser.test_special_field_name_creates_name_queries) ... ok -test_match_arguments_are_case_insensitive (test.test_query.TestTermQuery.test_match_arguments_are_case_insensitive) ... ok -test_match_if_query_is_anywhere_in_string (test.test_query.TestTermQuery.test_match_if_query_is_anywhere_in_string) ... ok -test_query_terms_are_case_insensitive (test.test_query.TestTermQuery.test_query_terms_are_case_insensitive) ... ok -test_spaces_in_query_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_query_are_not_stripped) ... ok -test_spaces_in_search_subject_are_not_stripped (test.test_query.TestTermQuery.test_spaces_in_search_subject_are_not_stripped) ... ok -test_get_action_resolves_aliases (test.test_actions.Action.test_get_action_resolves_aliases) ... ok -test_get_action_returns_none_for_actions (test.test_actions.Action.test_get_action_returns_none_for_actions) ... ok -test_get_action_returns_none_for_unknown (test.test_actions.Action.test_get_action_returns_none_for_unknown) ... ok -test_get_actions_does_not_return_aliases (test.test_actions.Action.test_get_actions_does_not_return_aliases) ... ok -test_get_actions_returns_actions (test.test_actions.Action.test_get_actions_returns_actions) ... ok -test_get_aliases_reverse_resolves_aliases (test.test_actions.Action.test_get_aliases_reverse_resolves_aliases) ... ok -test_get_aliases_throws_keyerror_for_aliases (test.test_actions.Action.test_get_aliases_throws_keyerror_for_aliases) ... ok -test_get_aliases_throws_keyerror_for_unknown (test.test_actions.Action.test_get_aliases_throws_keyerror_for_unknown) ... ok -test_get_all_returns_actions (test.test_actions.Action.test_get_all_returns_actions) ... ok -test_get_all_returns_aliases (test.test_actions.Action.test_get_all_returns_aliases) ... ok -test_case_does_not_matter (test.test_cli.TestFieldsArgument.test_case_does_not_matter) ... ok -test_only_first_component_must_match_choices_with_nested (test.test_cli.TestFieldsArgument.test_only_first_component_must_match_choices_with_nested) ... ok -test_raises_exception_when_choices_dont_match (test.test_cli.TestFieldsArgument.test_raises_exception_when_choices_dont_match) ... ok -test_works_when_choices_match (test.test_cli.TestFieldsArgument.test_works_when_choices_match) ... ok -test_add_email_another_field (test.test_cli.TestParseArgs.test_add_email_another_field) ... ok -test_add_email_defaults_to_from_lowercase (test.test_cli.TestParseArgs.test_add_email_defaults_to_from_lowercase) ... ok -test_add_email_from_field (test.test_cli.TestParseArgs.test_add_email_from_field) ... ok -test_add_email_multiple_headers_comma_separated (test.test_cli.TestParseArgs.test_add_email_multiple_headers_comma_separated) ... ok -test_add_email_multiple_headers_separate_args_takes_last (test.test_cli.TestParseArgs.test_add_email_multiple_headers_separate_args_takes_last) ... ok -test_exit_user_friendly_without_config_file (test.test_cli.TestParseArgs.test_exit_user_friendly_without_config_file) ... Error reading config file: Config file not found: "/this file should hopefully never exist.". -ok -test_exit_user_friendly_without_contacts_folder (test.test_cli.TestParseArgs.test_exit_user_friendly_without_contacts_folder) ... ok -test_multible_search_terms_generate_and_queries (test.test_cli.TestParseArgs.test_multible_search_terms_generate_and_queries) ... ok -test_no_search_terms_create_an_any_query (test.test_cli.TestParseArgs.test_no_search_terms_create_an_any_query) ... ok -test_no_target_specification_results_in_an_any_query (test.test_cli.TestParseArgs.test_no_target_specification_results_in_an_any_query) ... ok -test_normal_search_terms_create_term_queries (test.test_cli.TestParseArgs.test_normal_search_terms_create_term_queries) ... ok -test_second_target_search_term_overrides_first (test.test_cli.TestParseArgs.test_second_target_search_term_overrides_first) ... ok -test_target_search_terms_are_typed (test.test_cli.TestParseArgs.test_target_search_terms_are_typed) ... ok -test_target_uid_and_free_target_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_target_uid_and_free_target_search_terms_produce_a_conflict) ... ok -test_target_uid_option_creates_uid_queries (test.test_cli.TestParseArgs.test_target_uid_option_creates_uid_queries) ... Deprecated option --target-uid, use the new query syntax instead. -ok -test_uid_and_free_search_terms_produce_a_conflict (test.test_cli.TestParseArgs.test_uid_and_free_search_terms_produce_a_conflict) ... ok -test_uid_option_is_combined_with_search_terms_for_merge_command (test.test_cli.TestParseArgs.test_uid_option_is_combined_with_search_terms_for_merge_command) ... Deprecated option --uid, use the new query syntax instead. -ok -test_uid_options_create_uid_queries (test.test_cli.TestParseArgs.test_uid_options_create_uid_queries) ... Deprecated option --uid, use the new query syntax instead. -ok -test_default_value_is_3 (test.test_config.ConfigPreferredVcardVersion.test_default_value_is_3) ... ok -test_set_preferred_version (test.test_config.ConfigPreferredVcardVersion.test_set_preferred_version) ... ok -test_debug_defaults_to_false (test.test_config.Defaults.test_debug_defaults_to_false) ... ok -test_default_action_defaults_to_none (test.test_config.Defaults.test_default_action_defaults_to_none) ... ok -test_display_defaults_to_first_name (test.test_config.Defaults.test_display_defaults_to_first_name) ... ok -test_editor_defaults_to_vim (test.test_config.Defaults.test_editor_defaults_to_vim) ... ok -test_group_by_addressbook_defaults_to_false (test.test_config.Defaults.test_group_by_addressbook_defaults_to_false) ... ok -test_localize_dates_defaults_to_true (test.test_config.Defaults.test_localize_dates_defaults_to_true) ... ok -test_merge_editor_defaults_to_vimdiff (test.test_config.Defaults.test_merge_editor_defaults_to_vimdiff) ... ok -test_preferred_email_address_type_defaults_to_pref (test.test_config.Defaults.test_preferred_email_address_type_defaults_to_pref) ... ok -test_preferred_phone_number_type_defaults_to_pref (test.test_config.Defaults.test_preferred_phone_number_type_defaults_to_pref) ... ok -test_preferred_version_defaults_to_3 (test.test_config.Defaults.test_preferred_version_defaults_to_3) ... ok -test_private_objects_defaults_to_empty (test.test_config.Defaults.test_private_objects_defaults_to_empty) ... ok -test_reverse_defaults_to_false (test.test_config.Defaults.test_reverse_defaults_to_false) ... ok -test_search_in_source_files_defaults_to_false (test.test_config.Defaults.test_search_in_source_files_defaults_to_false) ... ok -test_show_kinds_defaults_to_false (test.test_config.Defaults.test_show_kinds_defaults_to_false) ... ok -test_show_nicknames_defaults_to_false (test.test_config.Defaults.test_show_nicknames_defaults_to_false) ... ok -test_show_uids_defaults_to_true (test.test_config.Defaults.test_show_uids_defaults_to_true) ... ok -test_skip_unparsable_defaults_to_false (test.test_config.Defaults.test_skip_unparsable_defaults_to_false) ... ok -test_sort_defaults_to_first_name (test.test_config.Defaults.test_sort_defaults_to_first_name) ... ok -test_load_empty_file_fails (test.test_config.LoadingConfigFile.test_load_empty_file_fails) ... ok -test_load_minimal_file_by_name (test.test_config.LoadingConfigFile.test_load_minimal_file_by_name) ... ok -test_load_non_existing_file_fails (test.test_config.LoadingConfigFile.test_load_non_existing_file_fails) ... ok -test_uses_config_dir_if_environment_unset (test.test_config.LoadingConfigFile.test_uses_config_dir_if_environment_unset) ... ok -test_uses_khard_config_environment_variable (test.test_config.LoadingConfigFile.test_uses_khard_config_environment_variable) ... ok -test_uses_xdg_config_home_environment_variable (test.test_config.LoadingConfigFile.test_uses_xdg_config_home_environment_variable) ... ok -test_rejects_invalid_default_actions (test.test_config.Validation.test_rejects_invalid_default_actions) ... ok -test_rejects_private_objects_starting_with_minus (test.test_config.Validation.test_rejects_private_objects_starting_with_minus) ... ok -test_rejects_private_objects_with_strange_chars (test.test_config.Validation.test_rejects_private_objects_with_strange_chars) ... ok -test_rejects_unparsable_editor_commands (test.test_config.Validation.test_rejects_unparsable_editor_commands) ... ok ---------------------------------------------------------------------- -Ran 347 tests in 1.191s +Ran 347 tests in 2.403s OK (expected failures=1) create-stamp debian/debhelper-build-stamp @@ -2011,38 +2047,38 @@ creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12 creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/config.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/carddav_object.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/actions.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/version.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/formatter.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/khard.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/__init__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/address_book.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers/__init__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/helpers/interactive.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/cli.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/query.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/__main__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/version.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/__init__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/address_book.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/config.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/data copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/data/template.yaml -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/data copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/data/config.spec -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/data -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/config.py to config.cpython-312.pyc +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/query.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/__main__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/actions.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/cli.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.12/build/khard/formatter.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/carddav_object.py to carddav_object.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/actions.py to actions.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/version.py to version.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/formatter.py to formatter.cpython-312.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/khard.py to khard.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/address_book.py to address_book.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers/typing.py to typing.cpython-312.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers/typing.py to typing.cpython-312.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/helpers/interactive.py to interactive.cpython-312.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/cli.py to cli.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/version.py to version.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/address_book.py to address_book.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/config.py to config.cpython-312.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/query.py to query.cpython-312.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/__main__.py to __main__.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/actions.py to actions.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/cli.py to cli.cpython-312.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard/formatter.py to formatter.cpython-312.pyc running install_egg_info Copying khard.egg-info to /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.12/dist-packages/khard-0.19.1.egg-info Skipping SOURCES.txt @@ -2122,38 +2158,38 @@ creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11 creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/config.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/carddav_object.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/actions.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/version.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/formatter.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/khard.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/__init__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/address_book.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers/__init__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers/typing.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/helpers/interactive.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/cli.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/query.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard -copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/__main__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/version.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/__init__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/address_book.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/config.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard creating /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/data copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/data/template.yaml -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/data copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/data/config.spec -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/data -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/config.py to config.cpython-311.pyc +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/query.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/__main__.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/actions.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/cli.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard +copying /build/reproducible-path/khard-0.19.1/.pybuild/cpython3_3.11/build/khard/formatter.py -> /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/carddav_object.py to carddav_object.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/actions.py to actions.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/version.py to version.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/formatter.py to formatter.cpython-311.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/khard.py to khard.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/__init__.py to __init__.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/address_book.py to address_book.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers/typing.py to typing.cpython-311.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers/typing.py to typing.cpython-311.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/helpers/interactive.py to interactive.cpython-311.pyc -byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/cli.py to cli.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/version.py to version.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/__init__.py to __init__.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/address_book.py to address_book.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/config.py to config.cpython-311.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/query.py to query.cpython-311.pyc byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/__main__.py to __main__.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/actions.py to actions.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/cli.py to cli.cpython-311.pyc +byte-compiling /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard/formatter.py to formatter.cpython-311.pyc running install_egg_info Copying khard.egg-info to /build/reproducible-path/khard-0.19.1/debian/khard/usr/lib/python3.11/dist-packages/khard-0.19.1.egg-info Skipping SOURCES.txt @@ -2187,12 +2223,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3836759/tmp/hooks/B01_cleanup finished 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/1959565 and its subdirectories -I: Current time: Thu Jul 3 09:25:57 -12 2025 -I: pbuilder-time-stamp: 1751577957 +I: removing directory /srv/workspace/pbuilder/3836759 and its subdirectories +I: Current time: Sat Jun 1 05:07:17 +14 2024 +I: pbuilder-time-stamp: 1717168037