travis_fold:start:worker_info [0K[33;1mWorker information[0m hostname: 47b3bc80-1508-4287-99a3-4c6b4f9693f1@1.worker-com-oss-6ff4ffc9b7-55dr6.gce-production-3 version: v6.2.24 https://github.com/travis-ci/worker/tree/ee57d650a7692c1ac03f74ac073d0fd150c9f030 instance: travis-job-44a2ea8c-a218-4cec-a367-bad660a9da6a travis-ci-ubuntu-2204-1732291639-53689d97 (via amqp) startup: 5.78814295s travis_fold:end:worker_info [0Ktravis_time:start:0d36b110 [0Ktravis_time:end:0d36b110:start=1739772657216879066,finish=1739772657619945027,duration=403065961,event=no_world_writable_dirs [0Ktravis_time:start:0e3ccbd8 [0Ktravis_time:end:0e3ccbd8:start=1739772657623915134,finish=1739772657633214629,duration=9299495,event=agent [0Ktravis_time:start:2ce2da9d [0Ktravis_time:end:2ce2da9d:start=1739772657636311054,finish=1739772657638708484,duration=2397430,event=check_unsupported [0Ktravis_time:start:20c06251 [0Ktravis_fold:start:system_info [0K[33;1mBuild system information[0m Build language: python Build dist: jammy Build id: 274236385 Job id: 630633626 Runtime kernel version: 6.8.0-1018-gcp VM: default travis-build version: 6b157a1c [34m[1mBuild image provisioning date and time[0m Fri Nov 22 04:28:26 PM UTC 2024 [34m[1mOperating System Details[0m Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy [34m[1mSystemd Version[0m systemd 249 (249.11-0ubuntu3.12) [34m[1mCookbooks Version[0m be2ab50 https://github.com/travis-ci/travis-cookbooks/tree/be2ab50 [34m[1mgit version[0m git version 2.47.0 [34m[1mbash version[0m GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu) [34m[1mgcc version[0m gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 [34m[1mdocker version[0m Client: Version: 24.0.7 API version: 1.43 Go version: go1.21.1 Git commit: 24.0.7-0ubuntu2~22.04.1 Built: Wed Mar 13 20:23:54 2024 OS/Arch: linux/amd64 Context: default Server: Engine: Version: 24.0.7 API version: 1.43 (minimum version 1.12) Go version: go1.21.1 Git commit: 24.0.7-0ubuntu2~22.04.1 Built: Wed Mar 13 20:23:54 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.7.12 GitCommit: runc: Version: 1.1.12-0ubuntu2~22.04.1 GitCommit: docker-init: Version: 0.19.0 GitCommit: [34m[1mclang version[0m clang version 18.1.8 [34m[1mjq version[0m jq-1.7.1 [34m[1mbats version[0m Bats 1.11.0 [34m[1mshellcheck version[0m 0.10.0 [34m[1mshfmt version[0m v3.8.0 [34m[1mccache version[0m 4.5.1 [34m[1mcmake version[0m cmake version 3.29.0 [34m[1mheroku version[0m heroku/9.5.0 linux-x64 node-v16.20.2 [34m[1mimagemagick version[0m Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org [34m[1mmd5deep version[0m 4.4 [34m[1mmercurial version[0m version 6.5.2 [34m[1mmysql version[0m mysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu)) [34m[1mopenssl version[0m OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022) [34m[1mpacker version[0m Packer v1.11.2 [34m[1mpostgresql client version[0m psql (PostgreSQL) 14.13 (Ubuntu 14.13-0ubuntu0.22.04.1) [34m[1mragel version[0m Ragel State Machine Compiler version 6.10 March 2017 [34m[1msudo version[0m 1.9.9 [34m[1mgzip version[0m gzip 1.10 [34m[1mzip version[0m Zip 3.0 [34m[1mvim version[0m VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Oct 16 2024 17:27:14) [34m[1miptables version[0m iptables v1.8.7 (nf_tables) [34m[1mcurl version[0m curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.18 [34m[1mwget version[0m GNU Wget 1.21.2 built on linux-gnu. [34m[1mrsync version[0m rsync version 3.2.7 protocol version 31 [34m[1mnvm version[0m 0.40.1 [34m[1mperlbrew version[0m /home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95 [34m[1mphpenv version[0m rbenv 1.3.0 [34m[1mrvm version[0m rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io] [34m[1mdefault ruby version[0m ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux] [34m[1mdefault python version[0m Python 3.10.14 [34m[1mElasticSearch version[0m 7.16.3 [34m[1mInstalled Firefox version[0m firefox 99.0 [34m[1mMongoDB version[0m MongoDB 6.0.19 [34m[1mant version[0m Apache Ant(TM) version 1.10.12 compiled on January 17 1970 [34m[1mmvn version[0m Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9) [34m[1mgradle version[0m Gradle 8.3! [34m[1mlein version[0m Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM [34m[1mPre-installed Node.js versions[0m v10.24.1 v12.22.12 v14.21.3 v16.15 v16.20.2 v18.20.3 v18.20.5 v20.18.1 v22.11.0 v4.9.1 v6.17.1 v8.17.0 [34m[1mphpenv versions[0m system 8.1 * 8.1.2 (set by /home/travis/.phpenv/version) hhvm-stable hhvm [34m[1mcomposer --version[0m Composer version 2.3.7 2022-06-06 16:43:28 [34m[1mPre-installed Ruby versions[0m ruby-2.7.8 ruby-3.3.5 travis_fold:end:system_info [0K travis_time:end:20c06251:start=1739772657641945297,finish=1739772657649767956,duration=7822659,event=show_system_info [0Ktravis_time:start:2d2a455c [0Ktravis_time:end:2d2a455c:start=1739772657654050908,finish=1739772657681005188,duration=26954280,event=rm_riak_source [0Ktravis_time:start:017f145c [0Ktravis_time:end:017f145c:start=1739772657684651036,finish=1739772657690542092,duration=5891056,event=fix_rwky_redis [0Ktravis_time:start:0cdf9c59 [0Ktravis_time:end:0cdf9c59:start=1739772657694225521,finish=1739772658275586276,duration=581360755,event=wait_for_network [0Ktravis_time:start:18413868 [0Ktravis_time:end:18413868:start=1739772658279553855,finish=1739772658588630941,duration=309077086,event=update_apt_keys [0Ktravis_time:start:1168ca9d [0Ktravis_time:end:1168ca9d:start=1739772658591932322,finish=1739772658657419558,duration=65487236,event=fix_hhvm_source [0Ktravis_time:start:209dc4d2 [0Ktravis_time:end:209dc4d2:start=1739772658660930640,finish=1739772658663795540,duration=2864900,event=update_mongo_arch [0Ktravis_time:start:09cf7340 [0Ktravis_time:end:09cf7340:start=1739772658667037583,finish=1739772658705919427,duration=38881844,event=fix_sudo_enabled_trusty [0Ktravis_time:start:1e34cb50 [0Ktravis_time:end:1e34cb50:start=1739772658709363671,finish=1739772658711770148,duration=2406477,event=update_glibc [0Ktravis_time:start:30bc12d3 [0Ktravis_time:end:30bc12d3:start=1739772658715072648,finish=1739772658751019753,duration=35947105,event=clean_up_path [0Ktravis_time:start:28925fa6 [0Ktravis_time:end:28925fa6:start=1739772658754299393,finish=1739772658770951944,duration=16652551,event=fix_resolv_conf [0Ktravis_time:start:17c8a658 [0Ktravis_time:end:17c8a658:start=1739772658774706800,finish=1739772658809565262,duration=34858462,event=fix_etc_hosts [0Ktravis_time:start:2742c742 [0Ktravis_time:end:2742c742:start=1739772658812775151,finish=1739772658821790312,duration=9015161,event=fix_mvn_settings_xml [0Ktravis_time:start:0698fb20 [0Ktravis_time:end:0698fb20:start=1739772658824778590,finish=1739772658839430914,duration=14652324,event=no_ipv6_localhost [0Ktravis_time:start:06418b48 [0Ktravis_time:end:06418b48:start=1739772658842817557,finish=1739772658845166920,duration=2349363,event=fix_etc_mavenrc [0Ktravis_time:start:090fa3ce [0KOK travis_time:end:090fa3ce:start=1739772658848195637,finish=1739772659306369415,duration=458173778,event=fix_perforce_key [0Ktravis_time:start:1145ae66 [0Ktravis_time:end:1145ae66:start=1739772659309651114,finish=1739772659312678080,duration=3026966,event=fix_wwdr_certificate [0Ktravis_time:start:23eecfdb [0Ktravis_time:end:23eecfdb:start=1739772659315780144,finish=1739772659381435903,duration=65655759,event=put_localhost_first [0Ktravis_time:start:0046aa94 [0Ktravis_time:end:0046aa94:start=1739772659385156779,finish=1739772659390071654,duration=4914875,event=home_paths [0Ktravis_time:start:050a8ec8 [0Ktravis_time:end:050a8ec8:start=1739772659393371516,finish=1739772659411759339,duration=18387823,event=disable_initramfs [0Ktravis_time:start:18a4dca0 [0Ktravis_time:end:18a4dca0:start=1739772659415401177,finish=1739772659575483752,duration=160082575,event=disable_ssh_roaming [0Ktravis_time:start:00330c04 [0Ktravis_time:end:00330c04:start=1739772659579164725,finish=1739772659581700971,duration=2536246,event=debug_tools [0Ktravis_time:start:37f030f5 [0Ktravis_time:end:37f030f5:start=1739772659585068167,finish=1739772659588528450,duration=3460283,event=uninstall_oclint [0Ktravis_time:start:0114c598 [0Ktravis_time:end:0114c598:start=1739772659591919599,finish=1739772659595351896,duration=3432297,event=rvm_use [0Ktravis_time:start:2ea5c499 [0Ktravis_time:end:2ea5c499:start=1739772659598743278,finish=1739772659611510010,duration=12766732,event=rm_etc_boto_cfg [0Ktravis_time:start:171a0dc6 [0Ktravis_time:end:171a0dc6:start=1739772659615014170,finish=1739772659618899999,duration=3885829,event=rm_oraclejdk8_symlink [0Ktravis_time:start:0b35de0e [0Ktravis_time:end:0b35de0e:start=1739772659622203209,finish=1739772659755512659,duration=133309450,event=enable_i386 [0Ktravis_time:start:079ff050 [0Ktravis_time:end:079ff050:start=1739772659758825595,finish=1739772659762960450,duration=4134855,event=update_rubygems [0Ktravis_time:start:031b6055 [0Ktravis_time:end:031b6055:start=1739772659766357645,finish=1739772660842040608,duration=1075682963,event=ensure_path_components [0Ktravis_time:start:073e5fd0 [0Ktravis_time:end:073e5fd0:start=1739772660845773251,finish=1739772660848329568,duration=2556317,event=redefine_curl [0Ktravis_time:start:019b89b8 [0Ktravis_time:end:019b89b8:start=1739772660851581581,finish=1739772660853874837,duration=2293256,event=nonblock_pipe [0Ktravis_time:start:1aa33aa7 [0Ktravis_time:end:1aa33aa7:start=1739772660857153580,finish=1739772682360346125,duration=21503192545,event=apt_get_update [0Ktravis_time:start:210d85b2 [0Ktravis_time:end:210d85b2:start=1739772682364018386,finish=1739772682366477212,duration=2458826,event=deprecate_xcode_64 [0Ktravis_time:start:07e88f48 [0Ktravis_time:end:07e88f48:start=1739772682369777964,finish=1739772686130798474,duration=3761020510,event=update_heroku [0Ktravis_time:start:0107c87d [0Ktravis_time:end:0107c87d:start=1739772686134359005,finish=1739772686136710441,duration=2351436,event=shell_session_update [0Ktravis_time:start:06a36148 [0Ktravis_fold:start:docker_mtu_and_registry_mirrors [0Ktravis_fold:end:docker_mtu_and_registry_mirrors [0Ktravis_time:end:06a36148:start=1739772686139750051,finish=1739772690034290140,duration=3894540089,event=set_docker_mtu_and_registry_mirrors [0Ktravis_time:start:109be104 [0Ktravis_fold:start:Docker [0Ktravis_fold:end:Docker [0Ktravis_time:end:109be104:start=1739772690037622454,finish=1739772690040004694,duration=2382240,event=docker_config [0Ktravis_time:start:1a2fd958 [0Ktravis_fold:start:resolvconf [0Ktravis_fold:end:resolvconf [0Ktravis_time:end:1a2fd958:start=1739772690042951245,finish=1739772690115169567,duration=72218322,event=resolvconf [0Ktravis_time:start:1082f742 [0Ktravis_time:end:1082f742:start=1739772690118847872,finish=1739772690335443824,duration=216595952,event=maven_central_mirror [0Ktravis_time:start:053b23a2 [0Ktravis_time:end:053b23a2:start=1739772690338843469,finish=1739772690464668677,duration=125825208,event=maven_https [0Ktravis_time:start:1fea6ed7 [0Ktravis_time:end:1fea6ed7:start=1739772690470886679,finish=1739772690473853281,duration=2966602,event=fix_ps4 [0Ktravis_fold:start:ssh_known_hosts.0 [0K[33;1mAdding ssh known hosts[0m $ mkdir -p ${TRAVIS_HOME}/.ssh travis_time:start:1a913bed [0K$ ssh-keyscan -t $TRAVIS_SSH_KEY_TYPES -H localhost 2>&1 | tee -a ${TRAVIS_HOME}/.ssh/known_hosts # localhost:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10 # localhost:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10 # localhost:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10 |1|S1X2OTW66RyC1nZYgbGFQiRK478=|L31zoO7E57OO9/k19JGwLIz+95M= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3HFI6rtIj/GuMEyW1RTjiBc7+J7Vpt8P4SH+v052iAYR3E2U2zZLGrmdvSRbQlmT/gV35L078opxGKb+NYDnZ6pgeb9/id4k5UEKKtLriarKEchv1BtOhmwy+7dFV0sGqGMfcrUQDpFweJUThsiRMAFN+CguOsLIZBz6n5TIXAloW/jewoOtylEfINfTJEODKvaPl7gYORLYUpzLGuldjvyxos+FILF+Hsb38rOu1YLjWiEVk25KzQ1BHocZwk2Yin50wQHcm3JfXb95xFRGvJdCZGwICNAfr66u9tAXzG3eYOhd178trKl16GZZeXOXP7y0Sgw9GQFToBF+ybybZHq3zj5r0KTqyKatnh3ejg7K702pQpITKL+FtmHNg9SYWhSK1awwrdoTrVTNvEYF73OOxzX0cUEM24DwgXZ9IjULbaEXCRPL+zxuDMILjid/qLyWUE9zDf21CAiFI2jgwF6Zf+OnhuzpG+lvI2pR4Q2Ks1vfxchvchgCruCtSvVU= |1|0+d/15XyTTKPS94Fw766jx4i+C4=|MhJtxb1TlaDAHjEYEG9wlCkIyvU= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMIe0gbM8XDsBJmBnij8+Cb/EpVgrtMJzR3JRv5h+tdVqFRtMiz5zud9VJwPN3Yke/gSetvEWasxJG2rHVLoupc= travis_time:end:1a913bed:start=1739772690481945789,finish=1739772690541421013,duration=59475224,event=checkout [0Ktravis_fold:end:ssh_known_hosts.0 [0Ktravis_time:start:0a815ac4 [0K travis_fold:start:git.checkout [0Ktravis_time:start:1d0bdc5a [0Ktravis_time:end:1d0bdc5a:start=1739772690549174593,finish=1739772690561392505,duration=12217912,event=checkout [0Ktravis_time:start:026c1132 [0K$ git clone --depth=50 https://github.com/bit-team/backintime.git bit-team/backintime Cloning into 'bit-team/backintime'... remote: Enumerating objects: 932, done.[K remote: Counting objects: 0% (1/932)[K remote: Counting objects: 1% (10/932)[K remote: Counting objects: 2% (19/932)[K remote: Counting objects: 3% (28/932)[K remote: Counting objects: 4% (38/932)[K remote: Counting objects: 5% (47/932)[K remote: Counting objects: 6% (56/932)[K remote: Counting objects: 7% (66/932)[K remote: Counting objects: 8% (75/932)[K remote: Counting objects: 9% (84/932)[K remote: Counting objects: 10% (94/932)[K remote: Counting objects: 11% (103/932)[K remote: Counting objects: 12% (112/932)[K remote: Counting objects: 13% (122/932)[K remote: Counting objects: 14% (131/932)[K remote: Counting objects: 15% (140/932)[K remote: Counting objects: 16% (150/932)[K remote: Counting objects: 17% (159/932)[K remote: Counting objects: 18% (168/932)[K remote: Counting objects: 19% (178/932)[K remote: Counting objects: 20% (187/932)[K remote: Counting objects: 21% (196/932)[K remote: Counting objects: 22% (206/932)[K remote: Counting objects: 23% (215/932)[K remote: Counting objects: 24% (224/932)[K remote: Counting objects: 25% (233/932)[K remote: Counting objects: 26% (243/932)[K remote: Counting objects: 27% (252/932)[K remote: Counting objects: 28% (261/932)[K remote: Counting objects: 29% (271/932)[K remote: Counting objects: 30% (280/932)[K remote: Counting objects: 31% (289/932)[K remote: Counting objects: 32% (299/932)[K remote: Counting objects: 33% (308/932)[K remote: Counting objects: 34% (317/932)[K remote: Counting objects: 35% (327/932)[K remote: Counting objects: 36% (336/932)[K remote: Counting objects: 37% (345/932)[K remote: Counting objects: 38% (355/932)[K remote: Counting objects: 39% (364/932)[K remote: Counting objects: 40% (373/932)[K remote: Counting objects: 41% (383/932)[K remote: Counting objects: 42% (392/932)[K remote: Counting objects: 43% (401/932)[K remote: Counting objects: 44% (411/932)[K remote: Counting objects: 45% (420/932)[K remote: Counting objects: 46% (429/932)[K remote: Counting objects: 47% (439/932)[K remote: Counting objects: 48% (448/932)[K remote: Counting objects: 49% (457/932)[K remote: Counting objects: 50% (466/932)[K remote: Counting objects: 51% (476/932)[K remote: Counting objects: 52% (485/932)[K remote: Counting objects: 53% (494/932)[K remote: Counting objects: 54% (504/932)[K remote: Counting objects: 55% (513/932)[K remote: Counting objects: 56% (522/932)[K remote: Counting objects: 57% (532/932)[K remote: Counting objects: 58% (541/932)[K remote: Counting objects: 59% (550/932)[K remote: Counting objects: 60% (560/932)[K remote: Counting objects: 61% (569/932)[K remote: Counting objects: 62% (578/932)[K remote: Counting objects: 63% (588/932)[K remote: Counting objects: 64% (597/932)[K remote: Counting objects: 65% (606/932)[K remote: Counting objects: 66% (616/932)[K remote: Counting objects: 67% (625/932)[K remote: Counting objects: 68% (634/932)[K remote: Counting objects: 69% (644/932)[K remote: Counting objects: 70% (653/932)[K remote: Counting objects: 71% (662/932)[K remote: Counting objects: 72% (672/932)[K remote: Counting objects: 73% (681/932)[K remote: Counting objects: 74% (690/932)[K remote: Counting objects: 75% (699/932)[K remote: Counting objects: 76% (709/932)[K remote: Counting objects: 77% (718/932)[K remote: Counting objects: 78% (727/932)[K remote: Counting objects: 79% (737/932)[K remote: Counting objects: 80% (746/932)[K remote: Counting objects: 81% (755/932)[K remote: Counting objects: 82% (765/932)[K remote: Counting objects: 83% (774/932)[K remote: Counting objects: 84% (783/932)[K remote: Counting objects: 85% (793/932)[K remote: Counting objects: 86% (802/932)[K remote: Counting objects: 87% (811/932)[K remote: Counting objects: 88% (821/932)[K remote: Counting objects: 89% (830/932)[K remote: Counting objects: 90% (839/932)[K remote: Counting objects: 91% (849/932)[K remote: Counting objects: 92% (858/932)[K remote: Counting objects: 93% (867/932)[K remote: Counting objects: 94% (877/932)[K remote: Counting objects: 95% (886/932)[K remote: Counting objects: 96% (895/932)[K remote: Counting objects: 97% (905/932)[K remote: Counting objects: 98% (914/932)[K remote: Counting objects: 99% (923/932)[K remote: Counting objects: 100% (932/932)[K remote: Counting objects: 100% (932/932), done.[K remote: Compressing objects: 0% (1/558)[K remote: Compressing objects: 1% (6/558)[K remote: Compressing objects: 2% (12/558)[K remote: Compressing objects: 3% (17/558)[K remote: Compressing objects: 4% (23/558)[K remote: Compressing objects: 5% (28/558)[K remote: Compressing objects: 6% (34/558)[K remote: Compressing objects: 7% (40/558)[K remote: Compressing objects: 8% (45/558)[K remote: Compressing objects: 9% (51/558)[K remote: Compressing objects: 10% (56/558)[K remote: Compressing objects: 11% (62/558)[K remote: Compressing objects: 12% (67/558)[K remote: Compressing objects: 13% (73/558)[K remote: Compressing objects: 14% (79/558)[K remote: Compressing objects: 15% (84/558)[K remote: Compressing objects: 16% (90/558)[K remote: Compressing objects: 17% (95/558)[K remote: Compressing objects: 18% (101/558)[K remote: Compressing objects: 19% (107/558)[K remote: Compressing objects: 20% (112/558)[K remote: Compressing objects: 21% (118/558)[K remote: Compressing objects: 22% (123/558)[K remote: Compressing objects: 23% (129/558)[K remote: Compressing objects: 24% (134/558)[K remote: Compressing objects: 25% (140/558)[K remote: Compressing objects: 26% (146/558)[K remote: Compressing objects: 27% (151/558)[K remote: Compressing objects: 28% (157/558)[K remote: Compressing objects: 29% (162/558)[K remote: Compressing objects: 30% (168/558)[K remote: Compressing objects: 31% (173/558)[K remote: Compressing objects: 32% (179/558)[K remote: Compressing objects: 33% (185/558)[K remote: Compressing objects: 34% (190/558)[K remote: Compressing objects: 35% (196/558)[K remote: Compressing objects: 36% (201/558)[K remote: Compressing objects: 37% (207/558)[K remote: Compressing objects: 38% (213/558)[K remote: Compressing objects: 39% (218/558)[K remote: Compressing objects: 40% (224/558)[K remote: Compressing objects: 41% (229/558)[K remote: Compressing objects: 42% (235/558)[K remote: Compressing objects: 43% (240/558)[K remote: Compressing objects: 44% (246/558)[K remote: Compressing objects: 45% (252/558)[K remote: Compressing objects: 46% (257/558)[K remote: Compressing objects: 47% (263/558)[K remote: Compressing objects: 48% (268/558)[K remote: Compressing objects: 49% (274/558)[K remote: Compressing objects: 50% (279/558)[K remote: Compressing objects: 51% (285/558)[K remote: Compressing objects: 52% (291/558)[K remote: Compressing objects: 53% (296/558)[K remote: Compressing objects: 54% (302/558)[K remote: Compressing objects: 55% (307/558)[K remote: Compressing objects: 56% (313/558)[K remote: Compressing objects: 57% (319/558)[K remote: Compressing objects: 58% (324/558)[K remote: Compressing objects: 59% (330/558)[K remote: Compressing objects: 60% (335/558)[K remote: Compressing objects: 61% (341/558)[K remote: Compressing objects: 62% (346/558)[K remote: Compressing objects: 63% (352/558)[K remote: Compressing objects: 64% (358/558)[K remote: Compressing objects: 65% (363/558)[K remote: Compressing objects: 66% (369/558)[K remote: Compressing objects: 67% (374/558)[K remote: Compressing objects: 68% (380/558)[K remote: Compressing objects: 69% (386/558)[K remote: Compressing objects: 70% (391/558)[K remote: Compressing objects: 71% (397/558)[K remote: Compressing objects: 72% (402/558)[K remote: Compressing objects: 73% (408/558)[K remote: Compressing objects: 74% (413/558)[K remote: Compressing objects: 75% (419/558)[K remote: Compressing objects: 76% (425/558)[K remote: Compressing objects: 77% (430/558)[K remote: Compressing objects: 78% (436/558)[K remote: Compressing objects: 79% (441/558)[K remote: Compressing objects: 80% (447/558)[K remote: Compressing objects: 81% (452/558)[K remote: Compressing objects: 82% (458/558)[K remote: Compressing objects: 83% (464/558)[K remote: Compressing objects: 84% (469/558)[K remote: Compressing objects: 85% (475/558)[K remote: Compressing objects: 86% (480/558)[K remote: Compressing objects: 87% (486/558)[K remote: Compressing objects: 88% (492/558)[K remote: Compressing objects: 89% (497/558)[K remote: Compressing objects: 90% (503/558)[K remote: Compressing objects: 91% (508/558)[K remote: Compressing objects: 92% (514/558)[K remote: Compressing objects: 93% (519/558)[K remote: Compressing objects: 94% (525/558)[K remote: Compressing objects: 95% (531/558)[K remote: Compressing objects: 96% (536/558)[K remote: Compressing objects: 97% (542/558)[K remote: Compressing objects: 98% (547/558)[K remote: Compressing objects: 99% (553/558)[K remote: Compressing objects: 100% (558/558)[K remote: Compressing objects: 100% (558/558), done.[K Receiving objects: 0% (1/932) Receiving objects: 1% (10/932) Receiving objects: 2% (19/932) Receiving objects: 3% (28/932) Receiving objects: 4% (38/932) Receiving objects: 5% (47/932) Receiving objects: 6% (56/932) Receiving objects: 7% (66/932) Receiving objects: 8% (75/932) Receiving objects: 9% (84/932) Receiving objects: 10% (94/932) Receiving objects: 11% (103/932) Receiving objects: 12% (112/932) Receiving objects: 13% (122/932) Receiving objects: 14% (131/932) Receiving objects: 15% (140/932) Receiving objects: 16% (150/932) Receiving objects: 17% (159/932) Receiving objects: 18% (168/932) Receiving objects: 19% (178/932) Receiving objects: 20% (187/932) Receiving objects: 21% (196/932) Receiving objects: 22% (206/932) Receiving objects: 23% (215/932) Receiving objects: 24% (224/932) Receiving objects: 25% (233/932) Receiving objects: 26% (243/932) Receiving objects: 27% (252/932) Receiving objects: 28% (261/932) Receiving objects: 29% (271/932) Receiving objects: 30% (280/932) Receiving objects: 31% (289/932) Receiving objects: 32% (299/932) Receiving objects: 33% (308/932) Receiving objects: 34% (317/932) Receiving objects: 35% (327/932) Receiving objects: 36% (336/932) Receiving objects: 37% (345/932) Receiving objects: 38% (355/932) Receiving objects: 39% (364/932) Receiving objects: 40% (373/932) Receiving objects: 41% (383/932) Receiving objects: 42% (392/932) Receiving objects: 43% (401/932) Receiving objects: 44% (411/932) Receiving objects: 45% (420/932) Receiving objects: 46% (429/932) Receiving objects: 47% (439/932) Receiving objects: 48% (448/932) Receiving objects: 49% (457/932) Receiving objects: 50% (466/932) Receiving objects: 51% (476/932) Receiving objects: 52% (485/932) Receiving objects: 53% (494/932) Receiving objects: 54% (504/932) Receiving objects: 55% (513/932) Receiving objects: 56% (522/932) Receiving objects: 57% (532/932) Receiving objects: 58% (541/932) Receiving objects: 59% (550/932) Receiving objects: 60% (560/932) Receiving objects: 61% (569/932) Receiving objects: 62% (578/932) Receiving objects: 63% (588/932) Receiving objects: 64% (597/932) Receiving objects: 65% (606/932) Receiving objects: 66% (616/932) Receiving objects: 67% (625/932) Receiving objects: 68% (634/932) Receiving objects: 69% (644/932) Receiving objects: 70% (653/932) Receiving objects: 71% (662/932) Receiving objects: 72% (672/932) Receiving objects: 73% (681/932) Receiving objects: 74% (690/932) Receiving objects: 75% (699/932) Receiving objects: 76% (709/932) Receiving objects: 77% (718/932) Receiving objects: 78% (727/932) Receiving objects: 79% (737/932) Receiving objects: 80% (746/932) Receiving objects: 81% (755/932) Receiving objects: 82% (765/932) Receiving objects: 83% (774/932) Receiving objects: 84% (783/932) Receiving objects: 85% (793/932) remote: Total 932 (delta 541), reused 632 (delta 345), pack-reused 0 (from 0)[K Receiving objects: 86% (802/932) Receiving objects: 87% (811/932) Receiving objects: 88% (821/932) Receiving objects: 89% (830/932) Receiving objects: 90% (839/932) Receiving objects: 91% (849/932) Receiving objects: 92% (858/932) Receiving objects: 93% (867/932) Receiving objects: 94% (877/932) Receiving objects: 95% (886/932) Receiving objects: 96% (895/932) Receiving objects: 97% (905/932) Receiving objects: 98% (914/932) Receiving objects: 99% (923/932) Receiving objects: 100% (932/932) Receiving objects: 100% (932/932), 4.82 MiB | 23.05 MiB/s, done. Resolving deltas: 0% (0/541) Resolving deltas: 1% (6/541) Resolving deltas: 2% (11/541) Resolving deltas: 3% (17/541) Resolving deltas: 4% (22/541) Resolving deltas: 5% (28/541) Resolving deltas: 6% (33/541) Resolving deltas: 7% (38/541) Resolving deltas: 8% (44/541) Resolving deltas: 9% (49/541) Resolving deltas: 10% (55/541) Resolving deltas: 11% (60/541) Resolving deltas: 12% (65/541) Resolving deltas: 13% (71/541) Resolving deltas: 14% (76/541) Resolving deltas: 15% (82/541) Resolving deltas: 16% (87/541) Resolving deltas: 17% (92/541) Resolving deltas: 18% (98/541) Resolving deltas: 19% (103/541) Resolving deltas: 20% (109/541) Resolving deltas: 21% (114/541) Resolving deltas: 22% (120/541) Resolving deltas: 23% (125/541) Resolving deltas: 24% (130/541) Resolving deltas: 25% (136/541) Resolving deltas: 26% (141/541) Resolving deltas: 27% (147/541) Resolving deltas: 28% (152/541) Resolving deltas: 29% (157/541) Resolving deltas: 30% (163/541) Resolving deltas: 31% (168/541) Resolving deltas: 32% (174/541) Resolving deltas: 33% (179/541) Resolving deltas: 34% (184/541) Resolving deltas: 35% (190/541) Resolving deltas: 36% (195/541) Resolving deltas: 37% (201/541) Resolving deltas: 38% (206/541) Resolving deltas: 39% (211/541) Resolving deltas: 40% (217/541) Resolving deltas: 41% (222/541) Resolving deltas: 42% (228/541) Resolving deltas: 43% (233/541) Resolving deltas: 44% (239/541) Resolving deltas: 45% (244/541) Resolving deltas: 46% (249/541) Resolving deltas: 47% (255/541) Resolving deltas: 48% (260/541) Resolving deltas: 49% (266/541) Resolving deltas: 50% (271/541) Resolving deltas: 51% (276/541) Resolving deltas: 52% (282/541) Resolving deltas: 53% (287/541) Resolving deltas: 54% (293/541) Resolving deltas: 55% (298/541) Resolving deltas: 56% (303/541) Resolving deltas: 57% (309/541) Resolving deltas: 58% (314/541) Resolving deltas: 59% (320/541) Resolving deltas: 60% (325/541) Resolving deltas: 61% (331/541) Resolving deltas: 62% (336/541) Resolving deltas: 63% (341/541) Resolving deltas: 64% (347/541) Resolving deltas: 65% (352/541) Resolving deltas: 66% (358/541) Resolving deltas: 67% (363/541) Resolving deltas: 68% (368/541) Resolving deltas: 69% (374/541) Resolving deltas: 70% (379/541) Resolving deltas: 71% (385/541) Resolving deltas: 72% (390/541) Resolving deltas: 73% (395/541) Resolving deltas: 74% (401/541) Resolving deltas: 75% (406/541) Resolving deltas: 76% (412/541) Resolving deltas: 77% (417/541) Resolving deltas: 78% (422/541) Resolving deltas: 79% (428/541) Resolving deltas: 80% (433/541) Resolving deltas: 81% (439/541) Resolving deltas: 82% (444/541) Resolving deltas: 83% (450/541) Resolving deltas: 84% (455/541) Resolving deltas: 85% (460/541) Resolving deltas: 86% (466/541) Resolving deltas: 87% (471/541) Resolving deltas: 88% (477/541) Resolving deltas: 89% (482/541) Resolving deltas: 90% (487/541) Resolving deltas: 91% (493/541) Resolving deltas: 92% (498/541) Resolving deltas: 93% (504/541) Resolving deltas: 94% (509/541) Resolving deltas: 95% (514/541) Resolving deltas: 96% (520/541) Resolving deltas: 97% (525/541) Resolving deltas: 98% (531/541) Resolving deltas: 99% (536/541) Resolving deltas: 100% (541/541) Resolving deltas: 100% (541/541), done. travis_time:end:026c1132:start=1739772690565554811,finish=1739772691682108436,duration=1116553625,event=checkout [0K$ cd bit-team/backintime travis_time:start:1211cf10 [0K$ git fetch origin +refs/pull/2039/merge: --depth=50 remote: Enumerating objects: 47, done.[K remote: Counting objects: 2% (1/42)[K remote: Counting objects: 4% (2/42)[K remote: Counting objects: 7% (3/42)[K remote: Counting objects: 9% (4/42)[K remote: Counting objects: 11% (5/42)[K remote: Counting objects: 14% (6/42)[K remote: Counting objects: 16% (7/42)[K remote: Counting objects: 19% (8/42)[K remote: Counting objects: 21% (9/42)[K remote: Counting objects: 23% (10/42)[K remote: Counting objects: 26% (11/42)[K remote: Counting objects: 28% (12/42)[K remote: Counting objects: 30% (13/42)[K remote: Counting objects: 33% (14/42)[K remote: Counting objects: 35% (15/42)[K remote: Counting objects: 38% (16/42)[K remote: Counting objects: 40% (17/42)[K remote: Counting objects: 42% (18/42)[K remote: Counting objects: 45% (19/42)[K remote: Counting objects: 47% (20/42)[K remote: Counting objects: 50% (21/42)[K remote: Counting objects: 52% (22/42)[K remote: Counting objects: 54% (23/42)[K remote: Counting objects: 57% (24/42)[K remote: Counting objects: 59% (25/42)[K remote: Counting objects: 61% (26/42)[K remote: Counting objects: 64% (27/42)[K remote: Counting objects: 66% (28/42)[K remote: Counting objects: 69% (29/42)[K remote: Counting objects: 71% (30/42)[K remote: Counting objects: 73% (31/42)[K remote: Counting objects: 76% (32/42)[K remote: Counting objects: 78% (33/42)[K remote: Counting objects: 80% (34/42)[K remote: Counting objects: 83% (35/42)[K remote: Counting objects: 85% (36/42)[K remote: Counting objects: 88% (37/42)[K remote: Counting objects: 90% (38/42)[K remote: Counting objects: 92% (39/42)[K remote: Counting objects: 95% (40/42)[K remote: Counting objects: 97% (41/42)[K remote: Counting objects: 100% (42/42)[K remote: Counting objects: 100% (42/42), done.[K remote: Compressing objects: 7% (1/14)[K remote: Compressing objects: 14% (2/14)[K remote: Compressing objects: 21% (3/14)[K remote: Compressing objects: 28% (4/14)[K remote: Compressing objects: 35% (5/14)[K remote: Compressing objects: 42% (6/14)[K remote: Compressing objects: 50% (7/14)[K remote: Compressing objects: 57% (8/14)[K remote: Compressing objects: 64% (9/14)[K remote: Compressing objects: 71% (10/14)[K remote: Compressing objects: 78% (11/14)[K remote: Compressing objects: 85% (12/14)[K remote: Compressing objects: 92% (13/14)[K remote: Compressing objects: 100% (14/14)[K remote: Compressing objects: 100% (14/14), done.[K remote: Total 33 (delta 25), reused 26 (delta 19), pack-reused 0 (from 0)[K Unpacking objects: 3% (1/33) Unpacking objects: 6% (2/33) Unpacking objects: 9% (3/33) Unpacking objects: 12% (4/33) Unpacking objects: 15% (5/33) Unpacking objects: 18% (6/33) Unpacking objects: 21% (7/33) Unpacking objects: 24% (8/33) Unpacking objects: 27% (9/33) Unpacking objects: 30% (10/33) Unpacking objects: 33% (11/33) Unpacking objects: 36% (12/33) Unpacking objects: 39% (13/33) Unpacking objects: 42% (14/33) Unpacking objects: 45% (15/33) Unpacking objects: 48% (16/33) Unpacking objects: 51% (17/33) Unpacking objects: 54% (18/33) Unpacking objects: 57% (19/33) Unpacking objects: 60% (20/33) Unpacking objects: 63% (21/33) Unpacking objects: 66% (22/33) Unpacking objects: 69% (23/33) Unpacking objects: 72% (24/33) Unpacking objects: 75% (25/33) Unpacking objects: 78% (26/33) Unpacking objects: 81% (27/33) Unpacking objects: 84% (28/33) Unpacking objects: 87% (29/33) Unpacking objects: 90% (30/33) Unpacking objects: 93% (31/33) Unpacking objects: 96% (32/33) Unpacking objects: 100% (33/33) Unpacking objects: 100% (33/33), 4.91 KiB | 359.00 KiB/s, done. From https://github.com/bit-team/backintime * branch refs/pull/2039/merge -> FETCH_HEAD travis_time:end:1211cf10:start=1739772691686410183,finish=1739772691893277151,duration=206866968,event=checkout [0K$ git checkout -qf FETCH_HEAD travis_fold:end:git.checkout [0K travis_time:end:1211cf10:start=1739772691686410183,finish=1739772691968363702,duration=281953519,event=checkout [0Ktravis_time:start:05b802ba [0K [33;1mSetting environment variables from .travis.yml[0m $ export PYTHONUNBUFFERED=1 travis_time:end:05b802ba:start=1739772691972362624,finish=1739772691975840012,duration=3477388,event=env [0Ktravis_time:start:0c46664a [0K$ source ~/virtualenv/python3.12/bin/activate travis_time:end:0c46664a:start=1739772691979934380,finish=1739772691988369565,duration=8435185,event= [0K$ python --version Python 3.12.4 $ pip --version pip 24.1.2 from /home/travis/virtualenv/python3.12.4/lib/python3.12/site-packages/pip (python 3.12) travis_fold:start:before_install.1 [0Ktravis_time:start:0cbb2d24 [0K$ sudo rm -f /etc/apt/sources.list.d/mongodb*.list travis_time:end:0cbb2d24:start=1739772692683578950,finish=1739772692696518980,duration=12940030,event=before_install [0Ktravis_fold:end:before_install.1 [0Ktravis_fold:start:before_install.2 [0Ktravis_time:start:12db0bee [0K$ sudo apt-key del 90CFB1F5 Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). OK travis_time:end:12db0bee:start=1739772692700673314,finish=1739772692831842430,duration=131169116,event=before_install [0Ktravis_fold:end:before_install.2 [0Ktravis_fold:start:before_install.3 [0Ktravis_time:start:1bf13538 [0K$ sudo apt-get -qq update W: http://package.perforce.com/apt/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. W: http://apt.postgresql.org/pub/repos/apt/dists/jammy-pgdg/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. travis_time:end:1bf13538:start=1739772692835755594,finish=1739772695602045487,duration=2766289893,event=before_install [0Ktravis_fold:end:before_install.3 [0Ktravis_fold:start:before_install.4 [0Ktravis_time:start:170888c9 [0K$ sudo apt-get install -y sshfs screen util-linux libdbus-1-dev Reading package lists... 0% Reading package lists... 100% Reading package lists... Done Building dependency tree... 0% Building dependency tree... 0% Building dependency tree... 50% Building dependency tree... 50% Building dependency tree... Done Reading state information... 0% Reading state information... 0% Reading state information... Done screen is already the newest version (4.9.0-1). libdbus-1-dev is already the newest version (1.12.20-2ubuntu4.1). util-linux is already the newest version (2.37.2-4ubuntu3.4). The following NEW packages will be installed: sshfs 0 upgraded, 1 newly installed, 0 to remove and 134 not upgraded. Need to get 45.1 kB of archives. After this operation, 126 kB of additional disk space will be used. 0% [Working] Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 sshfs amd64 3.7.1+repack-2 [45.1 kB] 24% [1 sshfs 13.8 kB/45.1 kB 31%] 100% [Working] Fetched 45.1 kB in 0s (118 kB/s) Selecting previously unselected package sshfs. (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 ... 132481 files and directories currently installed.) Preparing to unpack .../sshfs_3.7.1+repack-2_amd64.deb ... Unpacking sshfs (3.7.1+repack-2) ... Setting up sshfs (3.7.1+repack-2) ... Processing triggers for man-db (2.10.2-1) ... NEEDRESTART-VER: 3.5 NEEDRESTART-KCUR: 6.8.0-1018-gcp NEEDRESTART-KEXP: 6.8.0-1018-gcp NEEDRESTART-KSTA: 1 travis_time:end:170888c9:start=1739772695606810456,finish=1739772702381046097,duration=6774235641,event=before_install [0Ktravis_fold:end:before_install.4 [0Ktravis_fold:start:install.1 [0Ktravis_time:start:16a5b534 [0K$ pip install -U pip Requirement already satisfied: pip in /home/travis/virtualenv/python3.12.4/lib/python3.12/site-packages (24.1.2) Collecting pip Downloading pip-25.0.1-py3-none-any.whl.metadata (3.7 kB) Downloading pip-25.0.1-py3-none-any.whl (1.8 MB) Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 24.1.2 Uninstalling pip-24.1.2: Successfully uninstalled pip-24.1.2 Successfully installed pip-25.0.1 travis_time:end:16a5b534:start=1739772702385410190,finish=1739772704837726722,duration=2452316532,event=install [0Ktravis_fold:end:install.1 [0Ktravis_fold:start:install.2 [0Ktravis_time:start:019ff56e [0K$ pip install pylint ruff flake8 pyfakefs keyring Collecting pylint Downloading pylint-3.3.4-py3-none-any.whl.metadata (12 kB) Collecting ruff Downloading ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (25 kB) Collecting flake8 Downloading flake8-7.1.2-py2.py3-none-any.whl.metadata (3.8 kB) Collecting pyfakefs Downloading pyfakefs-5.7.4-py3-none-any.whl.metadata (7.8 kB) Collecting keyring Downloading keyring-25.6.0-py3-none-any.whl.metadata (20 kB) Collecting dill>=0.3.6 (from pylint) Downloading dill-0.3.9-py3-none-any.whl.metadata (10 kB) Requirement already satisfied: platformdirs>=2.2.0 in /home/travis/virtualenv/python3.12.4/lib/python3.12/site-packages (from pylint) (4.2.2) Collecting astroid<=3.4.0-dev0,>=3.3.8 (from pylint) Downloading astroid-3.3.8-py3-none-any.whl.metadata (4.5 kB) Collecting isort!=5.13.0,<7,>=4.2.5 (from pylint) Downloading isort-6.0.0-py3-none-any.whl.metadata (11 kB) Collecting mccabe<0.8,>=0.6 (from pylint) Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB) Collecting tomlkit>=0.10.1 (from pylint) Downloading tomlkit-0.13.2-py3-none-any.whl.metadata (2.7 kB) Collecting pycodestyle<2.13.0,>=2.12.0 (from flake8) Downloading pycodestyle-2.12.1-py2.py3-none-any.whl.metadata (4.5 kB) Collecting pyflakes<3.3.0,>=3.2.0 (from flake8) Downloading pyflakes-3.2.0-py2.py3-none-any.whl.metadata (3.5 kB) Collecting SecretStorage>=3.2 (from keyring) Downloading SecretStorage-3.3.3-py3-none-any.whl.metadata (4.0 kB) Collecting jeepney>=0.4.2 (from keyring) Downloading jeepney-0.8.0-py3-none-any.whl.metadata (1.3 kB) Collecting jaraco.classes (from keyring) Downloading jaraco.classes-3.4.0-py3-none-any.whl.metadata (2.6 kB) Collecting jaraco.functools (from keyring) Downloading jaraco.functools-4.1.0-py3-none-any.whl.metadata (2.9 kB) Collecting jaraco.context (from keyring) Downloading jaraco.context-6.0.1-py3-none-any.whl.metadata (4.1 kB) Collecting cryptography>=2.0 (from SecretStorage>=3.2->keyring) Downloading cryptography-44.0.1-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB) Collecting more-itertools (from jaraco.classes->keyring) Downloading more_itertools-10.6.0-py3-none-any.whl.metadata (37 kB) Collecting cffi>=1.12 (from cryptography>=2.0->SecretStorage>=3.2->keyring) Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB) Collecting pycparser (from cffi>=1.12->cryptography>=2.0->SecretStorage>=3.2->keyring) Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes) Downloading pylint-3.3.4-py3-none-any.whl (522 kB) Downloading ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB) Downloading flake8-7.1.2-py2.py3-none-any.whl (57 kB) Downloading pyfakefs-5.7.4-py3-none-any.whl (228 kB) Downloading keyring-25.6.0-py3-none-any.whl (39 kB) Downloading astroid-3.3.8-py3-none-any.whl (275 kB) Downloading dill-0.3.9-py3-none-any.whl (119 kB) Downloading isort-6.0.0-py3-none-any.whl (94 kB) Downloading jeepney-0.8.0-py3-none-any.whl (48 kB) Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB) Downloading pycodestyle-2.12.1-py2.py3-none-any.whl (31 kB) Downloading pyflakes-3.2.0-py2.py3-none-any.whl (62 kB) Downloading SecretStorage-3.3.3-py3-none-any.whl (15 kB) Downloading tomlkit-0.13.2-py3-none-any.whl (37 kB) Downloading jaraco.classes-3.4.0-py3-none-any.whl (6.8 kB) Downloading jaraco.context-6.0.1-py3-none-any.whl (6.8 kB) Downloading jaraco.functools-4.1.0-py3-none-any.whl (10 kB) Downloading cryptography-44.0.1-cp39-abi3-manylinux_2_34_x86_64.whl (4.2 MB) Downloading more_itertools-10.6.0-py3-none-any.whl (63 kB) Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB) Downloading pycparser-2.22-py3-none-any.whl (117 kB) Installing collected packages: tomlkit, ruff, pyflakes, pyfakefs, pycparser, pycodestyle, more-itertools, mccabe, jeepney, jaraco.context, isort, dill, astroid, pylint, jaraco.functools, jaraco.classes, flake8, cffi, cryptography, SecretStorage, keyring Successfully installed SecretStorage-3.3.3 astroid-3.3.8 cffi-1.17.1 cryptography-44.0.1 dill-0.3.9 flake8-7.1.2 isort-6.0.0 jaraco.classes-3.4.0 jaraco.context-6.0.1 jaraco.functools-4.1.0 jeepney-0.8.0 keyring-25.6.0 mccabe-0.7.0 more-itertools-10.6.0 pycodestyle-2.12.1 pycparser-2.22 pyfakefs-5.7.4 pyflakes-3.2.0 pylint-3.3.4 ruff-0.9.6 tomlkit-0.13.2 travis_time:end:019ff56e:start=1739772704841956075,finish=1739772710629521812,duration=5787565737,event=install [0Ktravis_fold:end:install.2 [0Ktravis_fold:start:install.3 [0Ktravis_time:start:12f114d0 [0K$ pip install pyqt6 dbus-python Collecting pyqt6 Downloading PyQt6-6.8.1-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (2.1 kB) Collecting dbus-python Downloading dbus-python-1.3.2.tar.gz (605 kB) Installing build dependencies ... [?25l- \ | / - \ | done [?25h Getting requirements to build wheel ... [?25ldone [?25h Preparing metadata (pyproject.toml) ... [?25l- \ | / - \ | / - \ | / - \ | / - \ | / - \ | / - \ | / done [?25hCollecting PyQt6-sip<14,>=13.8 (from pyqt6) Downloading PyQt6_sip-13.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (472 bytes) Collecting PyQt6-Qt6<6.9.0,>=6.8.0 (from pyqt6) Downloading PyQt6_Qt6-6.8.2-py3-none-manylinux_2_28_x86_64.whl.metadata (534 bytes) Downloading PyQt6-6.8.1-cp39-abi3-manylinux_2_28_x86_64.whl (8.2 MB) Downloading PyQt6_Qt6-6.8.2-py3-none-manylinux_2_28_x86_64.whl (81.3 MB) Downloading PyQt6_sip-13.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl (303 kB) Building wheels for collected packages: dbus-python Building wheel for dbus-python (pyproject.toml) ... [?25ldone [?25h Created wheel for dbus-python: filename=dbus_python-1.3.2-cp312-cp312-linux_x86_64.whl size=122709 sha256=3b4567b3e21c15ff2f7c5b1a10d435d2b3bc377443db6425ad83e766fef27775 Stored in directory: /home/travis/.cache/pip/wheels/af/10/cf/199cea3104083e08fd54f5f1d61656138c62b9677b0f78f1b6 Successfully built dbus-python Installing collected packages: PyQt6-Qt6, PyQt6-sip, dbus-python, pyqt6 Successfully installed PyQt6-Qt6-6.8.2 PyQt6-sip-13.10.0 dbus-python-1.3.2 pyqt6-6.8.1 travis_time:end:12f114d0:start=1739772710633777081,finish=1739772726604465323,duration=15970688242,event=install [0Ktravis_fold:end:install.3 [0Ktravis_fold:start:install.4 [0Ktravis_time:start:10000f81 [0K$ ssh-keygen -b 2048 -t rsa -f /home/travis/.ssh/id_rsa -N "" Generating public/private rsa key pair. Your identification has been saved in /home/travis/.ssh/id_rsa Your public key has been saved in /home/travis/.ssh/id_rsa.pub The key fingerprint is: SHA256:xn3dXOC9Fkqgb35kbWeWbcCi6NTPwq4SMm9Y//dvsz8 travis@travis-job-44a2ea8c-a218-4cec-a367-bad660a9da6a The key's randomart image is: +---[RSA 2048]----+ | . . | | . .o o | | . ..+.o| | . +...oo+*| | S +o.+.*O| | o o+ .o+o o+.| | * o. o.o. | | . + .. .o E.| | . ..oo. ..+B| +----[SHA256]-----+ travis_time:end:10000f81:start=1739772726608804849,finish=1739772726713152479,duration=104347630,event=install [0Ktravis_fold:end:install.4 [0Ktravis_fold:start:install.5 [0Ktravis_time:start:0fd41852 [0K$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys travis_time:end:0fd41852:start=1739772726717628347,finish=1739772726721736580,duration=4108233,event=install [0Ktravis_fold:end:install.5 [0Ktravis_fold:start:install.6 [0Ktravis_time:start:029fd6f0 [0K$ eval `ssh-agent -s` Agent pid 5140 travis_time:end:029fd6f0:start=1739772726726207369,finish=1739772726738001520,duration=11794151,event=install [0Ktravis_fold:end:install.6 [0Ktravis_time:start:00439d01 [0K$ python -m compileall common common/test common/plugins qt qt/test qt/plugins Listing 'common'... Compiling 'common/applicationinstance.py'... Compiling 'common/askpass.py'... Compiling 'common/backintime.py'... Listing 'common/bash-completion'... Compiling 'common/bcolors.py'... Compiling 'common/bitbase.py'... Compiling 'common/cli.py'... Compiling 'common/config.py'... Compiling 'common/configfile.py'... Compiling 'common/daemon.py'... Compiling 'common/diagnostics.py'... Listing 'common/doc-dev'... Listing 'common/doc-dev/_static'... Listing 'common/doc-dev/_templates'... Compiling 'common/doc-dev/conf.py'... Listing 'common/doc-dev/plugins'... Compiling 'common/encfstools.py'... Compiling 'common/encode.py'... Compiling 'common/exceptions.py'... Compiling 'common/flock.py'... Compiling 'common/guiapplicationinstance.py'... Compiling 'common/languages.py'... Compiling 'common/logger.py'... Listing 'common/man'... Listing 'common/man/C'... Compiling 'common/mount.py'... Compiling 'common/password.py'... Compiling 'common/password_ipc.py'... Compiling 'common/pluginmanager.py'... Listing 'common/plugins'... Compiling 'common/plugins/usercallbackplugin.py'... Listing 'common/po'... Compiling 'common/progress.py'... Compiling 'common/qt_probing.py'... Compiling 'common/schedule.py'... Compiling 'common/singleton.py'... Compiling 'common/snapshotlog.py'... Compiling 'common/snapshots.py'... Compiling 'common/ssh_max_arg.py'... Compiling 'common/sshtools.py'... Listing 'common/test'... Compiling 'common/test/__init__.py'... Compiling 'common/test/constants.py'... Compiling 'common/test/generic.py'... Compiling 'common/test/test_applicationinstance.py'... Compiling 'common/test/test_argparser.py'... Compiling 'common/test/test_backintime.py'... Compiling 'common/test/test_backup.py'... Compiling 'common/test/test_config.py'... Compiling 'common/test/test_config_crontab.py'... Compiling 'common/test/test_configfile.py'... Compiling 'common/test/test_diagnostics.py'... Compiling 'common/test/test_encfstools.py'... Compiling 'common/test/test_languages.py'... Compiling 'common/test/test_lint.py'... Compiling 'common/test/test_mount.py'... Compiling 'common/test/test_plugin_usercallback.py'... Compiling 'common/test/test_restore.py'... Compiling 'common/test/test_schedule.py'... Compiling 'common/test/test_sid.py'... Compiling 'common/test/test_singleton.py'... Compiling 'common/test/test_snapshotlog.py'... Compiling 'common/test/test_snapshots.py'... Compiling 'common/test/test_snapshots_autoremove.py'... Compiling 'common/test/test_sshtools.py'... Compiling 'common/test/test_takeSnapshot.py'... Compiling 'common/test/test_tools.py'... Compiling 'common/test/test_uniquenessset.py'... Compiling 'common/tools.py'... Compiling 'common/uniquenessset.py'... Compiling 'common/version.py'... Listing 'common/test'... Listing 'common/plugins'... Listing 'qt'... Compiling 'qt/aboutdlg.py'... Compiling 'qt/app.py'... Compiling 'qt/editusercallback.py'... Compiling 'qt/encfsmsgbox.py'... Compiling 'qt/icon.py'... Listing 'qt/icons'... Listing 'qt/icons/16x16'... Listing 'qt/icons/16x16/actions'... Listing 'qt/icons/22x22'... Listing 'qt/icons/22x22/actions'... Listing 'qt/icons/24x24'... Listing 'qt/icons/24x24/actions'... Listing 'qt/icons/32x32'... Listing 'qt/icons/32x32/actions'... Listing 'qt/icons/48x48'... Listing 'qt/icons/48x48/actions'... Listing 'qt/icons/scalable'... Listing 'qt/icons/scalable/actions'... Compiling 'qt/languagedialog.py'... Compiling 'qt/logviewdialog.py'... Listing 'qt/man'... Listing 'qt/man/C'... Listing 'qt/manageprofiles'... Compiling 'qt/manageprofiles/__init__.py'... Compiling 'qt/manageprofiles/combobox.py'... Compiling 'qt/manageprofiles/schedulewidget.py'... Compiling 'qt/manageprofiles/spinboxunit.py'... Compiling 'qt/manageprofiles/sshproxywidget.py'... Compiling 'qt/manageprofiles/statebindcheckbox.py'... Compiling 'qt/manageprofiles/tab_expert_options.py'... Compiling 'qt/manageprofiles/tab_general.py'... Compiling 'qt/manageprofiles/tab_options.py'... Compiling 'qt/manageprofiles/tab_remove_retention.py'... Compiling 'qt/messagebox.py'... Listing 'qt/plugins'... Compiling 'qt/plugins/notifyplugin.py'... Compiling 'qt/plugins/systrayiconplugin.py'... Compiling 'qt/qtsystrayicon.py'... Compiling 'qt/qttools.py'... Compiling 'qt/qttools_path.py'... Compiling 'qt/restoreconfigdialog.py'... Compiling 'qt/restoredialog.py'... Compiling 'qt/serviceHelper.py'... Compiling 'qt/snapshotsdialog.py'... Compiling 'qt/statedata.py'... Listing 'qt/test'... Compiling 'qt/test/__init__.py'... Compiling 'qt/test/test_lint.py'... Compiling 'qt/test/test_statedata.py'... Compiling 'qt/usermessagedialog.py'... Listing 'qt/test'... Listing 'qt/plugins'... travis_time:end:00439d01:start=1739772726741801037,finish=1739772727085726192,duration=343925155,event=script [0K[32;1mThe command "python -m compileall common common/test common/plugins qt qt/test qt/plugins" exited with 0.[0m travis_time:start:1e26f361 [0K$ cd common travis_time:end:1e26f361:start=1739772727089768919,finish=1739772727092401553,duration=2632634,event=script [0K[32;1mThe command "cd common" exited with 0.[0m travis_time:start:041a2aea [0K$ ./configure Replacement of python path with "/usr/bin/python3" successful. All OK. Now run: make sudo make install travis_time:end:041a2aea:start=1739772727096017344,finish=1739772727248186602,duration=152169258,event=script [0K[32;1mThe command "./configure" exited with 0.[0m travis_time:start:042fcc22 [0K$ make unittest-v /home/travis/virtualenv/python3.12.4/bin/pytest -v [1m============================= test session starts ==============================[0m platform linux -- Python 3.12.4, pytest-8.3.1, pluggy-1.5.0 -- /home/travis/virtualenv/python3.12.4/bin/python cachedir: .pytest_cache rootdir: /home/travis/build/bit-team/backintime/common plugins: pyfakefs-5.7.4 [1mcollecting ... [0m[1m collected 427 items [0m test/test_applicationinstance.py::General::test_autoExit_other_running_process [32mPASSED[0m[32m [ 0%][0m test/test_applicationinstance.py::General::test_autoExit_unique_process [32mPASSED[0m[32m [ 0%][0m test/test_applicationinstance.py::General::test_auto_flock [32mPASSED[0m[32m [ 0%][0m test/test_applicationinstance.py::General::test_create_and_remove_pid_file [32mPASSED[0m[32m [ 0%][0m test/test_applicationinstance.py::General::test_existing_process_with_correct_proc_cmdline [32mPASSED[0m[32m [ 1%][0m test/test_applicationinstance.py::General::test_existing_process_with_correct_procname [32mPASSED[0m[32m [ 1%][0m test/test_applicationinstance.py::General::test_existing_process_with_wrong_pid [32mPASSED[0m[32m [ 1%][0m test/test_applicationinstance.py::General::test_existing_process_with_wrong_procname [32mPASSED[0m[32m [ 1%][0m test/test_applicationinstance.py::General::test_flock_exclusive [32mPASSED[0m[32m [ 2%][0m test/test_applicationinstance.py::General::test_flock_exclusive_fail [32mPASSED[0m[32m [ 2%][0m test/test_applicationinstance.py::General::test_killing_existing_process [32mPASSED[0m[32m [ 2%][0m test/test_applicationinstance.py::General::test_leftover_empty_lockfile [32mPASSED[0m[32m [ 2%][0m test/test_applicationinstance.py::General::test_no_pid_file [32mPASSED[0m[32m [ 3%][0m test/test_applicationinstance.py::General::test_non_existing_process [32mPASSED[0m[32m [ 3%][0m test/test_applicationinstance.py::General::test_pid_file_content [32mPASSED[0m[32m [ 3%][0m test/test_applicationinstance.py::General::test_readPidFile [32mPASSED[0m[32m [ 3%][0m test/test_applicationinstance.py::General::test_readPidFile_fail [32mPASSED[0m[32m [ 3%][0m test/test_applicationinstance.py::General::test_thread_write_without_flock [32mPASSED[0m[32m [ 4%][0m test/test_applicationinstance.py::General::test_write_pid_fail [32mPASSED[0m[32m [ 4%][0m test/test_argparser.py::General::test_config [32mPASSED[0m[32m [ 4%][0m test/test_argparser.py::General::test_config_no_path [32mPASSED[0m[32m [ 4%][0m test/test_argparser.py::General::test_debug [32mPASSED[0m[32m [ 5%][0m test/test_argparser.py::General::test_invalid_arg [32mPASSED[0m[32m [ 5%][0m test/test_argparser.py::General::test_quiet [32mPASSED[0m[32m [ 5%][0m test/test_argparser.py::Backup::test_backwards_compatiblity_alias [32mPASSED[0m[32m [ 5%][0m test/test_argparser.py::Backup::test_multi_args [32mPASSED[0m[32m [ 6%][0m test/test_argparser.py::Backup::test_profile [32mPASSED[0m[32m [ 6%][0m test/test_argparser.py::Backup::test_profile_and_profile_id [32mPASSED[0m[32m [ 6%][0m test/test_argparser.py::Backup::test_profile_id [32mPASSED[0m[32m [ 6%][0m test/test_argparser.py::Backup::test_quiet [32mPASSED[0m[32m [ 7%][0m test/test_argparser.py::Backup::test_simple [32mPASSED[0m[32m [ 7%][0m test/test_argparser.py::Restore::test_empty_where [32mPASSED[0m[32m [ 7%][0m test/test_argparser.py::Restore::test_local_backup_and_no_local_backup [32mPASSED[0m[32m [ 7%][0m test/test_argparser.py::Restore::test_multi_args [32mPASSED[0m[32m [ 7%][0m test/test_argparser.py::Restore::test_simple [32mPASSED[0m[32m [ 8%][0m test/test_argparser.py::Restore::test_snapshot_id_index [32mPASSED[0m[32m [ 8%][0m test/test_argparser.py::Restore::test_what_space_in_path [32mPASSED[0m[32m [ 8%][0m test/test_argparser.py::Restore::test_what_where_snapshot_id [32mPASSED[0m[32m [ 8%][0m test/test_argparser.py::Restore::test_what_where_snapshot_id_multi_args [32mPASSED[0m[32m [ 9%][0m test/test_argparser.py::Restore::test_where_space_in_path [32mPASSED[0m[32m [ 9%][0m test/test_backintime.py::BackInTime::test_diagnostics_arg [32mPASSED[0m[32m [ 9%][0m test/test_backintime.py::BackInTime::test_local_snapshot_is_successful [31mFAILED[0m[31m [ 9%][0m test/test_backintime.py::BackInTime::test_quiet_mode [32mPASSED[0m[31m [ 10%][0m test/test_backup.py::TestBackup::test_already_running [32mPASSED[0m[31m [ 10%][0m test/test_backup.py::TestBackup::test_backup [32mPASSED[0m[31m [ 10%][0m test/test_backup.py::TestBackup::test_backup_async [32mPASSED[0m[31m [ 10%][0m test/test_backup.py::TestBackup::test_backup_async_profile_2 [32mPASSED[0m[31m [ 11%][0m test/test_backup.py::TestBackup::test_backup_async_with_checksum [32mPASSED[0m[31m [ 11%][0m test/test_backup.py::TestBackup::test_cant_backup [32mPASSED[0m[31m [ 11%][0m test/test_backup.py::TestBackup::test_mount_exception [32mPASSED[0m[31m [ 11%][0m test/test_backup.py::TestBackup::test_no_backup_on_battery [32mPASSED[0m[31m [ 11%][0m test/test_backup.py::TestBackup::test_no_changes [32mPASSED[0m[31m [ 12%][0m test/test_backup.py::TestBackup::test_not_configured [32mPASSED[0m[31m [ 12%][0m test/test_backup.py::TestBackup::test_plugin_prevented_backup [32mPASSED[0m[31m [ 12%][0m test/test_backup.py::TestBackup::test_scheduled [32mPASSED[0m[31m [ 12%][0m test/test_backup.py::TestBackup::test_takeSnapshot_exception_cleanup [32mPASSED[0m[31m [ 13%][0m test/test_backup.py::TestBackup::test_umount_exception [32mPASSED[0m[31m [ 13%][0m test/test_backup.py::TestBackup::test_with_errors [32mPASSED[0m[31m [ 13%][0m test/test_config.py::RemoveOldSnapshotsDate::test_day [32mPASSED[0m[31m [ 13%][0m test/test_config.py::RemoveOldSnapshotsDate::test_invalid_unit [32mPASSED[0m[31m [ 14%][0m test/test_config.py::RemoveOldSnapshotsDate::test_week_always_monday [32mPASSED[0m[31m [ 14%][0m test/test_config.py::RemoveOldSnapshotsDate::test_week_ignore_current [32mPASSED[0m[31m [ 14%][0m test/test_config.py::RemoveOldSnapshotsDate::test_year_ignore_current_month [32mPASSED[0m[31m [ 14%][0m test/test_config.py::SshCommand::test_cipher_aes256_cbc [32mPASSED[0m[31m [ 14%][0m test/test_config.py::SshCommand::test_cipher_disabled [32mPASSED[0m[31m [ 15%][0m test/test_config.py::SshCommand::test_custom_args [32mPASSED[0m[31m [ 15%][0m test/test_config.py::SshCommand::test_disable_args [32mPASSED[0m[31m [ 15%][0m test/test_config.py::SshCommand::test_full_command [32mPASSED[0m[31m [ 15%][0m test/test_config.py::SshCommand::test_nice_and_ionice [32mPASSED[0m[31m [ 16%][0m test/test_config.py::SshCommand::test_nice_and_ionice_without_command [32mPASSED[0m[31m [ 16%][0m test/test_config.py::SshCommand::test_prefix [32mPASSED[0m[31m [ 16%][0m test/test_config.py::SshCommand::test_prefix_false [32mPASSED[0m[31m [ 16%][0m test/test_config.py::SshCommand::test_quote [32mPASSED[0m[31m [ 17%][0m test/test_config.py::SshCommand::test_quote_without_command [32mPASSED[0m[31m [ 17%][0m test/test_config.py::SshCommand::test_without_command [32mPASSED[0m[31m [ 17%][0m test/test_config_crontab.py::Cron::test_cron_lines [32mPASSED[0m[31m [ 17%][0m test/test_config_crontab.py::CrontabDebug::test_crontab_contains_debug [32mPASSED[0m[31m [ 18%][0m test/test_config_crontab.py::CrontabDebug::test_crontab_without_debug [32mPASSED[0m[31m [ 18%][0m test/test_configfile.py::TestConfigFile::test_boolValue [32mPASSED[0m[31m [ 18%][0m test/test_configfile.py::TestConfigFile::test_boolValue_default [32mPASSED[0m[31m [ 18%][0m test/test_configfile.py::TestConfigFile::test_hasKey [32mPASSED[0m[31m [ 18%][0m test/test_configfile.py::TestConfigFile::test_intValue [32mPASSED[0m[31m [ 19%][0m test/test_configfile.py::TestConfigFile::test_intValue_default [32mPASSED[0m[31m [ 19%][0m test/test_configfile.py::TestConfigFile::test_listValue_bool [32mPASSED[0m[31m [ 19%][0m test/test_configfile.py::TestConfigFile::test_listValue_default [32mPASSED[0m[31m [ 19%][0m test/test_configfile.py::TestConfigFile::test_listValue_empty_list [32mPASSED[0m[31m [ 20%][0m test/test_configfile.py::TestConfigFile::test_listValue_int [32mPASSED[0m[31m [ 20%][0m test/test_configfile.py::TestConfigFile::test_listValue_invalid_type [32mPASSED[0m[31m [ 20%][0m test/test_configfile.py::TestConfigFile::test_listValue_missing_values [32mPASSED[0m[31m [ 20%][0m test/test_configfile.py::TestConfigFile::test_listValue_str [32mPASSED[0m[31m [ 21%][0m test/test_configfile.py::TestConfigFile::test_listValue_tuple [32mPASSED[0m[31m [ 21%][0m test/test_configfile.py::TestConfigFile::test_listValue_tuple_missing_values [32mPASSED[0m[31m [ 21%][0m test/test_configfile.py::TestConfigFile::test_listValue_wrong_size [32mPASSED[0m[31m [ 21%][0m test/test_configfile.py::TestConfigFile::test_listValue_zero_count [32mPASSED[0m[31m [ 22%][0m test/test_configfile.py::TestConfigFile::test_load [32mPASSED[0m[31m [ 22%][0m test/test_configfile.py::TestConfigFile::test_remapKey [32mPASSED[0m[31m [ 22%][0m test/test_configfile.py::TestConfigFile::test_remapKeyRegex [32mPASSED[0m[31m [ 22%][0m test/test_configfile.py::TestConfigFile::test_remove_key [32mPASSED[0m[31m [ 22%][0m test/test_configfile.py::TestConfigFile::test_remove_keys_start_with [32mPASSED[0m[31m [ 23%][0m test/test_configfile.py::TestConfigFile::test_remove_keys_start_with_not_matching_prefix [32mPASSED[0m[31m [ 23%][0m test/test_configfile.py::TestConfigFile::test_save [32mPASSED[0m[31m [ 23%][0m test/test_configfile.py::TestConfigFile::test_setBoolValue [32mPASSED[0m[31m [ 23%][0m test/test_configfile.py::TestConfigFile::test_setIntValue [32mPASSED[0m[31m [ 24%][0m test/test_configfile.py::TestConfigFile::test_setListValue_bool [32mPASSED[0m[31m [ 24%][0m test/test_configfile.py::TestConfigFile::test_setListValue_int [32mPASSED[0m[31m [ 24%][0m test/test_configfile.py::TestConfigFile::test_setListValue_invalid_type_for_type_key [32mPASSED[0m[31m [ 24%][0m test/test_configfile.py::TestConfigFile::test_setListValue_invalid_type_for_value [32mPASSED[0m[31m [ 25%][0m test/test_configfile.py::TestConfigFile::test_setListValue_remove_leftovers [32mPASSED[0m[31m [ 25%][0m test/test_configfile.py::TestConfigFile::test_setListValue_remove_leftovers_tuple [32mPASSED[0m[31m [ 25%][0m test/test_configfile.py::TestConfigFile::test_setListValue_str [32mPASSED[0m[31m [ 25%][0m test/test_configfile.py::TestConfigFile::test_setListValue_tuple [32mPASSED[0m[31m [ 25%][0m test/test_configfile.py::TestConfigFile::test_setListValue_tuple_missing_values [32mPASSED[0m[31m [ 26%][0m test/test_configfile.py::TestConfigFile::test_setStrValue [32mPASSED[0m[31m [ 26%][0m test/test_configfile.py::TestConfigFile::test_strValue [32mPASSED[0m[31m [ 26%][0m test/test_configfile.py::TestConfigFile::test_strValue_default [32mPASSED[0m[31m [ 26%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_addProfile [32mPASSED[0m[31m [ 27%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_current_profile [32mPASSED[0m[31m [ 27%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_current_profile_by_name [32mPASSED[0m[31m [ 27%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_get_profile_key [32mPASSED[0m[31m [ 27%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_hasProfileKey [32mPASSED[0m[31m [ 28%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_load [32mPASSED[0m[31m [ 28%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_profileExists [32mPASSED[0m[31m [ 28%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_profileExistsByName [32mPASSED[0m[31m [ 28%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_profileName [32mPASSED[0m[31m [ 29%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_profiles [32mPASSED[0m[31m [ 29%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_profilesSortedByName [32mPASSED[0m[31m [ 29%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_remapProfileKey [32mPASSED[0m[31m [ 29%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfile [32mPASSED[0m[31m [ 29%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfileKey [32mPASSED[0m[31m [ 30%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfileKeysStartsWith [32mPASSED[0m[31m [ 30%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_setProfileName [32mPASSED[0m[31m [ 30%][0m test/test_configfile.py::TestConfigFileWithProfiles::test_set_profile_value [32mPASSED[0m[31m [ 30%][0m test/test_diagnostics.py::Diagnostics::test_content_minimal [32mPASSED[0m[31m [ 31%][0m test/test_diagnostics.py::Diagnostics::test_no_extern_version [32mPASSED[0m[31m [ 31%][0m test/test_diagnostics.py::Diagnostics::test_no_ressource_warning [32mPASSED[0m[31m [ 31%][0m test/test_diagnostics.py::Diagnostics::test_replace_user_path [32mPASSED[0m[31m [ 31%][0m test/test_diagnostics.py::Diagnostics::test_some_content [32mPASSED[0m[31m [ 32%][0m test/test_encfstools.py::TestEncFS_mount::test_dummy [32mPASSED[0m[31m [ 32%][0m test/test_encfstools.py::TestEncFS_mount::test_initialise_encfs [32mPASSED[0m[31m [ 32%][0m test/test_languages.py::General::test_completeness_key_types [32mPASSED[0m[31m [ 32%][0m test/test_languages.py::General::test_completeness_value_types [32mPASSED[0m[31m [ 33%][0m test/test_lint.py::MirrorMirrorOnTheWall::test005_ensure_linter_versions [32mPASSED[0m[31m [ 33%][0m test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset [31mFAILED[0m[31m [ 33%][0m test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset [31mFAILED[0m[31m [ 33%][0m test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset [31mFAILED[0m[31m [ 33%][0m test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset [31mFAILED[0m[31m [ 34%][0m test/test_lint.py::MirrorMirrorOnTheWall::test060_reuse [33mSKIPPED[0m (Usi...)[31m [ 34%][0m test/test_mount.py::CheckLocks::test_foreign_lock [32mPASSED[0m[31m [ 34%][0m test/test_mount.py::CheckLocks::test_foreign_lock_notexisting_pid [32mPASSED[0m[31m [ 34%][0m test/test_mount.py::CheckLocks::test_ignore_own_lock [32mPASSED[0m[31m [ 35%][0m test/test_mount.py::CheckLocks::test_lock_remove [32mPASSED[0m[31m [ 35%][0m test/test_mount.py::CheckLocks::test_not_existing_dir [32mPASSED[0m[31m [ 35%][0m test/test_mount.py::CheckLocks::test_own_lock_but_diff_tmpmount [32mPASSED[0m[31m [ 35%][0m test/test_mount.py::CheckLocks::test_symlinks_remove [32mPASSED[0m[31m [ 36%][0m test/test_mount.py::CheckHighLevelLocalMount::test_first_preMountCheck [32mPASSED[0m[31m [ 36%][0m test/test_mount.py::CheckHighLevelLocalMount::test_initialised_preMountCheck [32mPASSED[0m[31m [ 36%][0m test/test_mount.py::CheckHighLevelLocalMount::test_mount [32mPASSED[0m[31m [ 36%][0m test/test_mount.py::CheckHighLevelLocalMount::test_remount_to_new_local_mount [32mPASSED[0m[31m [ 37%][0m test/test_mount.py::CheckHighLevelLocalMount::test_umount [32mPASSED[0m[31m [ 37%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_appExit [32mPASSED[0m[31m [ 37%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_appStart [32mPASSED[0m[31m [ 37%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_error [32mPASSED[0m[31m [ 37%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_mount [32mPASSED[0m[31m [ 38%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_processBegin [32mPASSED[0m[31m [ 38%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_processEnd [32mPASSED[0m[31m [ 38%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_processnewSnapshot [32mPASSED[0m[31m [ 38%][0m test/test_plugin_usercallback.py::UserCallback::test_reason_unmount [32mPASSED[0m[31m [ 39%][0m test/test_plugin_usercallback.py::SystemTest::test_local_snapshot [31mFAILED[0m[31m [ 39%][0m test/test_restore.py::TestRestore::test_backup [32mPASSED[0m[31m [ 39%][0m test/test_restore.py::TestRestore::test_delete [32mPASSED[0m[31m [ 39%][0m test/test_restore.py::TestRestore::test_no_backup [32mPASSED[0m[31m [ 40%][0m test/test_restore.py::TestRestore::test_only_new [32mPASSED[0m[31m [ 40%][0m test/test_restore.py::TestRestore::test_restore_folder_to_different_destination [32mPASSED[0m[31m [ 40%][0m test/test_restore.py::TestRestore::test_restore_multiple_files [32mPASSED[0m[31m [ 40%][0m test/test_restore.py::TestRestore::test_restore_to_different_destination [32mPASSED[0m[31m [ 40%][0m test/test_restore.py::TestRestoreLocal::test_restore [32mPASSED[0m[31m [ 41%][0m test/test_restore.py::TestRestoreLocal::test_restore_file_with_spaces [32mPASSED[0m[31m [ 41%][0m test/test_restore.py::TestRestoreSSH::test_restore [32mPASSED[0m[31m [ 41%][0m test/test_restore.py::TestRestoreSSH::test_restore_file_with_spaces [32mPASSED[0m[31m [ 41%][0m test/test_schedule.py::Schedule::test_bit_to_crontab [32mPASSED[0m[31m [ 42%][0m test/test_schedule.py::Schedule::test_remove_bit_entries [32mPASSED[0m[31m [ 42%][0m test/test_sid.py::TestSID::test_displayID [32mPASSED[0m[31m [ 42%][0m test/test_sid.py::TestSID::test_displayName [32mPASSED[0m[31m [ 42%][0m test/test_sid.py::TestSID::test_equal_sid [32mPASSED[0m[31m [ 43%][0m test/test_sid.py::TestSID::test_exists [32mPASSED[0m[31m [ 43%][0m test/test_sid.py::TestSID::test_failed [32mPASSED[0m[31m [ 43%][0m test/test_sid.py::TestSID::test_fileInfo [32mPASSED[0m[31m [ 43%][0m test/test_sid.py::TestSID::test_fileInfoErrorRead [32mPASSED[0m[31m [ 44%][0m test/test_sid.py::TestSID::test_fileInfoErrorWrite [32mPASSED[0m[31m [ 44%][0m test/test_sid.py::TestSID::test_hash [32mPASSED[0m[31m [ 44%][0m test/test_sid.py::TestSID::test_info [32mPASSED[0m[31m [ 44%][0m test/test_sid.py::TestSID::test_isExistingPathInsideSnapshotFolder [32mPASSED[0m[31m [ 44%][0m test/test_sid.py::TestSID::test_lastChecked [32mPASSED[0m[31m [ 45%][0m test/test_sid.py::TestSID::test_log [32mPASSED[0m[31m [ 45%][0m test/test_sid.py::TestSID::test_log_filter [32mPASSED[0m[31m [ 45%][0m test/test_sid.py::TestSID::test_makeDirs [32mPASSED[0m[31m [ 45%][0m test/test_sid.py::TestSID::test_makeWritable [32mPASSED[0m[31m [ 46%][0m test/test_sid.py::TestSID::test_name [32mPASSED[0m[31m [ 46%][0m test/test_sid.py::TestSID::test_new_object_with_invalid_type [32mPASSED[0m[31m [ 46%][0m test/test_sid.py::TestSID::test_new_object_with_invalid_value [32mPASSED[0m[31m [ 46%][0m test/test_sid.py::TestSID::test_new_object_with_valid_date [32mPASSED[0m[31m [ 47%][0m test/test_sid.py::TestSID::test_path [32mPASSED[0m[31m [ 47%][0m test/test_sid.py::TestSID::test_setLog_binary [32mPASSED[0m[31m [ 47%][0m test/test_sid.py::TestSID::test_sort_sids [32mPASSED[0m[31m [ 47%][0m test/test_sid.py::TestSID::test_split [32mPASSED[0m[31m [ 48%][0m test/test_sid.py::TestSID::test_tag [32mPASSED[0m[31m [ 48%][0m test/test_sid.py::TestSID::test_withoutTag [32mPASSED[0m[31m [ 48%][0m test/test_sid.py::TestNewSnapshot::test_create_new [32mPASSED[0m[31m [ 48%][0m test/test_sid.py::TestNewSnapshot::test_hasChanges [32mPASSED[0m[31m [ 48%][0m test/test_sid.py::TestNewSnapshot::test_saveToContinue [32mPASSED[0m[31m [ 49%][0m test/test_sid.py::TestRootSnapshot::test_create [32mPASSED[0m[31m [ 49%][0m test/test_sid.py::TestRootSnapshot::test_path [32mPASSED[0m[31m [ 49%][0m test/test_sid.py::TestIterSnapshots::test_iter_snapshots [32mPASSED[0m[31m [ 49%][0m test/test_sid.py::TestIterSnapshots::test_lastSnapshot [32mPASSED[0m[31m [ 50%][0m test/test_sid.py::TestIterSnapshots::test_list_invalid_snapshot [32mPASSED[0m[31m [ 50%][0m test/test_sid.py::TestIterSnapshots::test_list_new_snapshot [32mPASSED[0m[31m [ 50%][0m test/test_sid.py::TestIterSnapshots::test_list_not_reverse [32mPASSED[0m[31m [ 50%][0m test/test_sid.py::TestIterSnapshots::test_list_snapshot_without_backup [32mPASSED[0m[31m [ 51%][0m test/test_sid.py::TestIterSnapshots::test_list_symlink_last_snapshot [32mPASSED[0m[31m [ 51%][0m test/test_sid.py::TestIterSnapshots::test_list_valid [32mPASSED[0m[31m [ 51%][0m test/test_sid.py::TestIterSnapshots::test_list_without_new_snapshot [32mPASSED[0m[31m [ 51%][0m test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_iterSnapshots [32mPASSED[0m[31m [ 51%][0m test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_lastSnapshots [32mPASSED[0m[31m [ 52%][0m test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_listSnapshots [32mPASSED[0m[31m [ 52%][0m test/test_singleton.py::Test::test_multi_class [32mPASSED[0m[31m [ 52%][0m test/test_singleton.py::Test::test_share_value [32mPASSED[0m[31m [ 52%][0m test/test_singleton.py::Test::test_twins [32mPASSED[0m[31m [ 53%][0m test/test_snapshotlog.py::TestLogFilter::test_filter [32mPASSED[0m[31m [ 53%][0m test/test_snapshotlog.py::TestSnapshotLog::test_append [32mPASSED[0m[31m [ 53%][0m test/test_snapshotlog.py::TestSnapshotLog::test_append_log_level [32mPASSED[0m[31m [ 53%][0m test/test_snapshotlog.py::TestSnapshotLog::test_get [32mPASSED[0m[31m [ 54%][0m test/test_snapshotlog.py::TestSnapshotLog::test_get_filter [32mPASSED[0m[31m [ 54%][0m test/test_snapshotlog.py::TestSnapshotLog::test_new [32mPASSED[0m[31m [ 54%][0m test/test_snapshotlog.py::TestSnapshotLog::test_new_continue [32mPASSED[0m[31m [ 54%][0m test/test_snapshotlog.py::TestSnapshotLog::test_skipLines [32mPASSED[0m[31m [ 55%][0m test/test_snapshotlog.py::TestSnapshotLog::test_skipLines_filtered [32mPASSED[0m[31m [ 55%][0m test/test_snapshotlog.py::TestSnapshotLog::test_skipLines_show_all [32mPASSED[0m[31m [ 55%][0m test/test_snapshots.py::SetTakeSnapshotMessage::test_error [32mPASSED[0m[31m [ 55%][0m test/test_snapshots.py::SetTakeSnapshotMessage::test_info [32mPASSED[0m[31m [ 55%][0m test/test_snapshots.py::UserAndGroups::test_gid_backup [32mPASSED[0m[31m [ 56%][0m test/test_snapshots.py::UserAndGroups::test_gid_invalid [32mPASSED[0m[31m [ 56%][0m test/test_snapshots.py::UserAndGroups::test_gid_valid [32mPASSED[0m[31m [ 56%][0m test/test_snapshots.py::UserAndGroups::test_groupname_invalid [32mPASSED[0m[31m [ 56%][0m test/test_snapshots.py::UserAndGroups::test_groupname_valid [32mPASSED[0m[31m [ 57%][0m test/test_snapshots.py::UserAndGroups::test_uid_backup [32mPASSED[0m[31m [ 57%][0m test/test_snapshots.py::UserAndGroups::test_uid_invalid [32mPASSED[0m[31m [ 57%][0m test/test_snapshots.py::UserAndGroups::test_uid_valid [32mPASSED[0m[31m [ 57%][0m test/test_snapshots.py::UserAndGroups::test_username_invalid [32mPASSED[0m[31m [ 58%][0m test/test_snapshots.py::UserAndGroups::test_username_valid [32mPASSED[0m[31m [ 58%][0m test/test_snapshots.py::HelperScripts::test_create_last_snapshot_symlink [32mPASSED[0m[31m [ 58%][0m test/test_snapshots.py::HelperScripts::test_make_dirs [32mPASSED[0m[31m [ 58%][0m test/test_snapshots.py::HelperScripts::test_rsync_remote_path [32mPASSED[0m[31m [ 59%][0m test/test_snapshots.py::HelperScripts::test_stat_free_space_local [32mPASSED[0m[31m [ 59%][0m test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_exclude_unique_items [32mPASSED[0m[31m [ 59%][0m test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_include_root [32mPASSED[0m[31m [ 59%][0m test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_include_unique_items [32mPASSED[0m[31m [ 59%][0m test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_rsync_suffix [32mPASSED[0m[31m [ 60%][0m test/test_snapshots.py::Callbacks::test_callback [32mPASSED[0m[31m [ 60%][0m test/test_snapshots.py::Callbacks::test_dir [32mPASSED[0m[31m [ 60%][0m test/test_snapshots.py::Callbacks::test_error [32mPASSED[0m[31m [ 60%][0m test/test_snapshots.py::Callbacks::test_keep_params [32mPASSED[0m[31m [ 61%][0m test/test_snapshots.py::Callbacks::test_restore [32mPASSED[0m[31m [ 61%][0m test/test_snapshots.py::Callbacks::test_transfer [32mPASSED[0m[31m [ 61%][0m test/test_snapshots.py::SnapshotWithSID::test_backup_config [32mPASSED[0m[31m [ 61%][0m test/test_snapshots.py::SnapshotWithSID::test_backup_info_file [32mPASSED[0m[31m [ 62%][0m test/test_snapshots.py::SnapshotWithSID::test_backup_permissions [31mFAILED[0m[31m [ 62%][0m test/test_snapshots.py::SnapshotWithSID::test_collect_permission [32mPASSED[0m[31m [ 62%][0m test/test_snapshots.py::RestorePathInfo::test_change_group [32mPASSED[0m[31m [ 62%][0m test/test_snapshots.py::RestorePathInfo::test_change_owner_without_root [32mPASSED[0m[31m [ 62%][0m test/test_snapshots.py::RestorePathInfo::test_change_permissions [32mPASSED[0m[31m [ 63%][0m test/test_snapshots.py::RestorePathInfo::test_no_changes [32mPASSED[0m[31m [ 63%][0m test/test_snapshots.py::DeletePath::test_dir [32mPASSED[0m[31m [ 63%][0m test/test_snapshots.py::DeletePath::test_dir_readonly [32mPASSED[0m[31m [ 63%][0m test/test_snapshots.py::DeletePath::test_file [32mPASSED[0m[31m [ 64%][0m test/test_snapshots.py::DeletePath::test_file_readonly [32mPASSED[0m[31m [ 64%][0m test/test_snapshots.py::DeletePath::test_pardir_readonly [32mPASSED[0m[31m [ 64%][0m test/test_snapshots.py::RemoveSnapshot::test_remove [32mPASSED[0m[31m [ 64%][0m test/test_snapshots.py::RemoveSnapshot::test_remove_read_only [32mPASSED[0m[31m [ 65%][0m test/test_snapshots.py::SshSnapshots::test_stat_free_space_ssh [32mPASSED[0m[31m [ 65%][0m test/test_snapshots.py::SshPermissions::test_backup_permissions [31mFAILED[0m[31m [ 65%][0m test/test_snapshots.py::SshRemoveSnapshots::test_remove [32mPASSED[0m[31m [ 65%][0m test/test_snapshots.py::SshRemoveSnapshots::test_remove_with_blank [32mPASSED[0m[31m [ 66%][0m test/test_snapshots_autoremove.py::KeepFirst::test_all_invalid [32mPASSED[0m[31m [ 66%][0m test/test_snapshots_autoremove.py::KeepFirst::test_ignore_unhealthy [32mPASSED[0m[31m [ 66%][0m test/test_snapshots_autoremove.py::KeepFirst::test_keep_first_range_outside [32mPASSED[0m[31m [ 66%][0m test/test_snapshots_autoremove.py::KeepFirst::test_min_included_max_not [32mPASSED[0m[31m [ 66%][0m test/test_snapshots_autoremove.py::KeepFirst::test_no_date_ordering [32mPASSED[0m[31m [ 67%][0m test/test_snapshots_autoremove.py::KeepFirst::test_one_but_set [32mPASSED[0m[31m [ 67%][0m test/test_snapshots_autoremove.py::KeepFirst::test_simple_one [32mPASSED[0m[31m [ 67%][0m test/test_snapshots_autoremove.py::KeepAllForLast::test_border [32mPASSED[0m[31m [ 67%][0m test/test_snapshots_autoremove.py::KeepAllForLast::test_simple [32mPASSED[0m[31m [ 68%][0m test/test_snapshots_autoremove.py::KeepOneForLastNDays::test_doc_example [32mPASSED[0m[31m [ 68%][0m test/test_snapshots_autoremove.py::KeepOneForLastNWeeks::test_doc_example [32mPASSED[0m[31m [ 68%][0m test/test_snapshots_autoremove.py::KeepOneForLastNMonths::test_doc_example [32mPASSED[0m[31m [ 68%][0m test/test_snapshots_autoremove.py::KeepOnePerYearForAllYears::test_doc_example [32mPASSED[0m[31m [ 69%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_dec_leap_months [32mPASSED[0m[31m [ 69%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_dec_simple [32mPASSED[0m[31m [ 69%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_dec_year [32mPASSED[0m[31m [ 69%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_inc_leap_months [32mPASSED[0m[31m [ 70%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_inc_leap_year [32mPASSED[0m[31m [ 70%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_inc_next_year [32mPASSED[0m[31m [ 70%][0m test/test_snapshots_autoremove.py::IncDecMonths::test_inc_simple [32mPASSED[0m[31m [ 70%][0m test/test_sshtools.py::General::test_can_mount_ssh_rw [32mPASSED[0m[31m [ 70%][0m test/test_sshtools.py::General::test_checkCipher_default [32mPASSED[0m[31m [ 71%][0m test/test_sshtools.py::General::test_checkCipher_fail [32mPASSED[0m[31m [ 71%][0m test/test_sshtools.py::General::test_checkCipher_specific [32mPASSED[0m[31m [ 71%][0m test/test_sshtools.py::General::test_checkKnownHosts [32mPASSED[0m[31m [ 71%][0m test/test_sshtools.py::General::test_checkKnownHosts_fail [32mPASSED[0m[31m [ 72%][0m test/test_sshtools.py::General::test_checkLogin [32mPASSED[0m[31m [ 72%][0m test/test_sshtools.py::General::test_checkLogin_fail_wrong_user [32mPASSED[0m[31m [ 72%][0m test/test_sshtools.py::General::test_checkPingHost [32mPASSED[0m[31m [ 72%][0m test/test_sshtools.py::General::test_checkPingHost_fail [32mPASSED[0m[31m [ 73%][0m test/test_sshtools.py::General::test_checkRemoteFolder [32mPASSED[0m[31m [ 73%][0m test/test_sshtools.py::General::test_checkRemoteFolder_fail_can_not_create [32mPASSED[0m[31m [ 73%][0m test/test_sshtools.py::General::test_checkRemoteFolder_fail_not_a_folder [32mPASSED[0m[31m [ 73%][0m test/test_sshtools.py::General::test_checkRemoteFolder_with_spaces [32mPASSED[0m[31m [ 74%][0m test/test_sshtools.py::General::test_check_remote_command [32mPASSED[0m[31m [ 74%][0m test/test_sshtools.py::General::test_check_remote_command_fail [32mPASSED[0m[31m [ 74%][0m test/test_sshtools.py::General::test_check_remote_command_hard_link_fail [32mPASSED[0m[31m [ 74%][0m test/test_sshtools.py::General::test_check_remote_command_with_spaces [32mPASSED[0m[31m [ 74%][0m test/test_sshtools.py::General::test_randomId [32mPASSED[0m[31m [ 75%][0m test/test_sshtools.py::General::test_unlockSshAgent [32mPASSED[0m[31m [ 75%][0m test/test_sshtools.py::General::test_unlockSshAgent_fail [32mPASSED[0m[31m [ 75%][0m test/test_sshtools.py::SshKey::test_fingerprint [32mPASSED[0m[31m [ 75%][0m test/test_sshtools.py::SshKey::test_generate [32mPASSED[0m[31m [ 76%][0m test/test_sshtools.py::SshKey::test_host_key [32mPASSED[0m[31m [ 76%][0m test/test_sshtools.py::SshKey::test_write_known_host_file [32mPASSED[0m[31m [ 76%][0m test/test_sshtools.py::StartSshAgent::test_equal_sign [32mPASSED[0m[31m [ 76%][0m test/test_sshtools.py::StartSshAgent::test_error [32mPASSED[0m[31m [ 77%][0m test/test_sshtools.py::StartSshAgent::test_export [32mPASSED[0m[31m [ 77%][0m test/test_sshtools.py::StartSshAgent::test_just_start [32mPASSED[0m[31m [ 77%][0m test/test_sshtools.py::StartSshAgent::test_missing [32mPASSED[0m[31m [ 77%][0m test/test_sshtools.py::StartSshAgent::test_space [32mPASSED[0m[31m [ 77%][0m test/test_sshtools.py::SSHCopyID::test_complete_command [32mPASSED[0m[31m [ 78%][0m test/test_sshtools.py::SSHCopyID::test_custom_port [32mPASSED[0m[31m [ 78%][0m test/test_sshtools.py::SSHCopyID::test_default_port [32mPASSED[0m[31m [ 78%][0m test/test_sshtools.py::SSHCopyID::test_proxy_with_custom_port [32mPASSED[0m[31m [ 78%][0m test/test_sshtools.py::SSHCopyID::test_proxy_with_default_port [32mPASSED[0m[31m [ 79%][0m test/test_takeSnapshot.py::Take::test_error [31mFAILED[0m[31m [ 79%][0m test/test_takeSnapshot.py::Take::test_error_without_continue [32mPASSED[0m[31m [ 79%][0m test/test_takeSnapshot.py::Take::test_exclude [31mFAILED[0m[31m [ 79%][0m test/test_takeSnapshot.py::Take::test_fail_create_new_snapshot [32mPASSED[0m[31m [ 80%][0m test/test_takeSnapshot.py::Take::test_four_snapshots [31mFAILED[0m[31m [ 80%][0m test/test_takeSnapshot.py::Take::test_new_exists [31mFAILED[0m[31m [ 80%][0m test/test_takeSnapshot.py::Take::test_new_exists_continue [31mFAILED[0m[31m [ 80%][0m test/test_takeSnapshot.py::Take::test_spaces_in_exclude [31mFAILED[0m[31m [ 81%][0m test/test_takeSnapshot.py::Take::test_spaces_in_include [31mFAILED[0m[31m [ 81%][0m test/test_takeSnapshot.py::TakeSSH::test_error [31mFAILED[0m[31m [ 81%][0m test/test_takeSnapshot.py::TakeSSH::test_error_without_continue [32mPASSED[0m[31m [ 81%][0m test/test_takeSnapshot.py::TakeSSH::test_exclude [31mFAILED[0m[31m [ 81%][0m test/test_takeSnapshot.py::TakeSSH::test_fail_create_new_snapshot [32mPASSED[0m[31m [ 82%][0m test/test_takeSnapshot.py::TakeSSH::test_four_snapshots [31mFAILED[0m[31m [ 82%][0m test/test_takeSnapshot.py::TakeSSH::test_new_exists [31mFAILED[0m[31m [ 82%][0m test/test_takeSnapshot.py::TakeSSH::test_new_exists_continue [31mFAILED[0m[31m [ 82%][0m test/test_takeSnapshot.py::TakeSSH::test_spaces_in_exclude [31mFAILED[0m[31m [ 83%][0m test/test_takeSnapshot.py::TakeSSH::test_spaces_in_include [31mFAILED[0m[31m [ 83%][0m test/test_tools.py::TestTools::test_addSourceToPathEnviron [32mPASSED[0m[31m [ 83%][0m test/test_tools.py::TestTools::test_backintimePath [32mPASSED[0m[31m [ 83%][0m test/test_tools.py::TestTools::test_checkCommand [32mPASSED[0m[31m [ 84%][0m test/test_tools.py::TestTools::test_checkCronPattern [32mPASSED[0m[31m [ 84%][0m test/test_tools.py::TestTools::test_checkXServer [32mPASSED[0m[31m [ 84%][0m test/test_tools.py::TestTools::test_decodeOctalEscape [32mPASSED[0m[31m [ 84%][0m test/test_tools.py::TestTools::test_isRoot [32mPASSED[0m[31m [ 85%][0m test/test_tools.py::TestTools::test_makeDirs [32mPASSED[0m[31m [ 85%][0m test/test_tools.py::TestTools::test_makeDirs_not_writable [32mPASSED[0m[31m [ 85%][0m test/test_tools.py::TestTools::test_md5sum [32mPASSED[0m[31m [ 85%][0m test/test_tools.py::TestTools::test_mkdir [32mPASSED[0m[31m [ 85%][0m test/test_tools.py::TestTools::test_mountArgs [32mPASSED[0m[31m [ 86%][0m test/test_tools.py::TestTools::test_mountpoint [32mPASSED[0m[31m [ 86%][0m test/test_tools.py::TestTools::test_patternHasNotEncryptableWildcard [32mPASSED[0m[31m [ 86%][0m test/test_tools.py::TestTools::test_pids [32mPASSED[0m[31m [ 86%][0m test/test_tools.py::TestTools::test_pidsWithName [32mPASSED[0m[31m [ 87%][0m test/test_tools.py::TestTools::test_powerStatusAvailable [32mPASSED[0m[31m [ 87%][0m test/test_tools.py::TestTools::test_preparePath [32mPASSED[0m[31m [ 87%][0m test/test_tools.py::TestTools::test_processAlive [32mPASSED[0m[31m [ 87%][0m test/test_tools.py::TestTools::test_processCmdline [32mPASSED[0m[31m [ 88%][0m test/test_tools.py::TestTools::test_processCmdline_exception [32mPASSED[0m[31m [ 88%][0m test/test_tools.py::TestTools::test_processExists [32mPASSED[0m[31m [ 88%][0m test/test_tools.py::TestTools::test_processName [32mPASSED[0m[31m [ 88%][0m test/test_tools.py::TestTools::test_processPaused [32mPASSED[0m[31m [ 88%][0m test/test_tools.py::TestTools::test_processStat [32mPASSED[0m[31m [ 89%][0m test/test_tools.py::TestTools::test_processStat_exception [32mPASSED[0m[31m [ 89%][0m test/test_tools.py::TestTools::test_readFile [32mPASSED[0m[31m [ 89%][0m test/test_tools.py::TestTools::test_readFileLines [32mPASSED[0m[31m [ 89%][0m test/test_tools.py::TestTools::test_readTimeStamp [32mPASSED[0m[31m [ 90%][0m test/test_tools.py::TestTools::test_registerBackintimePath [32mPASSED[0m[31m [ 90%][0m test/test_tools.py::TestTools::test_rsyncCaps [32mPASSED[0m[31m [ 90%][0m test/test_tools.py::TestTools::test_runningFromSource [32mPASSED[0m[31m [ 90%][0m test/test_tools.py::TestTools::test_sharePath [32mPASSED[0m[31m [ 91%][0m test/test_tools.py::TestTools::test_splitCommands [32mPASSED[0m[31m [ 91%][0m test/test_tools.py::TestTools::test_usingSudo [32mPASSED[0m[31m [ 91%][0m test/test_tools.py::TestTools::test_which [32mPASSED[0m[31m [ 91%][0m test/test_tools.py::TestTools::test_writeTimeStamp [32mPASSED[0m[31m [ 92%][0m test/test_tools.py::EscapeIPv6::test_escaped [32mPASSED[0m[31m [ 92%][0m test/test_tools.py::EscapeIPv6::test_invalid [32mPASSED[0m[31m [ 92%][0m test/test_tools.py::EscapeIPv6::test_passed [32mPASSED[0m[31m [ 92%][0m test/test_tools.py::Environ::test_envLoad_do_not_overwrite_previous_values [32mPASSED[0m[31m [ 92%][0m test/test_tools.py::Environ::test_envLoad_without_previous_values [32mPASSED[0m[31m [ 93%][0m test/test_tools.py::Environ::test_envSave [32mPASSED[0m[31m [ 93%][0m test/test_tools.py::ExecuteSubprocess::test_callback [32mPASSED[0m[31m [ 93%][0m test/test_tools.py::ExecuteSubprocess::test_pausable [32mPASSED[0m[31m [ 93%][0m test/test_tools.py::ExecuteSubprocess::test_returncode [32mPASSED[0m[31m [ 94%][0m test/test_tools.py::Tools_FakeFS::test_git_repo_info [32mPASSED[0m[31m [ 94%][0m test/test_tools.py::Tools_FakeFS::test_git_repo_info_none [32mPASSED[0m[31m [ 94%][0m test/test_tools.py::ValidateSnapshotsPath::test_fails_on_ro [32mPASSED[0m[31m [ 94%][0m test/test_tools.py::ValidateSnapshotsPath::test_permission_fail [32mPASSED[0m[31m [ 95%][0m test/test_tools.py::ValidateSnapshotsPath::test_writes [32mPASSED[0m[31m [ 95%][0m test/test_tools.py::OlderThan::test_days_not_older [32mPASSED[0m[31m [ 95%][0m test/test_tools.py::OlderThan::test_days_older [32mPASSED[0m[31m [ 95%][0m test/test_tools.py::OlderThan::test_hours_not_older [32mPASSED[0m[31m [ 96%][0m test/test_tools.py::OlderThan::test_hours_older [32mPASSED[0m[31m [ 96%][0m test/test_tools.py::OlderThan::test_month_31th [32mPASSED[0m[31m [ 96%][0m test/test_tools.py::OlderThan::test_month_31th_plus_ms [32mPASSED[0m[31m [ 96%][0m test/test_tools.py::OlderThan::test_month_next_year [32mPASSED[0m[31m [ 96%][0m test/test_tools.py::OlderThan::test_month_next_year_plus_ms [32mPASSED[0m[31m [ 97%][0m test/test_tools.py::OlderThan::test_month_not_older [32mPASSED[0m[31m [ 97%][0m test/test_tools.py::OlderThan::test_month_older [32mPASSED[0m[31m [ 97%][0m test/test_tools.py::OlderThan::test_week_not_older [32mPASSED[0m[31m [ 97%][0m test/test_tools.py::OlderThan::test_week_older [32mPASSED[0m[31m [ 98%][0m test/test_tools.py::NestedDictUpdate::test_simple [32mPASSED[0m[31m [ 98%][0m test/test_uniquenessset.py::General::test_001_depency_workaround [32mPASSED[0m[31m [ 98%][0m test/test_uniquenessset.py::General::test_ctor_defaults [32mPASSED[0m[31m [ 98%][0m test/test_uniquenessset.py::General::test_deep_check [32mPASSED[0m[31m [ 99%][0m test/test_uniquenessset.py::General::test_fail_equal_without_equal_to [32mPASSED[0m[31m [ 99%][0m test/test_uniquenessset.py::General::test_size_mtime [32mPASSED[0m[31m [ 99%][0m test/test_uniquenessset.py::General::test_unique_myself [32mPASSED[0m[31m [ 99%][0m test/test_uniquenessset.py::General::test_unique_size_but_different_mtime [32mPASSED[0m[31m [100%][0m =================================== FAILURES =================================== [31m[1m_________________ BackInTime.test_local_snapshot_is_successful _________________[0m self = <test.test_backintime.BackInTime testMethod=test_local_snapshot_is_successful> def test_local_snapshot_is_successful(self): """From BIT initialization through snapshot From BIT initialization all the way through successful snapshot on a local mount. test one of the highest level interfaces a user could work with - the command line ensures that argument parsing, functionality, and output all work as expected is NOT intended to replace individual method tests, which are incredibly useful as well. Development notes (by Buhtz, 2023): Multiple tests do compare return codes and output on stdout. It is NOT tested what is on the file system. The intention might be a system test. But the asserts not qualified to answer the important questions and observe the intended behavior. Heavy refactoring is needed. But because of the "level" of that tests it won't happen in the near future. Also maintenance costs of this tests are damn high because every tiny modification of BIT gives a false fail of this test. Development notes (by Buhtz, 2024-05): It is just dumb stdout parsing. I tend to remove this test because of the calculation of its value and its maintenance costs. """ # ensure that we see full diffs of assert output if there are any self.maxDiff = None # create pristine source directory with single file subprocess.getoutput("chmod -R a+rwx /tmp/test && rm -rf /tmp/test") os.mkdir('/tmp/test') with open('/tmp/test/testfile', 'w') as f: f.write('some data') # create pristine snapshot directory subprocess.getoutput( "chmod -R a+rwx /tmp/snapshots && rm -rf /tmp/snapshots") os.mkdir('/tmp/snapshots') # remove restored directory subprocess.getoutput("rm -rf /tmp/restored") # install proper destination filesystem structure and verify output proc = subprocess.Popen(["./backintime", "--config", "test/config", "--share-path", self.sharePath, "check-config", # do not overwrite users crontab "--no-crontab"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = proc.communicate() msg = 'Returncode: {}\nstderr: {}\nstdout: {}' \ .format(proc.returncode, error.decode(), output.decode()) self.assertEqual(proc.returncode, 0, msg) self.assertRegex(output.decode(), re.compile(r''' Back In Time Version: \d+.\d+.\d+.* Back In Time comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; type `backintime --license' for details. (INFO: Update to config version \d+ )? \+--------------------------------\+ | Check/prepare snapshot path | \+--------------------------------\+ Check/prepare snapshot path: done \+--------------------------------\+ | Check config | \+--------------------------------\+ Check config: done Config .*test/config profile 'Main profile' is fine.''', re.MULTILINE)) # execute backup and verify output proc = subprocess.Popen(["./backintime", "--config", "test/config", "--share-path", self.sharePath, "backup"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = proc.communicate() msg = 'Returncode: {}\nstderr: {}\nstdout: {}' \ .format(proc.returncode, error.decode(), output.decode()) > self.assertEqual(proc.returncode, 0, msg) [1m[31mE AssertionError: 1 != 0 : Returncode: 1[0m [1m[31mE stderr: WARNING: Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown[0m [1m[31mE WARNING: D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files[0m [1m[31mE WARNING: Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure[0m [1m[31mE INFO: Lock[0m [1m[31mE INFO: Take a new snapshot. Profile: 1 Main profile[0m [1m[31mE INFO: Call rsync to take the snapshot[0m [1m[31mE INFO: Save config file[0m [1m[31mE INFO: Save permissions[0m [1m[31mE Traceback (most recent call last):[0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/backintime.py", line 1335, in <module>[0m [1m[31mE startApp()[0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/backintime.py", line 585, in startApp[0m [1m[31mE args.func(args)[0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/backintime.py", line 852, in backup[0m [1m[31mE ret = takeSnapshot(cfg, force)[0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/backintime.py", line 100, in takeSnapshot[0m [1m[31mE ret = snapshots.Snapshots(cfg).backup(force)[0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 896, in backup[0m [1m[31mE ret_val, ret_error = self.takeSnapshot([0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1493, in takeSnapshot[0m [1m[31mE self.backupPermissions(new_snapshot)[0m [1m[31mE File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1182, in backupPermissions[0m [1m[31mE decode = encfstools.Bounce()[0m [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31mE [0m [1m[31mE stdout: [0m [1m[31mE Back In Time[0m [1m[31mE Version: 1.5.4-rc1[0m [1m[31mE [0m [1m[31mE Back In Time comes with ABSOLUTELY NO WARRANTY.[0m [1m[31mE This is free software, and you are welcome to redistribute it[0m [1m[31mE under certain conditions; type `backintime --license' for details.[0m [1m[31mtest/test_backintime.py[0m:124: AssertionError [31m[1m______________ MirrorMirrorOnTheWall.test010_ruff_default_ruleset ______________[0m self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test010_ruff_default_ruleset> @unittest.skipUnless(RUFF_AVAILABLE, BASE_REASON.format('ruff')) def test010_ruff_default_ruleset(self): """Ruff in default mode.""" # ATTENTIION: Some settings are found in pyproject.toml cmd = [ 'ruff', 'check', # Additionally activate subset of special rules: # - PyLint (PL) # - PyCodestyle (E, W) # - flake8-gettext (INT) # - useless noqua (RUF100) '--extend-select=PL,E,W,INT,RUF100', # Ignore: redefined-loop-name '--ignore=PLW2901', '--line-length', str(PEP8_MAX_LINE_LENGTH), # Because of globally installed GNU gettext functions '--config', 'builtins=["_", "ngettext"]', # Ruff counting branches different from PyLint. # See: <https://www.reddit.com/r/learnpython/comments/ # 1buojae/comment/kxu0mp3> '--config', 'pylint.max-branches=13', '--config', 'flake8-quotes.inline-quotes = "single"', # one error per line (no context lines) '--output-format=concise', '--quiet', ] cmd.extend(full_test_files) proc = subprocess.run( cmd, check=False, universal_newlines=True, capture_output=True ) # No errors other then linter rules self.assertIn(proc.returncode, [0, 1], proc.stderr) error_n = len(proc.stdout.splitlines()) if error_n > 0: print(proc.stdout) > self.assertEqual(0, error_n, f'Ruff found {error_n} problem(s).') [1m[31mE AssertionError: 0 != 1 : Ruff found 1 problem(s).[0m [1m[31mtest/test_lint.py[0m:229: AssertionError ----------------------------- Captured stdout call ----------------------------- test/test_mount.py:205:80: E501 Line too long (89 > 79) [31m[1m_____________ MirrorMirrorOnTheWall.test020_flake8_default_ruleset _____________[0m self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test020_flake8_default_ruleset> @unittest.skipUnless(FLAKE8_AVAILABLE, BASE_REASON.format('flake8')) def test020_flake8_default_ruleset(self): """Flake8 in default mode.""" cmd = [ 'flake8', f'--max-line-length={PEP8_MAX_LINE_LENGTH}', '--builtins=_,ngettext', # '--enable-extensions=' ] cmd.extend(full_test_files) proc = subprocess.run( cmd, check=False, universal_newlines=True, capture_output=True ) error_n = len(proc.stdout.splitlines()) if error_n > 0: print(proc.stdout) > self.assertEqual(0, error_n, f'Flake8 found {error_n} problem(s).') [1m[31mE AssertionError: 0 != 2 : Flake8 found 2 problem(s).[0m [1m[31mtest/test_lint.py[0m:257: AssertionError ----------------------------- Captured stdout call ----------------------------- /home/travis/build/bit-team/backintime/common/test/test_mount.py:205:80: E501 line too long (89 > 79 characters) /home/travis/build/bit-team/backintime/common/test/test_mount.py:217:5: E303 too many blank lines (2) [31m[1m_____________ MirrorMirrorOnTheWall.test030_pylint_default_ruleset _____________[0m self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test030_pylint_default_ruleset> @unittest.skipUnless(PYLINT_AVAILABLE, BASE_REASON.format('PyLint')) def test030_pylint_default_ruleset(self): """Use Pylint with all default rules to check specific files. """ cmd = create_pylint_cmd() # Add py-files cmd.extend(full_test_files) r = subprocess.run( cmd, check=False, universal_newlines=True, capture_output=True) # Count lines except module headings error_n = len(list(filter(lambda line: not line.startswith('*****'), r.stdout.splitlines()))) print(r.stdout) > self.assertEqual(0, error_n, f'PyLint found {error_n} problems.') [1m[31mE AssertionError: 0 != 8 : PyLint found 8 problems.[0m [1m[31mtest/test_lint.py[0m:283: AssertionError ----------------------------- Captured stdout call ----------------------------- ************* Module test.test_mount test/test_mount.py:205:0: C0301: Line too long (89/79) (line-too-long) test/test_mount.py:217:4: C0116: Missing function or method docstring (missing-function-docstring) test/test_mount.py:217:4: C0103: Method name "test_first_preMountCheck" doesn't conform to snake_case naming style (invalid-name) test/test_mount.py:221:4: C0116: Missing function or method docstring (missing-function-docstring) test/test_mount.py:221:4: C0103: Method name "test_initialised_preMountCheck" doesn't conform to snake_case naming style (invalid-name) test/test_mount.py:225:4: C0116: Missing function or method docstring (missing-function-docstring) test/test_mount.py:229:4: C0116: Missing function or method docstring (missing-function-docstring) test/test_mount.py:232:4: C0116: Missing function or method docstring (missing-function-docstring) [31m[1m____________ MirrorMirrorOnTheWall.test050_pylint_exclusive_ruleset ____________[0m self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test050_pylint_exclusive_ruleset> @unittest.skipUnless(PYLINT_AVAILABLE, BASE_REASON.format('PyLint')) def test050_pylint_exclusive_ruleset(self): """Use Pylint to check for specific rules only. Some facts about PyLint - It is one of the slowest available linters. - It is able to catch lints other linters miss. """ # Explicit activate checks err_codes = [ 'C0305', # trailing-newlines 'C0325', # superfluous-parens 'C0410', # multiple-imports 'C0303', # trailing-whitespace 'E0100', # init-is-generator 'E0101', # return-in-init 'E0102', # function-redefined 'E0103', # not-in-loop 'E0106', # return-arg-in-generator 'E0213', # no-self-argument 'E0401', # import-error 'E0602', # undefined-variable 'E1101', # no-member 'I0021', # useless-suppression 'W0123', # eval-used 'W0237', # arguments-renamed 'W0311', # bad-indentation 'W0404', # reimported 'W0611', # unused-import 'W0612', # unused-variable 'W0614', # unused-wildcard-import 'W0707', # raise-missing-from 'W1301', # unused-format-string-key 'W1401', # anomalous-backslash-in-string (invalid escape sequence) 'W1515', # forgotten-debug-statement 'W4902', # deprecated-method 'W4904', # deprecated-class 'R0202', # no-classmethod-decorator 'R0203', # no-staticmethod-decorator # See PyLint bugs: # https://github.com/pylint-dev/pylint/issues/214 # https://github.com/pylint-dev/pylint/issues/7920 # 'R0801', # duplicate-code # Enable asap. This list is a selection of existing (not all!) # problems currently existing in the BIT code base. Quite easy to # fix because their count is low. # 'W0237', # arguments-renamed # 'W0221', # arguments-differ # 'W0603', # global-statement ] cmd = create_pylint_cmd(err_codes) # Add py-files cmd.extend(self._collect_py_files()) r = subprocess.run( cmd, check=False, universal_newlines=True, capture_output=True) # Count lines except module headings and output about duplicate code error_n = len(list(filter( lambda line: line[:2] not in ('**', ' ', '==', ' (', ''), r.stdout.splitlines()))) print(r.stdout) > self.assertEqual(0, error_n, f'PyLint found {error_n} problems.') [1m[31mE AssertionError: 0 != 2 : PyLint found 2 problems.[0m [1m[31mtest/test_lint.py[0m:358: AssertionError ----------------------------- Captured stdout call ----------------------------- ************* Module snapshots snapshots.py:1182:21: E1101: Module 'encfstools' has no 'Bounce' member (no-member) ************* Module test.test_encfstools test/test_encfstools.py:58:0: C0305: Trailing newlines (trailing-newlines) [31m[1m________________________ SystemTest.test_local_snapshot ________________________[0m self = <test.test_plugin_usercallback.SystemTest testMethod=test_local_snapshot> def test_local_snapshot(self): """User-callback response while doing a local snapshot""" config = Config( config_path=str(self.config_fp), data_path=str(self.temp_path / '.local' / 'share') ) full_snapshot_path = config.snapshotsFullPath() Path(full_snapshot_path).mkdir(parents=True) snapshot = Snapshots(config) # DevNote : Because BIT don't use Python's logging module there is # no way to use assertLogs(). Current solution is to capture # stdout/stderr. stdout = io.StringIO() stderr = io.StringIO() with redirect_stdout(stdout), redirect_stderr(stderr): # Result is inverted. 'True' means there was an error. > self.assertFalse(snapshot.backup()) [1m[31mtest/test_plugin_usercallback.py[0m:288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:896: in backup ret_val, ret_error = self.takeSnapshot( [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4816332cf0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" [31m[1m___________________ SnapshotWithSID.test_backup_permissions ____________________[0m self = <test.test_snapshots.SnapshotWithSID testMethod=test_backup_permissions> def test_backup_permissions(self): #TODO: add test for save permissions over SSH (and one SSH-test for path with spaces) infoFilePath = os.path.join(self.snapshotPath, '20151219-010324-123', 'fileinfo.bz2') include = self.cfg.include()[0][0] with TemporaryDirectory(dir = include) as tmp: file_path = os.path.join(tmp, 'foo') with open(file_path, 'wt') as f: f.write('bar') f.flush() self.sid.makeDirs(tmp) with open(self.sid.pathBackup(file_path), 'wt') as snapshot_f: snapshot_f.write('bar') snapshot_f.flush() > self.sn.backupPermissions(self.sid) [1m[31mtest/test_snapshots.py[0m:347: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4815fb1700>, sid = 20151219-010324-123 def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m____________________ SshPermissions.test_backup_permissions ____________________[0m self = <test.test_snapshots.SshPermissions testMethod=test_backup_permissions> def test_backup_permissions(self): """Backup file permissions in SSH backup mode.""" # --- prepare environment --- # config instance cfg = _init_basic_config() # snapshots profile snapshot = _init_ssh_profile(cfg) # backup source directory _init_source_path(cfg) # simulate a taken snapshot sid = _init_concrete_snapshot(cfg) # BUHTZ 2022-10-21: The mounting is needed but I didn't understand # all details yet. # mount mount_obj = _init_mounting(cfg) # ...unmount when test finished self.addCleanup(lambda: mount_obj.umount(cfg.current_hash_id)) # --- prepare the backup source --- # Does the concrete snapshot exists? self.assertTrue(sid.exists()) # The backup source path # e.g. /tmp/e2uij3y source_path = pathlib.Path(cfg.include()[0][0]) # ...exists? self.assertTrue(source_path.exists()) # create the test files in the backup source directory generic.create_test_files(str(source_path)) # --- Do the job to test. --- # backup permissions of files/folders in the backup source > rc = snapshot.backupPermissions(sid) [1m[31mtest/test_snapshots.py[0m:862: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c48232331d0>, sid = 20151219-010324-123 def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || d=1;test $d -eq 1 && mkdir "/tmp/DESTINATIONDIRparentk9fc4amv/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 11;test -w "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 12;test -x "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || d=1;test $d -eq 1 && mkdir "/tmp/DESTINATIONDIRparentk9fc4amv/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 11;test -w "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 12;test -x "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo', '/tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo on /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo from /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock [31m[1m_______________________________ Take.test_error ________________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_error> sleep = <MagicMock name='sleep' id='136649144349712'> @patch('time.sleep') # speed up unittest def test_error(self, sleep): with generic.mockPermissions(os.path.join(self.include.name, 'test')): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) > self.assertListEqual([True, True], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:182: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c481bb532f0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:182 Snapshots.test_error] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpi0mc2rr5 --exclude=/tmp/tmplxcj6uj6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptrt7umuc/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptrt7umuc/** --exclude=* / /tmp/tmpi0mc2rr5/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpi0mc2rr5 --exclude=/tmp/tmplxcj6uj6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptrt7umuc/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptrt7umuc/** --exclude=* / /tmp/tmpi0mc2rr5/backintime/test-host/test-user/1/new_snapshot/backup' WARNING: [test/test_takeSnapshot.py:182 Snapshots.test_error] Command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpi0mc2rr5 --exclude=/tmp/tmplxcj6uj6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptrt7umuc/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptrt7umuc/** --exclude=* / /tmp/tmpi0mc2rr5/backintime/test-host/test-user/1/new_snapshot/backup" returns 23 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m______________________________ Take.test_exclude _______________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_exclude> sleep = <MagicMock name='sleep' id='136649144417744'> @patch('time.sleep') # speed up unittest def test_exclude(self, sleep): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) self.cfg.setExclude(['bar/baz']) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c481bb626c0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpw_tb0nip --exclude=/tmp/tmpeft_3xcn/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3j6zjtpa/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp3j6zjtpa/** --exclude=* / /tmp/tmpw_tb0nip/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpw_tb0nip --exclude=/tmp/tmpeft_3xcn/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3j6zjtpa/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp3j6zjtpa/** --exclude=* / /tmp/tmpw_tb0nip/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m___________________________ Take.test_four_snapshots ___________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_four_snapshots> sleep = <MagicMock name='sleep' id='136649144415248'> @patch('time.sleep') # speed up unittest def test_four_snapshots(self, sleep): now = datetime.today() - timedelta(minutes = 6) sid1 = snapshots.SID(now, self.cfg) # Note: 'self.sn' is of type 'Snapshots' # First boolean: Snapshot succeeded # Second boolean: Error occurred self.assertListEqual( [True, False], # Snapshot without error > self.sn.takeSnapshot( sid=sid1, now=now, include_folders=[ (self.include.name, 0), # '0' means it is a file ] ) ) [1m[31mtest/test_takeSnapshot.py[0m:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c481bb632f0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp36ol1ufw --exclude=/tmp/tmpjdk_lqnf/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpc8kifrw1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpc8kifrw1/** --exclude=* / /tmp/tmp36ol1ufw/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp36ol1ufw --exclude=/tmp/tmpjdk_lqnf/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpc8kifrw1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpc8kifrw1/** --exclude=* / /tmp/tmp36ol1ufw/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m_____________________________ Take.test_new_exists _____________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_new_exists> sleep = <MagicMock name='sleep' id='136649144043280'> @patch('time.sleep') # speed up unittest def test_new_exists(self, sleep): new_snapshot = snapshots.NewSnapshot(self.cfg) new_snapshot.makeDirs() with open(new_snapshot.path('leftover'), 'wt') as f: f.write('foo') now = datetime.today() - timedelta(minutes = 6) sid1 = snapshots.SID(now, self.cfg) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:214: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c481bb09670>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1309 takeSnapshot] Removing leftover snapshot new_snapshot directory from last run DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Call command "rsync -a --delete -s /tmp/tmplepplmru/ /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot" DEBUG: [common/tools.py:2616 run] Starting command 'rsync -a --delete -s /tmp/tmplepplmru/ /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot' DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Command "rsync -a --delet" returns 0 INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpjj8so4rl --exclude=/tmp/tmpflrbwhi4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpjsyue3mt/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpjsyue3mt/** --exclude=* / /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpjj8so4rl --exclude=/tmp/tmpflrbwhi4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpjsyue3mt/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpjsyue3mt/** --exclude=* / /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m________________________ Take.test_new_exists_continue _________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_new_exists_continue> sleep = <MagicMock name='sleep' id='136649246544896'> @patch('time.sleep') # speed up unittest def test_new_exists_continue(self, sleep): new_snapshot = snapshots.NewSnapshot(self.cfg) new_snapshot.makeDirs() with open(new_snapshot.path('leftover'), 'wt') as f: f.write('foo') new_snapshot.saveToContinue = True now = datetime.today() - timedelta(minutes = 6) sid1 = snapshots.SID(now, self.cfg) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:229: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821cc92b0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1282 Snapshots.takeSnapshot] Found leftover snapshot 'new_snapshot' that can be continued. INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpft4ijw4o --exclude=/tmp/tmpm5vop3us/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpwcpktdsq/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpwcpktdsq/** --exclude=* / /tmp/tmpft4ijw4o/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpft4ijw4o --exclude=/tmp/tmpm5vop3us/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpwcpktdsq/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpwcpktdsq/** --exclude=* / /tmp/tmpft4ijw4o/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m_________________________ Take.test_spaces_in_exclude __________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_spaces_in_exclude> sleep = <MagicMock name='sleep' id='136649246724880'> @patch('time.sleep') # speed up unittest def test_spaces_in_exclude(self, sleep): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) exclude = os.path.join(self.include.name, 'test path with spaces') generic.create_test_files(exclude) self.cfg.setExclude([exclude]) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821cf51c0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp64oh0g2w --exclude=/tmp/tmpupc25iu6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpnxl2x6hu/ --include=/tmp/ --exclude=/tmp/tmpnxl2x6hu/test path with spaces --include=/tmp/tmpnxl2x6hu/** --exclude=* / /tmp/tmp64oh0g2w/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp64oh0g2w --exclude=/tmp/tmpupc25iu6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpnxl2x6hu/ --include=/tmp/ --exclude=/tmp/tmpnxl2x6hu/test path with spaces --include=/tmp/tmpnxl2x6hu/** --exclude=* / /tmp/tmp64oh0g2w/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m_________________________ Take.test_spaces_in_include __________________________[0m self = <test.test_takeSnapshot.Take testMethod=test_spaces_in_include> sleep = <MagicMock name='sleep' id='136649246919952'> @patch('time.sleep') # speed up unittest def test_spaces_in_include(self, sleep): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) include = os.path.join(self.include.name, 'test path with spaces') generic.create_test_files(include) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(include, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821d24bc0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq34xz3au --exclude=/tmp/tmpigs4mddz/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptkydegx9/test path with spaces/ --include=/tmp/tmptkydegx9/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptkydegx9/test path with spaces/** --exclude=* / /tmp/tmpq34xz3au/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq34xz3au --exclude=/tmp/tmpigs4mddz/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptkydegx9/test path with spaces/ --include=/tmp/tmptkydegx9/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptkydegx9/test path with spaces/** --exclude=* / /tmp/tmpq34xz3au/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions [31m[1m______________________________ TakeSSH.test_error ______________________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_error> sleep = <MagicMock name='sleep' id='136649246689472'> @patch('time.sleep') # speed up unittest def test_error(self, sleep): with generic.mockPermissions(os.path.join(self.include.name, 'test')): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) > self.assertListEqual([True, True], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:182: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821cec4d0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmpzcb9pj62/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzcb9pj62/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzcb9pj62/foo" || exit 11;test -w "/tmp/tmpzcb9pj62/foo" || exit 12;test -x "/tmp/tmpzcb9pj62/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmpzcb9pj62/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzcb9pj62/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzcb9pj62/foo" || exit 11;test -w "/tmp/tmpzcb9pj62/foo" || exit 12;test -x "/tmp/tmpzcb9pj62/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmpzcb9pj62/foo /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmpzcb9pj62/foo', '/tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpzcb9pj62/foo on /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:182 Snapshots.test_error] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpr1pa7og4/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpr1pa7og4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpur8wmy7f/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpur8wmy7f/** --exclude=* / travis@localhost:/tmp/tmpzcb9pj62/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpr1pa7og4/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpr1pa7og4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpur8wmy7f/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpur8wmy7f/** --exclude=* / travis@localhost:/tmp/tmpzcb9pj62/foo/backintime/test-host/test-user/1/new_snapshot/backup' WARNING: [test/test_takeSnapshot.py:182 Snapshots.test_error] Command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpr1pa7og4/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpr1pa7og4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpur8wmy7f/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpur8wmy7f/** --exclude=* / travis@localhost:/tmp/tmpzcb9pj62/foo/backintime/test-host/test-user/1/new_snapshot/backup" returns 23 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpzcb9pj62/foo from /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock [31m[1m_____________________________ TakeSSH.test_exclude _____________________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_exclude> sleep = <MagicMock name='sleep' id='136649144416400'> @patch('time.sleep') # speed up unittest def test_exclude(self, sleep): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) self.cfg.setExclude(['bar/baz']) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c481bb634d0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmp6e5kpb9u/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp6e5kpb9u/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp6e5kpb9u/foo" || exit 11;test -w "/tmp/tmp6e5kpb9u/foo" || exit 12;test -x "/tmp/tmp6e5kpb9u/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmp6e5kpb9u/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp6e5kpb9u/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp6e5kpb9u/foo" || exit 11;test -w "/tmp/tmp6e5kpb9u/foo" || exit 12;test -x "/tmp/tmp6e5kpb9u/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmp6e5kpb9u/foo /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmp6e5kpb9u/foo', '/tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp6e5kpb9u/foo on /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpkw5_bves/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpkw5_bves/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpezww7y8w/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmpezww7y8w/** --exclude=* / travis@localhost:/tmp/tmp6e5kpb9u/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpkw5_bves/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpkw5_bves/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpezww7y8w/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmpezww7y8w/** --exclude=* / travis@localhost:/tmp/tmp6e5kpb9u/foo/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp6e5kpb9u/foo from /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock [31m[1m_________________________ TakeSSH.test_four_snapshots __________________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_four_snapshots> sleep = <MagicMock name='sleep' id='136649246958096'> @patch('time.sleep') # speed up unittest def test_four_snapshots(self, sleep): now = datetime.today() - timedelta(minutes = 6) sid1 = snapshots.SID(now, self.cfg) # Note: 'self.sn' is of type 'Snapshots' # First boolean: Snapshot succeeded # Second boolean: Error occurred self.assertListEqual( [True, False], # Snapshot without error > self.sn.takeSnapshot( sid=sid1, now=now, include_folders=[ (self.include.name, 0), # '0' means it is a file ] ) ) [1m[31mtest/test_takeSnapshot.py[0m:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821d2d880>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmp59xydea8/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp59xydea8/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp59xydea8/foo" || exit 11;test -w "/tmp/tmp59xydea8/foo" || exit 12;test -x "/tmp/tmp59xydea8/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmp59xydea8/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp59xydea8/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp59xydea8/foo" || exit 11;test -w "/tmp/tmp59xydea8/foo" || exit 12;test -x "/tmp/tmp59xydea8/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmp59xydea8/foo /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmp59xydea8/foo', '/tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp59xydea8/foo on /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp62u8wi2i/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp62u8wi2i/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpm35l0cza/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpm35l0cza/** --exclude=* / travis@localhost:/tmp/tmp59xydea8/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp62u8wi2i/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp62u8wi2i/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpm35l0cza/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpm35l0cza/** --exclude=* / travis@localhost:/tmp/tmp59xydea8/foo/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp59xydea8/foo from /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock [31m[1m___________________________ TakeSSH.test_new_exists ____________________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_new_exists> sleep = <MagicMock name='sleep' id='136649246718768'> @patch('time.sleep') # speed up unittest def test_new_exists(self, sleep): new_snapshot = snapshots.NewSnapshot(self.cfg) new_snapshot.makeDirs() with open(new_snapshot.path('leftover'), 'wt') as f: f.write('foo') now = datetime.today() - timedelta(minutes = 6) sid1 = snapshots.SID(now, self.cfg) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:214: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821cf2270>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmpdzggm3v6/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpdzggm3v6/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpdzggm3v6/foo" || exit 11;test -w "/tmp/tmpdzggm3v6/foo" || exit 12;test -x "/tmp/tmpdzggm3v6/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmpdzggm3v6/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpdzggm3v6/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpdzggm3v6/foo" || exit 11;test -w "/tmp/tmpdzggm3v6/foo" || exit 12;test -x "/tmp/tmpdzggm3v6/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmpdzggm3v6/foo /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmpdzggm3v6/foo', '/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpdzggm3v6/foo on /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock INFO: [common/snapshots.py:1309 takeSnapshot] Removing leftover snapshot new_snapshot directory from last run DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Call command "rsync -a --delete -s --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 /tmp/tmp40wtak85/ travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot" DEBUG: [common/tools.py:2616 run] Starting command 'rsync -a --delete -s --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 /tmp/tmp40wtak85/ travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot' DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Command "rsync -a --delet" returns 0 ERROR: [common/snapshots.py:2706 makeDirs] Failed to make dirs '/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426/backintime/test-host/test-user/1/new_snapshot/backup': [Errno 17] File exists: '/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp5f1l1kb1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmp5f1l1kb1/** --exclude=* / travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp5f1l1kb1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmp5f1l1kb1/** --exclude=* / travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpdzggm3v6/foo from /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock [31m[1m_______________________ TakeSSH.test_new_exists_continue _______________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_new_exists_continue> sleep = <MagicMock name='sleep' id='136649247413296'> @patch('time.sleep') # speed up unittest def test_new_exists_continue(self, sleep): new_snapshot = snapshots.NewSnapshot(self.cfg) new_snapshot.makeDirs() with open(new_snapshot.path('leftover'), 'wt') as f: f.write('foo') new_snapshot.saveToContinue = True now = datetime.today() - timedelta(minutes = 6) sid1 = snapshots.SID(now, self.cfg) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:229: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821d9d940>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmptekk121e/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmptekk121e/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmptekk121e/foo" || exit 11;test -w "/tmp/tmptekk121e/foo" || exit 12;test -x "/tmp/tmptekk121e/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmptekk121e/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmptekk121e/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmptekk121e/foo" || exit 11;test -w "/tmp/tmptekk121e/foo" || exit 12;test -x "/tmp/tmptekk121e/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmptekk121e/foo /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmptekk121e/foo', '/tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmptekk121e/foo on /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock INFO: [common/snapshots.py:1282 Snapshots.takeSnapshot] Found leftover snapshot 'new_snapshot' that can be continued. DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmphrqhjd23/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmphrqhjd23/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpkeh4h646/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpkeh4h646/** --exclude=* / travis@localhost:/tmp/tmptekk121e/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmphrqhjd23/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmphrqhjd23/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpkeh4h646/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpkeh4h646/** --exclude=* / travis@localhost:/tmp/tmptekk121e/foo/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmptekk121e/foo from /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock [31m[1m________________________ TakeSSH.test_spaces_in_exclude ________________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_spaces_in_exclude> sleep = <MagicMock name='sleep' id='136649247423520'> @patch('time.sleep') # speed up unittest def test_spaces_in_exclude(self, sleep): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) exclude = os.path.join(self.include.name, 'test path with spaces') generic.create_test_files(exclude) self.cfg.setExclude([exclude]) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821d9f980>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmpzxbemqqi/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzxbemqqi/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzxbemqqi/foo" || exit 11;test -w "/tmp/tmpzxbemqqi/foo" || exit 12;test -x "/tmp/tmpzxbemqqi/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmpzxbemqqi/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzxbemqqi/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzxbemqqi/foo" || exit 11;test -w "/tmp/tmpzxbemqqi/foo" || exit 12;test -x "/tmp/tmpzxbemqqi/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmpzxbemqqi/foo /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmpzxbemqqi/foo', '/tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpzxbemqqi/foo on /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq71r5ag9/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpq71r5ag9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmplzvoa8of/ --include=/tmp/ --exclude=/tmp/tmplzvoa8of/test path with spaces --include=/tmp/tmplzvoa8of/** --exclude=* / travis@localhost:/tmp/tmpzxbemqqi/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq71r5ag9/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpq71r5ag9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmplzvoa8of/ --include=/tmp/ --exclude=/tmp/tmplzvoa8of/test path with spaces --include=/tmp/tmplzvoa8of/** --exclude=* / travis@localhost:/tmp/tmpzxbemqqi/foo/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpzxbemqqi/foo from /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock [31m[1m________________________ TakeSSH.test_spaces_in_include ________________________[0m self = <test.test_takeSnapshot.TakeSSH testMethod=test_spaces_in_include> sleep = <MagicMock name='sleep' id='136649246688416'> @patch('time.sleep') # speed up unittest def test_spaces_in_include(self, sleep): now = datetime.today() sid1 = snapshots.SID(now, self.cfg) include = os.path.join(self.include.name, 'test path with spaces') generic.create_test_files(include) > self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(include, 0),])) [1m[31mtest/test_takeSnapshot.py[0m:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [1m[31msnapshots.py[0m:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <snapshots.Snapshots object at 0x7c4821cf0ec0>, sid = new_snapshot def backupPermissions(self, sid): """ Save permissions (owner, group, read-, write- and executable) for all files in Snapshot ``sid`` into snapshots fileInfoDict. Args: sid (SID): snapshot that should be scanned Returns: int: Return code of rsync. """ logger.info('Save permissions', self) self.setTakeSnapshotMessage(0, _('Saving permissions…')) fileInfoDict = FileInfoDict() if self.config.snapshotsMode() == 'ssh_encfs': decode = encfstools.Decode(self.config, False) else: > decode = encfstools.Bounce() [1m[31mE AttributeError: module 'encfstools' has no attribute 'Bounce'[0m [1m[31msnapshots.py[0m:1182: AttributeError ----------------------------- Captured stderr call ----------------------------- DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en" DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22" DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-o', 'PreferredAuthentications=publickey', '-p', '22', 'travis@localhost', 'exit'] DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmp0d9xecei/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp0d9xecei/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp0d9xecei/foo" || exit 11;test -w "/tmp/tmp0d9xecei/foo" || exit 12;test -x "/tmp/tmp0d9xecei/foo" || exit 13;exit 20'] DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmp0d9xecei/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp0d9xecei/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp0d9xecei/foo" || exit 11;test -w "/tmp/tmp0d9xecei/foo" || exit 12;test -x "/tmp/tmp0d9xecei/foo" || exit 13;exit 20 DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20 DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmp0d9xecei/foo /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmp0d9xecei/foo', '/tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp0d9xecei/foo on /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22'] INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp1evqnxta/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp1evqnxta/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpflallo3m/test path with spaces/ --include=/tmp/tmpflallo3m/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpflallo3m/test path with spaces/** --exclude=* / travis@localhost:/tmp/tmp0d9xecei/foo/backintime/test-host/test-user/1/new_snapshot/backup" DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp1evqnxta/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp1evqnxta/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpflallo3m/test path with spaces/ --include=/tmp/tmpflallo3m/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpflallo3m/test path with spaces/** --exclude=* / travis@localhost:/tmp/tmp0d9xecei/foo/backintime/test-host/test-user/1/new_snapshot/backup' DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Command "rsync --recursiv" returns 0 INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends: DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0) DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1) DEBUG: [common/tools.py:1595 keyringSupported] Not found Metaclasses: ['keyring.backends.Gnome.Keyring', 'keyring.backends.kwallet.Keyring', 'keyring.backend.SecretServiceKeyring', 'keyring.backend.GnomeKeyring', 'keyring.backend.KDEWallet'] DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>] DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime. DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file. DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start'] DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8 ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one. DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp0d9xecei/foo from /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/locks/5426.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock [36m[1m=========================== short test summary info ============================[0m [31mFAILED[0m test/test_backintime.py::[1mBackInTime::test_local_snapshot_is_successful[0m - AssertionError: 1 != 0 : Returncode: 1 stderr: WARNING: Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown WARNING: D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files WARNING: Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure INFO: Lock INFO: Take a new snapshot. Profile: 1 Main profile INFO: Call rsync to take the snapshot INFO: Save config file INFO: Save permissions Traceback (most recent call last): File "/home/travis/build/bit-team/backintime/common/backintime.py", line 1335, in <module> startApp() File "/home/travis/build/bit-team/backintime/common/backintime.py", line 585, in startApp args.func(args) File "/home/travis/build/bit-team/backintime/common/backintime.py", line 852, in backup ret = takeSnapshot(cfg, force) File "/home/travis/build/bit-team/backintime/common/backintime.py", line 100, in takeSnapshot ret = snapshots.Snapshots(cfg).backup(force) File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 896, in backup ret_val, ret_error = self.takeSnapshot( File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1493, in takeSnapshot self.backupPermissions(new_snapshot) File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1182, in backupPermissions decode = encfstools.Bounce() AttributeError: module 'encfstools' has no attribute 'Bounce' stdout: Back In Time Version: 1.5.4-rc1 Back In Time comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; type `backintime --license' for details. [31mFAILED[0m test/test_lint.py::[1mMirrorMirrorOnTheWall::test010_ruff_default_ruleset[0m - AssertionError: 0 != 1 : Ruff found 1 problem(s). [31mFAILED[0m test/test_lint.py::[1mMirrorMirrorOnTheWall::test020_flake8_default_ruleset[0m - AssertionError: 0 != 2 : Flake8 found 2 problem(s). [31mFAILED[0m test/test_lint.py::[1mMirrorMirrorOnTheWall::test030_pylint_default_ruleset[0m - AssertionError: 0 != 8 : PyLint found 8 problems. [31mFAILED[0m test/test_lint.py::[1mMirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset[0m - AssertionError: 0 != 2 : PyLint found 2 problems. [31mFAILED[0m test/test_plugin_usercallback.py::[1mSystemTest::test_local_snapshot[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_snapshots.py::[1mSnapshotWithSID::test_backup_permissions[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_snapshots.py::[1mSshPermissions::test_backup_permissions[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_error[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_exclude[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_four_snapshots[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_new_exists[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_new_exists_continue[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_spaces_in_exclude[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTake::test_spaces_in_include[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_error[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_exclude[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_four_snapshots[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_new_exists[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_new_exists_continue[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_spaces_in_exclude[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31mFAILED[0m test/test_takeSnapshot.py::[1mTakeSSH::test_spaces_in_include[0m - AttributeError: module 'encfstools' has no attribute 'Bounce' [31m============ [31m[1m22 failed[0m, [32m404 passed[0m, [33m1 skipped[0m[31m in 126.91s (0:02:06)[0m[31m =============[0m make: *** [Makefile:620: unittest-v] Error 1 travis_time:end:042fcc22:start=1739772727252187837,finish=1739772854908153185,duration=127655965348,event=script [0K[31;1mThe command "make unittest-v" exited with 2.[0m travis_time:start:02b007f0 [0K$ cd .. travis_time:end:02b007f0:start=1739772854912306815,finish=1739772854914903935,duration=2597120,event=script [0K[32;1mThe command "cd .." exited with 0.[0m travis_time:start:08417e56 [0K$ cd qt travis_time:end:08417e56:start=1739772854918713450,finish=1739772854921228424,duration=2514974,event=script [0K[32;1mThe command "cd qt" exited with 0.[0m travis_time:start:21cd4a18 [0K$ ./configure Replacement of python path with "/usr/bin/python3" successful. All OK. Now run: make sudo make install travis_time:end:21cd4a18:start=1739772854924929151,finish=1739772855001917428,duration=76988277,event=script [0K[32;1mThe command "./configure" exited with 0.[0m travis_time:start:35b4b073 [0K$ make # Man pages for i in $(ls -1 man/C/); do case $i in *.gz|*~) continue;; *) gzip -n --best -c man/C/$i > man/C/${i}.gz;; esac; done travis_time:end:35b4b073:start=1739772855005973640,finish=1739772855014599268,duration=8625628,event=script [0K[32;1mThe command "make" exited with 0.[0m travis_time:start:0b42b5fc [0K$ pytest --verbose [1m============================= test session starts ==============================[0m platform linux -- Python 3.12.4, pytest-8.3.1, pluggy-1.5.0 -- /home/travis/virtualenv/python3.12.4/bin/python cachedir: .pytest_cache rootdir: /home/travis/build/bit-team/backintime/qt plugins: pyfakefs-5.7.4 [1mcollecting ... [0m[1m collected 9 items [0m test/test_lint.py::MirrorMirrorOnTheWall::test005_ensure_linter_versions [32mPASSED[0m[32m [ 11%][0m test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset [32mPASSED[0m[32m [ 22%][0m test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset [32mPASSED[0m[32m [ 33%][0m test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset [32mPASSED[0m[32m [ 44%][0m test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset [32mPASSED[0m[32m [ 55%][0m test/test_statedata.py::IsSingleton::test_content [32mPASSED[0m[32m [ 66%][0m test/test_statedata.py::IsSingleton::test_identity [32mPASSED[0m[32m [ 77%][0m test/test_statedata.py::Properties::test_profile_not_exist [32mPASSED[0m[32m [ 88%][0m test/test_statedata.py::Properties::test_read_empty_global [32mPASSED[0m[32m [100%][0m [32m============================== [32m[1m9 passed[0m[32m in 27.94s[0m[32m ==============================[0m travis_time:end:0b42b5fc:start=1739772855018533231,finish=1739772883285042033,duration=28266508802,event=script [0K[32;1mThe command "pytest --verbose" exited with 0.[0m Done. Your build exited with 1.