travis_fold:start:worker_info Worker information hostname: 4248e6ba-cad9-48d4-8f65-46b7c2266580@1.worker-com-oss-6ff4ffc9b7-55dr6.gce-production-3 version: v6.2.24 https://github.com/travis-ci/worker/tree/ee57d650a7692c1ac03f74ac073d0fd150c9f030 instance: travis-job-3b018f30-f015-4aed-b257-78bf538a345d travis-ci-ubuntu-2204-1732291639-53689d97 (via amqp) startup: 5.965213915s travis_fold:end:worker_info travis_time:start:14d4402c travis_time:end:14d4402c:start=1739772660243557859,finish=1739772660612822160,duration=369264301,event=no_world_writable_dirs travis_time:start:3055c1de travis_time:end:3055c1de:start=1739772660616271656,finish=1739772660625276400,duration=9004744,event=agent travis_time:start:005ca3d2 travis_time:end:005ca3d2:start=1739772660628218972,finish=1739772660630691805,duration=2472833,event=check_unsupported travis_time:start:01e62034 travis_fold:start:system_info Build system information Build language: python Build dist: jammy Build id: 274236385 Job id: 630633625 Runtime kernel version: 6.8.0-1018-gcp VM: default travis-build version: 6b157a1c Build image provisioning date and time Fri Nov 22 04:28:26 PM UTC 2024 Operating System Details Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy Systemd Version systemd 249 (249.11-0ubuntu3.12) Cookbooks Version be2ab50 https://github.com/travis-ci/travis-cookbooks/tree/be2ab50 git version git version 2.47.0 bash version GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu) gcc version gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 docker version 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: clang version clang version 18.1.8 jq version jq-1.7.1 bats version Bats 1.11.0 shellcheck version 0.10.0 shfmt version v3.8.0 ccache version 4.5.1 cmake version cmake version 3.29.0 heroku version heroku/9.5.0 linux-x64 node-v16.20.2 imagemagick version Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org md5deep version 4.4 mercurial version version 6.5.2 mysql version mysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu)) openssl version OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022) packer version Packer v1.11.2 postgresql client version psql (PostgreSQL) 14.13 (Ubuntu 14.13-0ubuntu0.22.04.1) ragel version Ragel State Machine Compiler version 6.10 March 2017 sudo version 1.9.9 gzip version gzip 1.10 zip version Zip 3.0 vim version VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Oct 16 2024 17:27:14) iptables version iptables v1.8.7 (nf_tables) curl version 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 wget version GNU Wget 1.21.2 built on linux-gnu. rsync version rsync version 3.2.7 protocol version 31 nvm version 0.40.1 perlbrew version /home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95 phpenv version rbenv 1.3.0 rvm version rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io] default ruby version ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux] default python version Python 3.10.14 ElasticSearch version 7.16.3 Installed Firefox version firefox 99.0 MongoDB version MongoDB 6.0.19 ant version Apache Ant(TM) version 1.10.12 compiled on January 17 1970 mvn version Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9) gradle version Gradle 8.3! lein version Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM Pre-installed Node.js versions 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 phpenv versions system 8.1 * 8.1.2 (set by /home/travis/.phpenv/version) hhvm-stable hhvm composer --version Composer version 2.3.7 2022-06-06 16:43:28 Pre-installed Ruby versions ruby-2.7.8 ruby-3.3.5 travis_fold:end:system_info  travis_time:end:01e62034:start=1739772660633739883,finish=1739772660649497108,duration=15757225,event=show_system_info travis_time:start:13fc2601 travis_time:end:13fc2601:start=1739772660653597676,finish=1739772660676396910,duration=22799234,event=rm_riak_source travis_time:start:1bdb0aad travis_time:end:1bdb0aad:start=1739772660679997382,finish=1739772660685640361,duration=5642979,event=fix_rwky_redis travis_time:start:151b9580 travis_time:end:151b9580:start=1739772660688863841,finish=1739772661247747200,duration=558883359,event=wait_for_network travis_time:start:0604524e travis_time:end:0604524e:start=1739772661250999264,finish=1739772661533834958,duration=282835694,event=update_apt_keys travis_time:start:2c87cf61 travis_time:end:2c87cf61:start=1739772661536921648,finish=1739772661600167280,duration=63245632,event=fix_hhvm_source travis_time:start:0d762a70 travis_time:end:0d762a70:start=1739772661603551581,finish=1739772661606066096,duration=2514515,event=update_mongo_arch travis_time:start:1270f690 travis_time:end:1270f690:start=1739772661609021357,finish=1739772661646661643,duration=37640286,event=fix_sudo_enabled_trusty travis_time:start:098808c0 travis_time:end:098808c0:start=1739772661650054386,finish=1739772661652311100,duration=2256714,event=update_glibc travis_time:start:170aa1fc travis_time:end:170aa1fc:start=1739772661655308742,finish=1739772661687221119,duration=31912377,event=clean_up_path travis_time:start:11a80028 travis_time:end:11a80028:start=1739772661690287654,finish=1739772661704558597,duration=14270943,event=fix_resolv_conf travis_time:start:14daf00c travis_time:end:14daf00c:start=1739772661707643447,finish=1739772661727804962,duration=20161515,event=fix_etc_hosts travis_time:start:0bb1a42c travis_time:end:0bb1a42c:start=1739772661731017351,finish=1739772661739271720,duration=8254369,event=fix_mvn_settings_xml travis_time:start:1783252c travis_time:end:1783252c:start=1739772661742229226,finish=1739772661755949396,duration=13720170,event=no_ipv6_localhost travis_time:start:0c921948 travis_time:end:0c921948:start=1739772661758935917,finish=1739772661761010381,duration=2074464,event=fix_etc_mavenrc travis_time:start:00a30374 OK travis_time:end:00a30374:start=1739772661763872196,finish=1739772662227295903,duration=463423707,event=fix_perforce_key travis_time:start:12b59335 travis_time:end:12b59335:start=1739772662230735197,finish=1739772662233709202,duration=2974005,event=fix_wwdr_certificate travis_time:start:21a844cc travis_time:end:21a844cc:start=1739772662236582813,finish=1739772662309050410,duration=72467597,event=put_localhost_first travis_time:start:07c8d236 travis_time:end:07c8d236:start=1739772662312414118,finish=1739772662316199053,duration=3784935,event=home_paths travis_time:start:00fc5adb travis_time:end:00fc5adb:start=1739772662319156821,finish=1739772662335837156,duration=16680335,event=disable_initramfs travis_time:start:0092144e travis_time:end:0092144e:start=1739772662338926259,finish=1739772662485263887,duration=146337628,event=disable_ssh_roaming travis_time:start:18b6a7b0 travis_time:end:18b6a7b0:start=1739772662488283910,finish=1739772662490421588,duration=2137678,event=debug_tools travis_time:start:0886b4e8 travis_time:end:0886b4e8:start=1739772662493384727,finish=1739772662496253218,duration=2868491,event=uninstall_oclint travis_time:start:3403b8c9 travis_time:end:3403b8c9:start=1739772662499087247,finish=1739772662501885754,duration=2798507,event=rvm_use travis_time:start:0ece3a2c travis_time:end:0ece3a2c:start=1739772662504773402,finish=1739772662516169295,duration=11395893,event=rm_etc_boto_cfg travis_time:start:03f5c24e travis_time:end:03f5c24e:start=1739772662519198095,finish=1739772662522338801,duration=3140706,event=rm_oraclejdk8_symlink travis_time:start:02bd0e78 travis_time:end:02bd0e78:start=1739772662525212209,finish=1739772662654661647,duration=129449438,event=enable_i386 travis_time:start:0cedb5c4 travis_time:end:0cedb5c4:start=1739772662657928396,finish=1739772662661819303,duration=3890907,event=update_rubygems travis_time:start:0d7c1f8e travis_time:end:0d7c1f8e:start=1739772662664896064,finish=1739772663706050991,duration=1041154927,event=ensure_path_components travis_time:start:1286cc5f travis_time:end:1286cc5f:start=1739772663709301916,finish=1739772663711538003,duration=2236087,event=redefine_curl travis_time:start:02aeb236 travis_time:end:02aeb236:start=1739772663714465260,finish=1739772663716573144,duration=2107884,event=nonblock_pipe travis_time:start:0f8626d1 travis_time:end:0f8626d1:start=1739772663719496425,finish=1739772685144863661,duration=21425367236,event=apt_get_update travis_time:start:0206ccc8 travis_time:end:0206ccc8:start=1739772685148417593,finish=1739772685150765721,duration=2348128,event=deprecate_xcode_64 travis_time:start:2541adca travis_time:end:2541adca:start=1739772685153721752,finish=1739772688898935300,duration=3745213548,event=update_heroku travis_time:start:080d4fe6 travis_time:end:080d4fe6:start=1739772688902377277,finish=1739772688904674599,duration=2297322,event=shell_session_update travis_time:start:0b0cd3d8 travis_fold:start:docker_mtu_and_registry_mirrors travis_fold:end:docker_mtu_and_registry_mirrors travis_time:end:0b0cd3d8:start=1739772688907592500,finish=1739772692683723064,duration=3776130564,event=set_docker_mtu_and_registry_mirrors travis_time:start:10a5ae2d travis_fold:start:Docker travis_fold:end:Docker travis_time:end:10a5ae2d:start=1739772692686947903,finish=1739772692689273089,duration=2325186,event=docker_config travis_time:start:316ffdb0 travis_fold:start:resolvconf travis_fold:end:resolvconf travis_time:end:316ffdb0:start=1739772692692234791,finish=1739772692761428315,duration=69193524,event=resolvconf travis_time:start:0a166f9f travis_time:end:0a166f9f:start=1739772692764912148,finish=1739772692965296769,duration=200384621,event=maven_central_mirror travis_time:start:09c9311a travis_time:end:09c9311a:start=1739772692968561142,finish=1739772693090642943,duration=122081801,event=maven_https 3.11 is not installed; attempting download Downloading archive: https://storage.googleapis.com/travis-ci-language-archives/python/binaries/ubuntu/22.04/x86_64/python-3.11.tar.bz2 travis_time:start:0057c870 $ curl -sSf --retry 5 -o python-3.11.tar.bz2 ${archive_url} travis_time:end:0057c870:start=1739772693165372647,finish=1739772693768255964,duration=602883317,event=configure travis_time:start:00e184fc $ sudo tar xjf python-3.11.tar.bz2 --directory / travis_time:end:00e184fc:start=1739772693771956818,finish=1739772709918519014,duration=16146562196,event=configure travis_time:start:041d736e travis_time:end:041d736e:start=1739772709950834905,finish=1739772709953616717,duration=2781812,event=fix_ps4 travis_fold:start:ssh_known_hosts.0 Adding ssh known hosts $ mkdir -p ${TRAVIS_HOME}/.ssh travis_time:start:10ada4a0 $ 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|Qd9y5rLI62hLFJWgmfKOOUg/SzA=|l+C50SscT6KkBDItTMT3KpVR1DQ= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3HFI6rtIj/GuMEyW1RTjiBc7+J7Vpt8P4SH+v052iAYR3E2U2zZLGrmdvSRbQlmT/gV35L078opxGKb+NYDnZ6pgeb9/id4k5UEKKtLriarKEchv1BtOhmwy+7dFV0sGqGMfcrUQDpFweJUThsiRMAFN+CguOsLIZBz6n5TIXAloW/jewoOtylEfINfTJEODKvaPl7gYORLYUpzLGuldjvyxos+FILF+Hsb38rOu1YLjWiEVk25KzQ1BHocZwk2Yin50wQHcm3JfXb95xFRGvJdCZGwICNAfr66u9tAXzG3eYOhd178trKl16GZZeXOXP7y0Sgw9GQFToBF+ybybZHq3zj5r0KTqyKatnh3ejg7K702pQpITKL+FtmHNg9SYWhSK1awwrdoTrVTNvEYF73OOxzX0cUEM24DwgXZ9IjULbaEXCRPL+zxuDMILjid/qLyWUE9zDf21CAiFI2jgwF6Zf+OnhuzpG+lvI2pR4Q2Ks1vfxchvchgCruCtSvVU= |1|FRNCitLK+K3MxbRQdUYLi+DCLMI=|QMgkAzGLzYDnu7iD5c6OqKAwjl8= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMIe0gbM8XDsBJmBnij8+Cb/EpVgrtMJzR3JRv5h+tdVqFRtMiz5zud9VJwPN3Yke/gSetvEWasxJG2rHVLoupc= travis_time:end:10ada4a0:start=1739772709961096837,finish=1739772710021346024,duration=60249187,event=checkout travis_fold:end:ssh_known_hosts.0 travis_time:start:1fb5b5c3  travis_fold:start:git.checkout travis_time:start:0ebc2770 travis_time:end:0ebc2770:start=1739772710029312629,finish=1739772710040909741,duration=11597112,event=checkout travis_time:start:091795fc $ git clone --depth=50 https://github.com/bit-team/backintime.git bit-team/backintime Cloning into 'bit-team/backintime'... remote: Enumerating objects: 932, done. remote: Counting objects: 0% (1/932) remote: Counting objects: 1% (10/932) remote: Counting objects: 2% (19/932) remote: Counting objects: 3% (28/932) remote: Counting objects: 4% (38/932) remote: Counting objects: 5% (47/932) remote: Counting objects: 6% (56/932) remote: Counting objects: 7% (66/932) remote: Counting objects: 8% (75/932) remote: Counting objects: 9% (84/932) remote: Counting objects: 10% (94/932) remote: Counting objects: 11% (103/932) remote: Counting objects: 12% (112/932) remote: Counting objects: 13% (122/932) remote: Counting objects: 14% (131/932) remote: Counting objects: 15% (140/932) remote: Counting objects: 16% (150/932) remote: Counting objects: 17% (159/932) remote: Counting objects: 18% (168/932) remote: Counting objects: 19% (178/932) remote: Counting objects: 20% (187/932) remote: Counting objects: 21% (196/932) remote: Counting objects: 22% (206/932) remote: Counting objects: 23% (215/932) remote: Counting objects: 24% (224/932) remote: Counting objects: 25% (233/932) remote: Counting objects: 26% (243/932) remote: Counting objects: 27% (252/932) remote: Counting objects: 28% (261/932) remote: Counting objects: 29% (271/932) remote: Counting objects: 30% (280/932) remote: Counting objects: 31% (289/932) remote: Counting objects: 32% (299/932) remote: Counting objects: 33% (308/932) remote: Counting objects: 34% (317/932) remote: Counting objects: 35% (327/932) remote: Counting objects: 36% (336/932) remote: Counting objects: 37% (345/932) remote: Counting objects: 38% (355/932) remote: Counting objects: 39% (364/932) remote: Counting objects: 40% (373/932) remote: Counting objects: 41% (383/932) remote: Counting objects: 42% (392/932) remote: Counting objects: 43% (401/932) remote: Counting objects: 44% (411/932) remote: Counting objects: 45% (420/932) remote: Counting objects: 46% (429/932) remote: Counting objects: 47% (439/932) remote: Counting objects: 48% (448/932) remote: Counting objects: 49% (457/932) remote: Counting objects: 50% (466/932) remote: Counting objects: 51% (476/932) remote: Counting objects: 52% (485/932) remote: Counting objects: 53% (494/932) remote: Counting objects: 54% (504/932) remote: Counting objects: 55% (513/932) remote: Counting objects: 56% (522/932) remote: Counting objects: 57% (532/932) remote: Counting objects: 58% (541/932) remote: Counting objects: 59% (550/932) remote: Counting objects: 60% (560/932) remote: Counting objects: 61% (569/932) remote: Counting objects: 62% (578/932) remote: Counting objects: 63% (588/932) remote: Counting objects: 64% (597/932) remote: Counting objects: 65% (606/932) remote: Counting objects: 66% (616/932) remote: Counting objects: 67% (625/932) remote: Counting objects: 68% (634/932) remote: Counting objects: 69% (644/932) remote: Counting objects: 70% (653/932) remote: Counting objects: 71% (662/932) remote: Counting objects: 72% (672/932) remote: Counting objects: 73% (681/932) remote: Counting objects: 74% (690/932) remote: Counting objects: 75% (699/932) remote: Counting objects: 76% (709/932) remote: Counting objects: 77% (718/932) remote: Counting objects: 78% (727/932) remote: Counting objects: 79% (737/932) remote: Counting objects: 80% (746/932) remote: Counting objects: 81% (755/932) remote: Counting objects: 82% (765/932) remote: Counting objects: 83% (774/932) remote: Counting objects: 84% (783/932) remote: Counting objects: 85% (793/932) remote: Counting objects: 86% (802/932) remote: Counting objects: 87% (811/932) remote: Counting objects: 88% (821/932) remote: Counting objects: 89% (830/932) remote: Counting objects: 90% (839/932) remote: Counting objects: 91% (849/932) remote: Counting objects: 92% (858/932) remote: Counting objects: 93% (867/932) remote: Counting objects: 94% (877/932) remote: Counting objects: 95% (886/932) remote: Counting objects: 96% (895/932) remote: Counting objects: 97% (905/932) remote: Counting objects: 98% (914/932) remote: Counting objects: 99% (923/932) remote: Counting objects: 100% (932/932) remote: Counting objects: 100% (932/932), done. remote: Compressing objects: 0% (1/558) remote: Compressing objects: 1% (6/558) remote: Compressing objects: 2% (12/558) remote: Compressing objects: 3% (17/558) remote: Compressing objects: 4% (23/558) remote: Compressing objects: 5% (28/558) remote: Compressing objects: 6% (34/558) remote: Compressing objects: 7% (40/558) remote: Compressing objects: 8% (45/558) remote: Compressing objects: 9% (51/558) remote: Compressing objects: 10% (56/558) remote: Compressing objects: 11% (62/558) remote: Compressing objects: 12% (67/558) remote: Compressing objects: 13% (73/558) remote: Compressing objects: 14% (79/558) remote: Compressing objects: 15% (84/558) remote: Compressing objects: 16% (90/558) remote: Compressing objects: 17% (95/558) remote: Compressing objects: 18% (101/558) remote: Compressing objects: 19% (107/558) remote: Compressing objects: 20% (112/558) remote: Compressing objects: 21% (118/558) remote: Compressing objects: 22% (123/558) remote: Compressing objects: 23% (129/558) remote: Compressing objects: 24% (134/558) remote: Compressing objects: 25% (140/558) remote: Compressing objects: 26% (146/558) remote: Compressing objects: 27% (151/558) remote: Compressing objects: 28% (157/558) remote: Compressing objects: 29% (162/558) remote: Compressing objects: 30% (168/558) remote: Compressing objects: 31% (173/558) remote: Compressing objects: 32% (179/558) remote: Compressing objects: 33% (185/558) remote: Compressing objects: 34% (190/558) remote: Compressing objects: 35% (196/558) remote: Compressing objects: 36% (201/558) remote: Compressing objects: 37% (207/558) remote: Compressing objects: 38% (213/558) remote: Compressing objects: 39% (218/558) remote: Compressing objects: 40% (224/558) remote: Compressing objects: 41% (229/558) remote: Compressing objects: 42% (235/558) remote: Compressing objects: 43% (240/558) remote: Compressing objects: 44% (246/558) remote: Compressing objects: 45% (252/558) remote: Compressing objects: 46% (257/558) remote: Compressing objects: 47% (263/558) remote: Compressing objects: 48% (268/558) remote: Compressing objects: 49% (274/558) remote: Compressing objects: 50% (279/558) remote: Compressing objects: 51% (285/558) remote: Compressing objects: 52% (291/558) remote: Compressing objects: 53% (296/558) remote: Compressing objects: 54% (302/558) remote: Compressing objects: 55% (307/558) remote: Compressing objects: 56% (313/558) remote: Compressing objects: 57% (319/558) remote: Compressing objects: 58% (324/558) remote: Compressing objects: 59% (330/558) remote: Compressing objects: 60% (335/558) remote: Compressing objects: 61% (341/558) remote: Compressing objects: 62% (346/558) remote: Compressing objects: 63% (352/558) remote: Compressing objects: 64% (358/558) remote: Compressing objects: 65% (363/558) remote: Compressing objects: 66% (369/558) remote: Compressing objects: 67% (374/558) remote: Compressing objects: 68% (380/558) remote: Compressing objects: 69% (386/558) remote: Compressing objects: 70% (391/558) remote: Compressing objects: 71% (397/558) remote: Compressing objects: 72% (402/558) remote: Compressing objects: 73% (408/558) remote: Compressing objects: 74% (413/558) remote: Compressing objects: 75% (419/558) remote: Compressing objects: 76% (425/558) remote: Compressing objects: 77% (430/558) remote: Compressing objects: 78% (436/558) remote: Compressing objects: 79% (441/558) remote: Compressing objects: 80% (447/558) remote: Compressing objects: 81% (452/558) remote: Compressing objects: 82% (458/558) remote: Compressing objects: 83% (464/558) remote: Compressing objects: 84% (469/558) remote: Compressing objects: 85% (475/558) remote: Compressing objects: 86% (480/558) remote: Compressing objects: 87% (486/558) remote: Compressing objects: 88% (492/558) remote: Compressing objects: 89% (497/558) remote: Compressing objects: 90% (503/558) remote: Compressing objects: 91% (508/558) remote: Compressing objects: 92% (514/558) remote: Compressing objects: 93% (519/558) remote: Compressing objects: 94% (525/558) remote: Compressing objects: 95% (531/558) remote: Compressing objects: 96% (536/558) remote: Compressing objects: 97% (542/558) remote: Compressing objects: 98% (547/558) remote: Compressing objects: 99% (553/558) remote: Compressing objects: 100% (558/558) remote: Compressing objects: 100% (558/558), done. 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) 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 | 21.64 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% (121/541) Resolving deltas: 23% (125/541) Resolving deltas: 24% (130/541) Resolving deltas: 25% (136/541) Resolving deltas: 26% (142/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% (185/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:091795fc:start=1739772710044811825,finish=1739772711168276825,duration=1123465000,event=checkout $ cd bit-team/backintime travis_time:start:04cb24a5 $ git fetch origin +refs/pull/2039/merge: --depth=50 remote: Enumerating objects: 47, done. remote: Counting objects: 2% (1/42) remote: Counting objects: 4% (2/42) remote: Counting objects: 7% (3/42) remote: Counting objects: 9% (4/42) remote: Counting objects: 11% (5/42) remote: Counting objects: 14% (6/42) remote: Counting objects: 16% (7/42) remote: Counting objects: 19% (8/42) remote: Counting objects: 21% (9/42) remote: Counting objects: 23% (10/42) remote: Counting objects: 26% (11/42) remote: Counting objects: 28% (12/42) remote: Counting objects: 30% (13/42) remote: Counting objects: 33% (14/42) remote: Counting objects: 35% (15/42) remote: Counting objects: 38% (16/42) remote: Counting objects: 40% (17/42) remote: Counting objects: 42% (18/42) remote: Counting objects: 45% (19/42) remote: Counting objects: 47% (20/42) remote: Counting objects: 50% (21/42) remote: Counting objects: 52% (22/42) remote: Counting objects: 54% (23/42) remote: Counting objects: 57% (24/42) remote: Counting objects: 59% (25/42) remote: Counting objects: 61% (26/42) remote: Counting objects: 64% (27/42) remote: Counting objects: 66% (28/42) remote: Counting objects: 69% (29/42) remote: Counting objects: 71% (30/42) remote: Counting objects: 73% (31/42) remote: Counting objects: 76% (32/42) remote: Counting objects: 78% (33/42) remote: Counting objects: 80% (34/42) remote: Counting objects: 83% (35/42) remote: Counting objects: 85% (36/42) remote: Counting objects: 88% (37/42) remote: Counting objects: 90% (38/42) remote: Counting objects: 92% (39/42) remote: Counting objects: 95% (40/42) remote: Counting objects: 97% (41/42) remote: Counting objects: 100% (42/42) remote: Counting objects: 100% (42/42), done. remote: Compressing objects: 7% (1/14) remote: Compressing objects: 14% (2/14) remote: Compressing objects: 21% (3/14) remote: Compressing objects: 28% (4/14) remote: Compressing objects: 35% (5/14) remote: Compressing objects: 42% (6/14) remote: Compressing objects: 50% (7/14) remote: Compressing objects: 57% (8/14) remote: Compressing objects: 64% (9/14) remote: Compressing objects: 71% (10/14) remote: Compressing objects: 78% (11/14) remote: Compressing objects: 85% (12/14) remote: Compressing objects: 92% (13/14) remote: Compressing objects: 100% (14/14) remote: Compressing objects: 100% (14/14), done. 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) remote: Total 33 (delta 25), reused 26 (delta 19), pack-reused 0 (from 0) 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:04cb24a5:start=1739772711172666588,finish=1739772711366267475,duration=193600887,event=checkout $ git checkout -qf FETCH_HEAD travis_fold:end:git.checkout  travis_time:end:04cb24a5:start=1739772711172666588,finish=1739772711440730902,duration=268064314,event=checkout travis_time:start:03540198  Setting environment variables from .travis.yml $ export PYTHONUNBUFFERED=1 travis_time:end:03540198:start=1739772711444617494,finish=1739772711447858950,duration=3241456,event=env travis_time:start:27a221ec $ source ~/virtualenv/python3.11/bin/activate travis_time:end:27a221ec:start=1739772711451751187,finish=1739772711457730978,duration=5979791,event= $ python --version Python 3.11.9 $ pip --version pip 24.1.2 from /home/travis/virtualenv/python3.11.9/lib/python3.11/site-packages/pip (python 3.11) travis_fold:start:before_install.1 travis_time:start:16927460 $ sudo rm -f /etc/apt/sources.list.d/mongodb*.list travis_time:end:16927460:start=1739772711692156890,finish=1739772711704484942,duration=12328052,event=before_install travis_fold:end:before_install.1 travis_fold:start:before_install.2 travis_time:start:12580dbc $ 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:12580dbc:start=1739772711708607095,finish=1739772711831754563,duration=123147468,event=before_install travis_fold:end:before_install.2 travis_fold:start:before_install.3 travis_time:start:0e7dcea8 $ 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:0e7dcea8:start=1739772711835882035,finish=1739772714528214741,duration=2692332706,event=before_install travis_fold:end:before_install.3 travis_fold:start:before_install.4 travis_time:start:088d88e8 $ 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 (115 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:088d88e8:start=1739772714532401803,finish=1739772720740569397,duration=6208167594,event=before_install travis_fold:end:before_install.4 travis_fold:start:install.1 travis_time:start:0610ad5c $ pip install -U pip Requirement already satisfied: pip in /home/travis/virtualenv/python3.11.9/lib/python3.11/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:0610ad5c:start=1739772720745178016,finish=1739772722598254451,duration=1853076435,event=install travis_fold:end:install.1 travis_fold:start:install.2 travis_time:start:20a38537 $ 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.11.9/lib/python3.11/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 importlib_metadata>=4.11.4 (from keyring) Downloading importlib_metadata-8.6.1-py3-none-any.whl.metadata (4.7 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 zipp>=3.20 (from importlib_metadata>=4.11.4->keyring) Downloading zipp-3.21.0-py3-none-any.whl.metadata (3.7 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 backports.tarfile (from jaraco.context->keyring) Downloading backports.tarfile-1.2.0-py3-none-any.whl.metadata (2.0 kB) Collecting cffi>=1.12 (from cryptography>=2.0->SecretStorage>=3.2->keyring) Downloading cffi-1.17.1-cp311-cp311-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 importlib_metadata-8.6.1-py3-none-any.whl (26 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 zipp-3.21.0-py3-none-any.whl (9.6 kB) Downloading backports.tarfile-1.2.0-py3-none-any.whl (30 kB) Downloading more_itertools-10.6.0-py3-none-any.whl (63 kB) Downloading cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (467 kB) Downloading pycparser-2.22-py3-none-any.whl (117 kB) Installing collected packages: zipp, tomlkit, ruff, pyflakes, pyfakefs, pycparser, pycodestyle, more-itertools, mccabe, jeepney, isort, dill, backports.tarfile, astroid, pylint, jaraco.functools, jaraco.context, jaraco.classes, importlib_metadata, flake8, cffi, cryptography, SecretStorage, keyring Successfully installed SecretStorage-3.3.3 astroid-3.3.8 backports.tarfile-1.2.0 cffi-1.17.1 cryptography-44.0.1 dill-0.3.9 flake8-7.1.2 importlib_metadata-8.6.1 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 zipp-3.21.0 travis_time:end:20a38537:start=1739772722602309400,finish=1739772727919549427,duration=5317240027,event=install travis_fold:end:install.2 travis_fold:start:install.3 travis_time:start:037edb98 $ 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-cp311-cp311-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-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl (293 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-cp311-cp311-linux_x86_64.whl size=121954 sha256=1ae9e285209fe2a29476d45df94b9c504b7c115458b24846d5f66f3a3e682dad Stored in directory: /home/travis/.cache/pip/wheels/84/33/c2/bb34ffd273446cb228d2154aa702365159f5a7dcc5278584ce 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:037edb98:start=1739772727923747175,finish=1739772743962744708,duration=16038997533,event=install travis_fold:end:install.3 travis_fold:start:install.4 travis_time:start:0d7c98a5 $ 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:53MFwZpI/dT9/hgYBYr06i/IkGaDrpQniKTT/OIWWNo travis@travis-job-3b018f30-f015-4aed-b257-78bf538a345d The key's randomart image is: +---[RSA 2048]----+ | .. .oo . | | ..o..o.o .| | ...o=.. .| | . ..o o. .| | * . . S . o.. | |BoE * . o ... .| |==o= + .. o . o.| |..*. o .. o . .| |.+... .. | +----[SHA256]-----+ travis_time:end:0d7c98a5:start=1739772743967270637,finish=1739772744053646385,duration=86375748,event=install travis_fold:end:install.4 travis_fold:start:install.5 travis_time:start:17ccf4fc $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys travis_time:end:17ccf4fc:start=1739772744057801152,finish=1739772744061658032,duration=3856880,event=install travis_fold:end:install.5 travis_fold:start:install.6 travis_time:start:2e49e20c $ eval `ssh-agent -s` Agent pid 5167 travis_time:end:2e49e20c:start=1739772744065249129,finish=1739772744075251923,duration=10002794,event=install travis_fold:end:install.6 travis_time:start:17d1db1e $ 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:17d1db1e:start=1739772744079024900,finish=1739772744369288123,duration=290263223,event=script The command "python -m compileall common common/test common/plugins qt qt/test qt/plugins" exited with 0. travis_time:start:001a20fa $ cd common travis_time:end:001a20fa:start=1739772744373406698,finish=1739772744376055125,duration=2648427,event=script The command "cd common" exited with 0. travis_time:start:0c319b01 $ ./configure Replacement of python path with "/usr/bin/python3" successful. All OK. Now run: make sudo make install travis_time:end:0c319b01:start=1739772744379696591,finish=1739772744527170261,duration=147473670,event=script The command "./configure" exited with 0. travis_time:start:06194aac $ make unittest-v /home/travis/virtualenv/python3.11.9/bin/pytest -v ============================= test session starts ============================== platform linux -- Python 3.11.9, pytest-8.3.2, pluggy-1.5.0 -- /home/travis/virtualenv/python3.11.9/bin/python cachedir: .pytest_cache rootdir: /home/travis/build/bit-team/backintime/common plugins: pyfakefs-5.7.4 collecting ...  collected 427 items  test/test_applicationinstance.py::General::test_autoExit_other_running_process PASSED [ 0%] test/test_applicationinstance.py::General::test_autoExit_unique_process PASSED [ 0%] test/test_applicationinstance.py::General::test_auto_flock PASSED [ 0%] test/test_applicationinstance.py::General::test_create_and_remove_pid_file PASSED [ 0%] test/test_applicationinstance.py::General::test_existing_process_with_correct_proc_cmdline PASSED [ 1%] test/test_applicationinstance.py::General::test_existing_process_with_correct_procname PASSED [ 1%] test/test_applicationinstance.py::General::test_existing_process_with_wrong_pid PASSED [ 1%] test/test_applicationinstance.py::General::test_existing_process_with_wrong_procname PASSED [ 1%] test/test_applicationinstance.py::General::test_flock_exclusive PASSED [ 2%] test/test_applicationinstance.py::General::test_flock_exclusive_fail PASSED [ 2%] test/test_applicationinstance.py::General::test_killing_existing_process PASSED [ 2%] test/test_applicationinstance.py::General::test_leftover_empty_lockfile PASSED [ 2%] test/test_applicationinstance.py::General::test_no_pid_file PASSED [ 3%] test/test_applicationinstance.py::General::test_non_existing_process PASSED [ 3%] test/test_applicationinstance.py::General::test_pid_file_content PASSED [ 3%] test/test_applicationinstance.py::General::test_readPidFile PASSED [ 3%] test/test_applicationinstance.py::General::test_readPidFile_fail PASSED [ 3%] test/test_applicationinstance.py::General::test_thread_write_without_flock PASSED [ 4%] test/test_applicationinstance.py::General::test_write_pid_fail PASSED [ 4%] test/test_argparser.py::General::test_config PASSED [ 4%] test/test_argparser.py::General::test_config_no_path PASSED [ 4%] test/test_argparser.py::General::test_debug PASSED [ 5%] test/test_argparser.py::General::test_invalid_arg PASSED [ 5%] test/test_argparser.py::General::test_quiet PASSED [ 5%] test/test_argparser.py::Backup::test_backwards_compatiblity_alias PASSED [ 5%] test/test_argparser.py::Backup::test_multi_args PASSED [ 6%] test/test_argparser.py::Backup::test_profile PASSED [ 6%] test/test_argparser.py::Backup::test_profile_and_profile_id PASSED [ 6%] test/test_argparser.py::Backup::test_profile_id PASSED [ 6%] test/test_argparser.py::Backup::test_quiet PASSED [ 7%] test/test_argparser.py::Backup::test_simple PASSED [ 7%] test/test_argparser.py::Restore::test_empty_where PASSED [ 7%] test/test_argparser.py::Restore::test_local_backup_and_no_local_backup PASSED [ 7%] test/test_argparser.py::Restore::test_multi_args PASSED [ 7%] test/test_argparser.py::Restore::test_simple PASSED [ 8%] test/test_argparser.py::Restore::test_snapshot_id_index PASSED [ 8%] test/test_argparser.py::Restore::test_what_space_in_path PASSED [ 8%] test/test_argparser.py::Restore::test_what_where_snapshot_id PASSED [ 8%] test/test_argparser.py::Restore::test_what_where_snapshot_id_multi_args PASSED [ 9%] test/test_argparser.py::Restore::test_where_space_in_path PASSED [ 9%] test/test_backintime.py::BackInTime::test_diagnostics_arg PASSED [ 9%] test/test_backintime.py::BackInTime::test_local_snapshot_is_successful FAILED [ 9%] test/test_backintime.py::BackInTime::test_quiet_mode PASSED [ 10%] test/test_backup.py::TestBackup::test_already_running PASSED [ 10%] test/test_backup.py::TestBackup::test_backup PASSED [ 10%] test/test_backup.py::TestBackup::test_backup_async PASSED [ 10%] test/test_backup.py::TestBackup::test_backup_async_profile_2 PASSED [ 11%] test/test_backup.py::TestBackup::test_backup_async_with_checksum PASSED [ 11%] test/test_backup.py::TestBackup::test_cant_backup PASSED [ 11%] test/test_backup.py::TestBackup::test_mount_exception PASSED [ 11%] test/test_backup.py::TestBackup::test_no_backup_on_battery PASSED [ 11%] test/test_backup.py::TestBackup::test_no_changes PASSED [ 12%] test/test_backup.py::TestBackup::test_not_configured PASSED [ 12%] test/test_backup.py::TestBackup::test_plugin_prevented_backup PASSED [ 12%] test/test_backup.py::TestBackup::test_scheduled PASSED [ 12%] test/test_backup.py::TestBackup::test_takeSnapshot_exception_cleanup PASSED [ 13%] test/test_backup.py::TestBackup::test_umount_exception PASSED [ 13%] test/test_backup.py::TestBackup::test_with_errors PASSED [ 13%] test/test_config.py::RemoveOldSnapshotsDate::test_day PASSED [ 13%] test/test_config.py::RemoveOldSnapshotsDate::test_invalid_unit PASSED [ 14%] test/test_config.py::RemoveOldSnapshotsDate::test_week_always_monday PASSED [ 14%] test/test_config.py::RemoveOldSnapshotsDate::test_week_ignore_current PASSED [ 14%] test/test_config.py::RemoveOldSnapshotsDate::test_year_ignore_current_month PASSED [ 14%] test/test_config.py::SshCommand::test_cipher_aes256_cbc PASSED [ 14%] test/test_config.py::SshCommand::test_cipher_disabled PASSED [ 15%] test/test_config.py::SshCommand::test_custom_args PASSED [ 15%] test/test_config.py::SshCommand::test_disable_args PASSED [ 15%] test/test_config.py::SshCommand::test_full_command PASSED [ 15%] test/test_config.py::SshCommand::test_nice_and_ionice PASSED [ 16%] test/test_config.py::SshCommand::test_nice_and_ionice_without_command PASSED [ 16%] test/test_config.py::SshCommand::test_prefix PASSED [ 16%] test/test_config.py::SshCommand::test_prefix_false PASSED [ 16%] test/test_config.py::SshCommand::test_quote PASSED [ 17%] test/test_config.py::SshCommand::test_quote_without_command PASSED [ 17%] test/test_config.py::SshCommand::test_without_command PASSED [ 17%] test/test_config_crontab.py::Cron::test_cron_lines PASSED [ 17%] test/test_config_crontab.py::CrontabDebug::test_crontab_contains_debug PASSED [ 18%] test/test_config_crontab.py::CrontabDebug::test_crontab_without_debug PASSED [ 18%] test/test_configfile.py::TestConfigFile::test_boolValue PASSED [ 18%] test/test_configfile.py::TestConfigFile::test_boolValue_default PASSED [ 18%] test/test_configfile.py::TestConfigFile::test_hasKey PASSED [ 18%] test/test_configfile.py::TestConfigFile::test_intValue PASSED [ 19%] test/test_configfile.py::TestConfigFile::test_intValue_default PASSED [ 19%] test/test_configfile.py::TestConfigFile::test_listValue_bool PASSED [ 19%] test/test_configfile.py::TestConfigFile::test_listValue_default PASSED [ 19%] test/test_configfile.py::TestConfigFile::test_listValue_empty_list PASSED [ 20%] test/test_configfile.py::TestConfigFile::test_listValue_int PASSED [ 20%] test/test_configfile.py::TestConfigFile::test_listValue_invalid_type PASSED [ 20%] test/test_configfile.py::TestConfigFile::test_listValue_missing_values PASSED [ 20%] test/test_configfile.py::TestConfigFile::test_listValue_str PASSED [ 21%] test/test_configfile.py::TestConfigFile::test_listValue_tuple PASSED [ 21%] test/test_configfile.py::TestConfigFile::test_listValue_tuple_missing_values PASSED [ 21%] test/test_configfile.py::TestConfigFile::test_listValue_wrong_size PASSED [ 21%] test/test_configfile.py::TestConfigFile::test_listValue_zero_count PASSED [ 22%] test/test_configfile.py::TestConfigFile::test_load PASSED [ 22%] test/test_configfile.py::TestConfigFile::test_remapKey PASSED [ 22%] test/test_configfile.py::TestConfigFile::test_remapKeyRegex PASSED [ 22%] test/test_configfile.py::TestConfigFile::test_remove_key PASSED [ 22%] test/test_configfile.py::TestConfigFile::test_remove_keys_start_with PASSED [ 23%] test/test_configfile.py::TestConfigFile::test_remove_keys_start_with_not_matching_prefix PASSED [ 23%] test/test_configfile.py::TestConfigFile::test_save PASSED [ 23%] test/test_configfile.py::TestConfigFile::test_setBoolValue PASSED [ 23%] test/test_configfile.py::TestConfigFile::test_setIntValue PASSED [ 24%] test/test_configfile.py::TestConfigFile::test_setListValue_bool PASSED [ 24%] test/test_configfile.py::TestConfigFile::test_setListValue_int PASSED [ 24%] test/test_configfile.py::TestConfigFile::test_setListValue_invalid_type_for_type_key PASSED [ 24%] test/test_configfile.py::TestConfigFile::test_setListValue_invalid_type_for_value PASSED [ 25%] test/test_configfile.py::TestConfigFile::test_setListValue_remove_leftovers PASSED [ 25%] test/test_configfile.py::TestConfigFile::test_setListValue_remove_leftovers_tuple PASSED [ 25%] test/test_configfile.py::TestConfigFile::test_setListValue_str PASSED [ 25%] test/test_configfile.py::TestConfigFile::test_setListValue_tuple PASSED [ 25%] test/test_configfile.py::TestConfigFile::test_setListValue_tuple_missing_values PASSED [ 26%] test/test_configfile.py::TestConfigFile::test_setStrValue PASSED [ 26%] test/test_configfile.py::TestConfigFile::test_strValue PASSED [ 26%] test/test_configfile.py::TestConfigFile::test_strValue_default PASSED [ 26%] test/test_configfile.py::TestConfigFileWithProfiles::test_addProfile PASSED [ 27%] test/test_configfile.py::TestConfigFileWithProfiles::test_current_profile PASSED [ 27%] test/test_configfile.py::TestConfigFileWithProfiles::test_current_profile_by_name PASSED [ 27%] test/test_configfile.py::TestConfigFileWithProfiles::test_get_profile_key PASSED [ 27%] test/test_configfile.py::TestConfigFileWithProfiles::test_hasProfileKey PASSED [ 28%] test/test_configfile.py::TestConfigFileWithProfiles::test_load PASSED [ 28%] test/test_configfile.py::TestConfigFileWithProfiles::test_profileExists PASSED [ 28%] test/test_configfile.py::TestConfigFileWithProfiles::test_profileExistsByName PASSED [ 28%] test/test_configfile.py::TestConfigFileWithProfiles::test_profileName PASSED [ 29%] test/test_configfile.py::TestConfigFileWithProfiles::test_profiles PASSED [ 29%] test/test_configfile.py::TestConfigFileWithProfiles::test_profilesSortedByName PASSED [ 29%] test/test_configfile.py::TestConfigFileWithProfiles::test_remapProfileKey PASSED [ 29%] test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfile PASSED [ 29%] test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfileKey PASSED [ 30%] test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfileKeysStartsWith PASSED [ 30%] test/test_configfile.py::TestConfigFileWithProfiles::test_setProfileName PASSED [ 30%] test/test_configfile.py::TestConfigFileWithProfiles::test_set_profile_value PASSED [ 30%] test/test_diagnostics.py::Diagnostics::test_content_minimal PASSED [ 31%] test/test_diagnostics.py::Diagnostics::test_no_extern_version PASSED [ 31%] test/test_diagnostics.py::Diagnostics::test_no_ressource_warning PASSED [ 31%] test/test_diagnostics.py::Diagnostics::test_replace_user_path PASSED [ 31%] test/test_diagnostics.py::Diagnostics::test_some_content PASSED [ 32%] test/test_encfstools.py::TestEncFS_mount::test_dummy PASSED [ 32%] test/test_encfstools.py::TestEncFS_mount::test_initialise_encfs PASSED [ 32%] test/test_languages.py::General::test_completeness_key_types PASSED [ 32%] test/test_languages.py::General::test_completeness_value_types PASSED [ 33%] test/test_lint.py::MirrorMirrorOnTheWall::test005_ensure_linter_versions PASSED [ 33%] test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset FAILED [ 33%] test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset FAILED [ 33%] test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset FAILED [ 33%] test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset FAILED [ 34%] test/test_lint.py::MirrorMirrorOnTheWall::test060_reuse SKIPPED (Usi...) [ 34%] test/test_mount.py::CheckLocks::test_foreign_lock PASSED [ 34%] test/test_mount.py::CheckLocks::test_foreign_lock_notexisting_pid PASSED [ 34%] test/test_mount.py::CheckLocks::test_ignore_own_lock PASSED [ 35%] test/test_mount.py::CheckLocks::test_lock_remove PASSED [ 35%] test/test_mount.py::CheckLocks::test_not_existing_dir PASSED [ 35%] test/test_mount.py::CheckLocks::test_own_lock_but_diff_tmpmount PASSED [ 35%] test/test_mount.py::CheckLocks::test_symlinks_remove PASSED [ 36%] test/test_mount.py::CheckHighLevelLocalMount::test_first_preMountCheck PASSED [ 36%] test/test_mount.py::CheckHighLevelLocalMount::test_initialised_preMountCheck PASSED [ 36%] test/test_mount.py::CheckHighLevelLocalMount::test_mount PASSED [ 36%] test/test_mount.py::CheckHighLevelLocalMount::test_remount_to_new_local_mount PASSED [ 37%] test/test_mount.py::CheckHighLevelLocalMount::test_umount PASSED [ 37%] test/test_plugin_usercallback.py::UserCallback::test_reason_appExit PASSED [ 37%] test/test_plugin_usercallback.py::UserCallback::test_reason_appStart PASSED [ 37%] test/test_plugin_usercallback.py::UserCallback::test_reason_error PASSED [ 37%] test/test_plugin_usercallback.py::UserCallback::test_reason_mount PASSED [ 38%] test/test_plugin_usercallback.py::UserCallback::test_reason_processBegin PASSED [ 38%] test/test_plugin_usercallback.py::UserCallback::test_reason_processEnd PASSED [ 38%] test/test_plugin_usercallback.py::UserCallback::test_reason_processnewSnapshot PASSED [ 38%] test/test_plugin_usercallback.py::UserCallback::test_reason_unmount PASSED [ 39%] test/test_plugin_usercallback.py::SystemTest::test_local_snapshot FAILED [ 39%] test/test_restore.py::TestRestore::test_backup PASSED [ 39%] test/test_restore.py::TestRestore::test_delete PASSED [ 39%] test/test_restore.py::TestRestore::test_no_backup PASSED [ 40%] test/test_restore.py::TestRestore::test_only_new PASSED [ 40%] test/test_restore.py::TestRestore::test_restore_folder_to_different_destination PASSED [ 40%] test/test_restore.py::TestRestore::test_restore_multiple_files PASSED [ 40%] test/test_restore.py::TestRestore::test_restore_to_different_destination PASSED [ 40%] test/test_restore.py::TestRestoreLocal::test_restore PASSED [ 41%] test/test_restore.py::TestRestoreLocal::test_restore_file_with_spaces PASSED [ 41%] test/test_restore.py::TestRestoreSSH::test_restore PASSED [ 41%] test/test_restore.py::TestRestoreSSH::test_restore_file_with_spaces PASSED [ 41%] test/test_schedule.py::Schedule::test_bit_to_crontab PASSED [ 42%] test/test_schedule.py::Schedule::test_remove_bit_entries PASSED [ 42%] test/test_sid.py::TestSID::test_displayID PASSED [ 42%] test/test_sid.py::TestSID::test_displayName PASSED [ 42%] test/test_sid.py::TestSID::test_equal_sid PASSED [ 43%] test/test_sid.py::TestSID::test_exists PASSED [ 43%] test/test_sid.py::TestSID::test_failed PASSED [ 43%] test/test_sid.py::TestSID::test_fileInfo PASSED [ 43%] test/test_sid.py::TestSID::test_fileInfoErrorRead PASSED [ 44%] test/test_sid.py::TestSID::test_fileInfoErrorWrite PASSED [ 44%] test/test_sid.py::TestSID::test_hash PASSED [ 44%] test/test_sid.py::TestSID::test_info PASSED [ 44%] test/test_sid.py::TestSID::test_isExistingPathInsideSnapshotFolder PASSED [ 44%] test/test_sid.py::TestSID::test_lastChecked PASSED [ 45%] test/test_sid.py::TestSID::test_log PASSED [ 45%] test/test_sid.py::TestSID::test_log_filter PASSED [ 45%] test/test_sid.py::TestSID::test_makeDirs PASSED [ 45%] test/test_sid.py::TestSID::test_makeWritable PASSED [ 46%] test/test_sid.py::TestSID::test_name PASSED [ 46%] test/test_sid.py::TestSID::test_new_object_with_invalid_type PASSED [ 46%] test/test_sid.py::TestSID::test_new_object_with_invalid_value PASSED [ 46%] test/test_sid.py::TestSID::test_new_object_with_valid_date PASSED [ 47%] test/test_sid.py::TestSID::test_path PASSED [ 47%] test/test_sid.py::TestSID::test_setLog_binary PASSED [ 47%] test/test_sid.py::TestSID::test_sort_sids PASSED [ 47%] test/test_sid.py::TestSID::test_split PASSED [ 48%] test/test_sid.py::TestSID::test_tag PASSED [ 48%] test/test_sid.py::TestSID::test_withoutTag PASSED [ 48%] test/test_sid.py::TestNewSnapshot::test_create_new PASSED [ 48%] test/test_sid.py::TestNewSnapshot::test_hasChanges PASSED [ 48%] test/test_sid.py::TestNewSnapshot::test_saveToContinue PASSED [ 49%] test/test_sid.py::TestRootSnapshot::test_create PASSED [ 49%] test/test_sid.py::TestRootSnapshot::test_path PASSED [ 49%] test/test_sid.py::TestIterSnapshots::test_iter_snapshots PASSED [ 49%] test/test_sid.py::TestIterSnapshots::test_lastSnapshot PASSED [ 50%] test/test_sid.py::TestIterSnapshots::test_list_invalid_snapshot PASSED [ 50%] test/test_sid.py::TestIterSnapshots::test_list_new_snapshot PASSED [ 50%] test/test_sid.py::TestIterSnapshots::test_list_not_reverse PASSED [ 50%] test/test_sid.py::TestIterSnapshots::test_list_snapshot_without_backup PASSED [ 51%] test/test_sid.py::TestIterSnapshots::test_list_symlink_last_snapshot PASSED [ 51%] test/test_sid.py::TestIterSnapshots::test_list_valid PASSED [ 51%] test/test_sid.py::TestIterSnapshots::test_list_without_new_snapshot PASSED [ 51%] test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_iterSnapshots PASSED [ 51%] test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_lastSnapshots PASSED [ 52%] test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_listSnapshots PASSED [ 52%] test/test_singleton.py::Test::test_multi_class PASSED [ 52%] test/test_singleton.py::Test::test_share_value PASSED [ 52%] test/test_singleton.py::Test::test_twins PASSED [ 53%] test/test_snapshotlog.py::TestLogFilter::test_filter PASSED [ 53%] test/test_snapshotlog.py::TestSnapshotLog::test_append PASSED [ 53%] test/test_snapshotlog.py::TestSnapshotLog::test_append_log_level PASSED [ 53%] test/test_snapshotlog.py::TestSnapshotLog::test_get PASSED [ 54%] test/test_snapshotlog.py::TestSnapshotLog::test_get_filter PASSED [ 54%] test/test_snapshotlog.py::TestSnapshotLog::test_new PASSED [ 54%] test/test_snapshotlog.py::TestSnapshotLog::test_new_continue PASSED [ 54%] test/test_snapshotlog.py::TestSnapshotLog::test_skipLines PASSED [ 55%] test/test_snapshotlog.py::TestSnapshotLog::test_skipLines_filtered PASSED [ 55%] test/test_snapshotlog.py::TestSnapshotLog::test_skipLines_show_all PASSED [ 55%] test/test_snapshots.py::SetTakeSnapshotMessage::test_error PASSED [ 55%] test/test_snapshots.py::SetTakeSnapshotMessage::test_info PASSED [ 55%] test/test_snapshots.py::UserAndGroups::test_gid_backup PASSED [ 56%] test/test_snapshots.py::UserAndGroups::test_gid_invalid PASSED [ 56%] test/test_snapshots.py::UserAndGroups::test_gid_valid PASSED [ 56%] test/test_snapshots.py::UserAndGroups::test_groupname_invalid PASSED [ 56%] test/test_snapshots.py::UserAndGroups::test_groupname_valid PASSED [ 57%] test/test_snapshots.py::UserAndGroups::test_uid_backup PASSED [ 57%] test/test_snapshots.py::UserAndGroups::test_uid_invalid PASSED [ 57%] test/test_snapshots.py::UserAndGroups::test_uid_valid PASSED [ 57%] test/test_snapshots.py::UserAndGroups::test_username_invalid PASSED [ 58%] test/test_snapshots.py::UserAndGroups::test_username_valid PASSED [ 58%] test/test_snapshots.py::HelperScripts::test_create_last_snapshot_symlink PASSED [ 58%] test/test_snapshots.py::HelperScripts::test_make_dirs PASSED [ 58%] test/test_snapshots.py::HelperScripts::test_rsync_remote_path PASSED [ 59%] test/test_snapshots.py::HelperScripts::test_stat_free_space_local PASSED [ 59%] test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_exclude_unique_items PASSED [ 59%] test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_include_root PASSED [ 59%] test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_include_unique_items PASSED [ 59%] test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_rsync_suffix PASSED [ 60%] test/test_snapshots.py::Callbacks::test_callback PASSED [ 60%] test/test_snapshots.py::Callbacks::test_dir PASSED [ 60%] test/test_snapshots.py::Callbacks::test_error PASSED [ 60%] test/test_snapshots.py::Callbacks::test_keep_params PASSED [ 61%] test/test_snapshots.py::Callbacks::test_restore PASSED [ 61%] test/test_snapshots.py::Callbacks::test_transfer PASSED [ 61%] test/test_snapshots.py::SnapshotWithSID::test_backup_config PASSED [ 61%] test/test_snapshots.py::SnapshotWithSID::test_backup_info_file PASSED [ 62%] test/test_snapshots.py::SnapshotWithSID::test_backup_permissions FAILED [ 62%] test/test_snapshots.py::SnapshotWithSID::test_collect_permission PASSED [ 62%] test/test_snapshots.py::RestorePathInfo::test_change_group PASSED [ 62%] test/test_snapshots.py::RestorePathInfo::test_change_owner_without_root PASSED [ 62%] test/test_snapshots.py::RestorePathInfo::test_change_permissions PASSED [ 63%] test/test_snapshots.py::RestorePathInfo::test_no_changes PASSED [ 63%] test/test_snapshots.py::DeletePath::test_dir PASSED [ 63%] test/test_snapshots.py::DeletePath::test_dir_readonly PASSED [ 63%] test/test_snapshots.py::DeletePath::test_file PASSED [ 64%] test/test_snapshots.py::DeletePath::test_file_readonly PASSED [ 64%] test/test_snapshots.py::DeletePath::test_pardir_readonly PASSED [ 64%] test/test_snapshots.py::RemoveSnapshot::test_remove PASSED [ 64%] test/test_snapshots.py::RemoveSnapshot::test_remove_read_only PASSED [ 65%] test/test_snapshots.py::SshSnapshots::test_stat_free_space_ssh PASSED [ 65%] test/test_snapshots.py::SshPermissions::test_backup_permissions FAILED [ 65%] test/test_snapshots.py::SshRemoveSnapshots::test_remove PASSED [ 65%] test/test_snapshots.py::SshRemoveSnapshots::test_remove_with_blank PASSED [ 66%] test/test_snapshots_autoremove.py::KeepFirst::test_all_invalid PASSED [ 66%] test/test_snapshots_autoremove.py::KeepFirst::test_ignore_unhealthy PASSED [ 66%] test/test_snapshots_autoremove.py::KeepFirst::test_keep_first_range_outside PASSED [ 66%] test/test_snapshots_autoremove.py::KeepFirst::test_min_included_max_not PASSED [ 66%] test/test_snapshots_autoremove.py::KeepFirst::test_no_date_ordering PASSED [ 67%] test/test_snapshots_autoremove.py::KeepFirst::test_one_but_set PASSED [ 67%] test/test_snapshots_autoremove.py::KeepFirst::test_simple_one PASSED [ 67%] test/test_snapshots_autoremove.py::KeepAllForLast::test_border PASSED [ 67%] test/test_snapshots_autoremove.py::KeepAllForLast::test_simple PASSED [ 68%] test/test_snapshots_autoremove.py::KeepOneForLastNDays::test_doc_example PASSED [ 68%] test/test_snapshots_autoremove.py::KeepOneForLastNWeeks::test_doc_example PASSED [ 68%] test/test_snapshots_autoremove.py::KeepOneForLastNMonths::test_doc_example PASSED [ 68%] test/test_snapshots_autoremove.py::KeepOnePerYearForAllYears::test_doc_example PASSED [ 69%] test/test_snapshots_autoremove.py::IncDecMonths::test_dec_leap_months PASSED [ 69%] test/test_snapshots_autoremove.py::IncDecMonths::test_dec_simple PASSED [ 69%] test/test_snapshots_autoremove.py::IncDecMonths::test_dec_year PASSED [ 69%] test/test_snapshots_autoremove.py::IncDecMonths::test_inc_leap_months PASSED [ 70%] test/test_snapshots_autoremove.py::IncDecMonths::test_inc_leap_year PASSED [ 70%] test/test_snapshots_autoremove.py::IncDecMonths::test_inc_next_year PASSED [ 70%] test/test_snapshots_autoremove.py::IncDecMonths::test_inc_simple PASSED [ 70%] test/test_sshtools.py::General::test_can_mount_ssh_rw PASSED [ 70%] test/test_sshtools.py::General::test_checkCipher_default PASSED [ 71%] test/test_sshtools.py::General::test_checkCipher_fail PASSED [ 71%] test/test_sshtools.py::General::test_checkCipher_specific PASSED [ 71%] test/test_sshtools.py::General::test_checkKnownHosts PASSED [ 71%] test/test_sshtools.py::General::test_checkKnownHosts_fail PASSED [ 72%] test/test_sshtools.py::General::test_checkLogin PASSED [ 72%] test/test_sshtools.py::General::test_checkLogin_fail_wrong_user PASSED [ 72%] test/test_sshtools.py::General::test_checkPingHost PASSED [ 72%] test/test_sshtools.py::General::test_checkPingHost_fail PASSED [ 73%] test/test_sshtools.py::General::test_checkRemoteFolder PASSED [ 73%] test/test_sshtools.py::General::test_checkRemoteFolder_fail_can_not_create PASSED [ 73%] test/test_sshtools.py::General::test_checkRemoteFolder_fail_not_a_folder PASSED [ 73%] test/test_sshtools.py::General::test_checkRemoteFolder_with_spaces PASSED [ 74%] test/test_sshtools.py::General::test_check_remote_command PASSED [ 74%] test/test_sshtools.py::General::test_check_remote_command_fail PASSED [ 74%] test/test_sshtools.py::General::test_check_remote_command_hard_link_fail PASSED [ 74%] test/test_sshtools.py::General::test_check_remote_command_with_spaces PASSED [ 74%] test/test_sshtools.py::General::test_randomId PASSED [ 75%] test/test_sshtools.py::General::test_unlockSshAgent PASSED [ 75%] test/test_sshtools.py::General::test_unlockSshAgent_fail PASSED [ 75%] test/test_sshtools.py::SshKey::test_fingerprint PASSED [ 75%] test/test_sshtools.py::SshKey::test_generate PASSED [ 76%] test/test_sshtools.py::SshKey::test_host_key PASSED [ 76%] test/test_sshtools.py::SshKey::test_write_known_host_file PASSED [ 76%] test/test_sshtools.py::StartSshAgent::test_equal_sign PASSED [ 76%] test/test_sshtools.py::StartSshAgent::test_error PASSED [ 77%] test/test_sshtools.py::StartSshAgent::test_export PASSED [ 77%] test/test_sshtools.py::StartSshAgent::test_just_start PASSED [ 77%] test/test_sshtools.py::StartSshAgent::test_missing PASSED [ 77%] test/test_sshtools.py::StartSshAgent::test_space PASSED [ 77%] test/test_sshtools.py::SSHCopyID::test_complete_command PASSED [ 78%] test/test_sshtools.py::SSHCopyID::test_custom_port PASSED [ 78%] test/test_sshtools.py::SSHCopyID::test_default_port PASSED [ 78%] test/test_sshtools.py::SSHCopyID::test_proxy_with_custom_port PASSED [ 78%] test/test_sshtools.py::SSHCopyID::test_proxy_with_default_port PASSED [ 79%] test/test_takeSnapshot.py::Take::test_error FAILED [ 79%] test/test_takeSnapshot.py::Take::test_error_without_continue PASSED [ 79%] test/test_takeSnapshot.py::Take::test_exclude FAILED [ 79%] test/test_takeSnapshot.py::Take::test_fail_create_new_snapshot PASSED [ 80%] test/test_takeSnapshot.py::Take::test_four_snapshots FAILED [ 80%] test/test_takeSnapshot.py::Take::test_new_exists FAILED [ 80%] test/test_takeSnapshot.py::Take::test_new_exists_continue FAILED [ 80%] test/test_takeSnapshot.py::Take::test_spaces_in_exclude FAILED [ 81%] test/test_takeSnapshot.py::Take::test_spaces_in_include FAILED [ 81%] test/test_takeSnapshot.py::TakeSSH::test_error FAILED [ 81%] test/test_takeSnapshot.py::TakeSSH::test_error_without_continue PASSED [ 81%] test/test_takeSnapshot.py::TakeSSH::test_exclude FAILED [ 81%] test/test_takeSnapshot.py::TakeSSH::test_fail_create_new_snapshot PASSED [ 82%] test/test_takeSnapshot.py::TakeSSH::test_four_snapshots FAILED [ 82%] test/test_takeSnapshot.py::TakeSSH::test_new_exists FAILED [ 82%] test/test_takeSnapshot.py::TakeSSH::test_new_exists_continue FAILED [ 82%] test/test_takeSnapshot.py::TakeSSH::test_spaces_in_exclude FAILED [ 83%] test/test_takeSnapshot.py::TakeSSH::test_spaces_in_include FAILED [ 83%] test/test_tools.py::TestTools::test_addSourceToPathEnviron PASSED [ 83%] test/test_tools.py::TestTools::test_backintimePath PASSED [ 83%] test/test_tools.py::TestTools::test_checkCommand PASSED [ 84%] test/test_tools.py::TestTools::test_checkCronPattern PASSED [ 84%] test/test_tools.py::TestTools::test_checkXServer PASSED [ 84%] test/test_tools.py::TestTools::test_decodeOctalEscape PASSED [ 84%] test/test_tools.py::TestTools::test_isRoot PASSED [ 85%] test/test_tools.py::TestTools::test_makeDirs PASSED [ 85%] test/test_tools.py::TestTools::test_makeDirs_not_writable PASSED [ 85%] test/test_tools.py::TestTools::test_md5sum PASSED [ 85%] test/test_tools.py::TestTools::test_mkdir PASSED [ 85%] test/test_tools.py::TestTools::test_mountArgs PASSED [ 86%] test/test_tools.py::TestTools::test_mountpoint PASSED [ 86%] test/test_tools.py::TestTools::test_patternHasNotEncryptableWildcard PASSED [ 86%] test/test_tools.py::TestTools::test_pids PASSED [ 86%] test/test_tools.py::TestTools::test_pidsWithName PASSED [ 87%] test/test_tools.py::TestTools::test_powerStatusAvailable PASSED [ 87%] test/test_tools.py::TestTools::test_preparePath PASSED [ 87%] test/test_tools.py::TestTools::test_processAlive PASSED [ 87%] test/test_tools.py::TestTools::test_processCmdline PASSED [ 88%] test/test_tools.py::TestTools::test_processCmdline_exception PASSED [ 88%] test/test_tools.py::TestTools::test_processExists PASSED [ 88%] test/test_tools.py::TestTools::test_processName PASSED [ 88%] test/test_tools.py::TestTools::test_processPaused PASSED [ 88%] test/test_tools.py::TestTools::test_processStat PASSED [ 89%] test/test_tools.py::TestTools::test_processStat_exception PASSED [ 89%] test/test_tools.py::TestTools::test_readFile PASSED [ 89%] test/test_tools.py::TestTools::test_readFileLines PASSED [ 89%] test/test_tools.py::TestTools::test_readTimeStamp PASSED [ 90%] test/test_tools.py::TestTools::test_registerBackintimePath PASSED [ 90%] test/test_tools.py::TestTools::test_rsyncCaps PASSED [ 90%] test/test_tools.py::TestTools::test_runningFromSource PASSED [ 90%] test/test_tools.py::TestTools::test_sharePath PASSED [ 91%] test/test_tools.py::TestTools::test_splitCommands PASSED [ 91%] test/test_tools.py::TestTools::test_usingSudo PASSED [ 91%] test/test_tools.py::TestTools::test_which PASSED [ 91%] test/test_tools.py::TestTools::test_writeTimeStamp PASSED [ 92%] test/test_tools.py::EscapeIPv6::test_escaped PASSED [ 92%] test/test_tools.py::EscapeIPv6::test_invalid PASSED [ 92%] test/test_tools.py::EscapeIPv6::test_passed PASSED [ 92%] test/test_tools.py::Environ::test_envLoad_do_not_overwrite_previous_values PASSED [ 92%] test/test_tools.py::Environ::test_envLoad_without_previous_values PASSED [ 93%] test/test_tools.py::Environ::test_envSave PASSED [ 93%] test/test_tools.py::ExecuteSubprocess::test_callback PASSED [ 93%] test/test_tools.py::ExecuteSubprocess::test_pausable PASSED [ 93%] test/test_tools.py::ExecuteSubprocess::test_returncode PASSED [ 94%] test/test_tools.py::Tools_FakeFS::test_git_repo_info PASSED [ 94%] test/test_tools.py::Tools_FakeFS::test_git_repo_info_none PASSED [ 94%] test/test_tools.py::ValidateSnapshotsPath::test_fails_on_ro PASSED [ 94%] test/test_tools.py::ValidateSnapshotsPath::test_permission_fail PASSED [ 95%] test/test_tools.py::ValidateSnapshotsPath::test_writes PASSED [ 95%] test/test_tools.py::OlderThan::test_days_not_older PASSED [ 95%] test/test_tools.py::OlderThan::test_days_older PASSED [ 95%] test/test_tools.py::OlderThan::test_hours_not_older PASSED [ 96%] test/test_tools.py::OlderThan::test_hours_older PASSED [ 96%] test/test_tools.py::OlderThan::test_month_31th PASSED [ 96%] test/test_tools.py::OlderThan::test_month_31th_plus_ms PASSED [ 96%] test/test_tools.py::OlderThan::test_month_next_year PASSED [ 96%] test/test_tools.py::OlderThan::test_month_next_year_plus_ms PASSED [ 97%] test/test_tools.py::OlderThan::test_month_not_older PASSED [ 97%] test/test_tools.py::OlderThan::test_month_older PASSED [ 97%] test/test_tools.py::OlderThan::test_week_not_older PASSED [ 97%] test/test_tools.py::OlderThan::test_week_older PASSED [ 98%] test/test_tools.py::NestedDictUpdate::test_simple PASSED [ 98%] test/test_uniquenessset.py::General::test_001_depency_workaround SKIPPED [ 98%] test/test_uniquenessset.py::General::test_ctor_defaults PASSED [ 98%] test/test_uniquenessset.py::General::test_deep_check PASSED [ 99%] test/test_uniquenessset.py::General::test_fail_equal_without_equal_to PASSED [ 99%] test/test_uniquenessset.py::General::test_size_mtime PASSED [ 99%] test/test_uniquenessset.py::General::test_unique_myself PASSED [ 99%] test/test_uniquenessset.py::General::test_unique_size_but_different_mtime PASSED [100%] =================================== FAILURES =================================== _________________ BackInTime.test_local_snapshot_is_successful _________________ self = 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) E AssertionError: 1 != 0 : Returncode: 1 E stderr: WARNING: Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown E WARNING: D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files E WARNING: Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure E INFO: Lock E INFO: Take a new snapshot. Profile: 1 Main profile E INFO: Call rsync to take the snapshot E INFO: Save config file E INFO: Save permissions E Traceback (most recent call last): E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 1335, in  E startApp() E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 585, in startApp E args.func(args) E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 852, in backup E ret = takeSnapshot(cfg, force) E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 100, in takeSnapshot E ret = snapshots.Snapshots(cfg).backup(force) E File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 896, in backup E ret_val, ret_error = self.takeSnapshot( E File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1493, in takeSnapshot E self.backupPermissions(new_snapshot) E File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1182, in backupPermissions E decode = encfstools.Bounce() E AttributeError: module 'encfstools' has no attribute 'Bounce' E  E stdout:  E Back In Time E Version: 1.5.4-rc1 E  E Back In Time comes with ABSOLUTELY NO WARRANTY. E This is free software, and you are welcome to redistribute it E under certain conditions; type `backintime --license' for details. test/test_backintime.py:124: AssertionError ______________ MirrorMirrorOnTheWall.test010_ruff_default_ruleset ______________ self = @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: '--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).') E AssertionError: 0 != 1 : Ruff found 1 problem(s). test/test_lint.py:229: AssertionError ----------------------------- Captured stdout call ----------------------------- test/test_mount.py:205:80: E501 Line too long (89 > 79) _____________ MirrorMirrorOnTheWall.test020_flake8_default_ruleset _____________ self = @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).') E AssertionError: 0 != 2 : Flake8 found 2 problem(s). test/test_lint.py: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) _____________ MirrorMirrorOnTheWall.test030_pylint_default_ruleset _____________ self = @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.') E AssertionError: 0 != 8 : PyLint found 8 problems. test/test_lint.py: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) ____________ MirrorMirrorOnTheWall.test050_pylint_exclusive_ruleset ____________ self = @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.') E AssertionError: 0 != 2 : PyLint found 2 problems. test/test_lint.py: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) ________________________ SystemTest.test_local_snapshot ________________________ self = 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()) test/test_plugin_usercallback.py:288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:896: in backup ret_val, ret_error = self.takeSnapshot( snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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" ___________________ SnapshotWithSID.test_backup_permissions ____________________ self = 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) test/test_snapshots.py:347: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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 ____________________ SshPermissions.test_backup_permissions ____________________ self = 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) test/test_snapshots.py:862: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/config_path/user-callback 1 Main profile 7 INFO: [plugins/usercallbackplugin.py:84 UserCallbackPlugin.callback] user-callback returned '['1', 'Main profile', '7']' 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/DATADIRyl30w__j/.local/share/backintime/mnt/5453.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/DESTINATIONDIRparentnwqual6_/foo" || d=1;test $d -eq 1 && mkdir "/tmp/DESTINATIONDIRparentnwqual6_/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/DESTINATIONDIRparentnwqual6_/foo" || exit 11;test -w "/tmp/DESTINATIONDIRparentnwqual6_/foo" || exit 12;test -x "/tmp/DESTINATIONDIRparentnwqual6_/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/DESTINATIONDIRparentnwqual6_/foo" || d=1;test $d -eq 1 && mkdir "/tmp/DESTINATIONDIRparentnwqual6_/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/DESTINATIONDIRparentnwqual6_/foo" || exit 11;test -w "/tmp/DESTINATIONDIRparentnwqual6_/foo" || exit 12;test -x "/tmp/DESTINATIONDIRparentnwqual6_/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/DESTINATIONDIRparentnwqual6_/foo /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/9CA0D6F4/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/DESTINATIONDIRparentnwqual6_/foo', '/tmp/DATADIRyl30w__j/.local/share/backintime/mnt/9CA0D6F4/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/DESTINATIONDIRparentnwqual6_/foo on /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/9CA0D6F4/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/9CA0D6F4/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/5453.lock INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.0a1utp4f/config_path/user-callback 1 Main profile 8 INFO: [plugins/usercallbackplugin.py:84 UserCallbackPlugin.callback] user-callback returned '['1', 'Main profile', '8']' 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/DATADIRyl30w__j/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/DESTINATIONDIRparentnwqual6_/foo from /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/9CA0D6F4/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/9CA0D6F4/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/DATADIRyl30w__j/.local/share/backintime/mnt/5453.lock _______________________________ Take.test_error ________________________________ self = sleep = @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),])) test/test_takeSnapshot.py:182: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmp04fdi5mi --exclude=/tmp/tmprb34xoz9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3w0y6uou/ --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/tmp3w0y6uou/** --exclude=* / /tmp/tmp04fdi5mi/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/tmp04fdi5mi --exclude=/tmp/tmprb34xoz9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3w0y6uou/ --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/tmp3w0y6uou/** --exclude=* / /tmp/tmp04fdi5mi/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/tmp04fdi5mi --exclude=/tmp/tmprb34xoz9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3w0y6uou/ --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/tmp3w0y6uou/** --exclude=* / /tmp/tmp04fdi5mi/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 ______________________________ Take.test_exclude _______________________________ self = sleep = @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),])) test/test_takeSnapshot.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmp95s95sdv --exclude=/tmp/tmp1nirijyv/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp4mw9_yqt/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp4mw9_yqt/** --exclude=* / /tmp/tmp95s95sdv/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/tmp95s95sdv --exclude=/tmp/tmp1nirijyv/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp4mw9_yqt/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp4mw9_yqt/** --exclude=* / /tmp/tmp95s95sdv/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 ___________________________ Take.test_four_snapshots ___________________________ self = sleep = @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 ] ) ) test/test_takeSnapshot.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmpaxvuk0jv --exclude=/tmp/tmpoos5fdl4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpq8s9nbc_/ --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/tmpq8s9nbc_/** --exclude=* / /tmp/tmpaxvuk0jv/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/tmpaxvuk0jv --exclude=/tmp/tmpoos5fdl4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpq8s9nbc_/ --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/tmpq8s9nbc_/** --exclude=* / /tmp/tmpaxvuk0jv/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 _____________________________ Take.test_new_exists _____________________________ self = sleep = @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),])) test/test_takeSnapshot.py:214: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmpf4cfjif_/ /tmp/tmpz3pii1wn/backintime/test-host/test-user/1/new_snapshot" DEBUG: [common/tools.py:2616 run] Starting command 'rsync -a --delete -s /tmp/tmpf4cfjif_/ /tmp/tmpz3pii1wn/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/tmpz3pii1wn --exclude=/tmp/tmplah4bbfc/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpeug4f0v5/ --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/tmpeug4f0v5/** --exclude=* / /tmp/tmpz3pii1wn/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/tmpz3pii1wn --exclude=/tmp/tmplah4bbfc/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpeug4f0v5/ --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/tmpeug4f0v5/** --exclude=* / /tmp/tmpz3pii1wn/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 ________________________ Take.test_new_exists_continue _________________________ self = sleep = @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),])) test/test_takeSnapshot.py:229: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmpx_uw6uim --exclude=/tmp/tmpz8f0ejd6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpurnfgb_0/ --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/tmpurnfgb_0/** --exclude=* / /tmp/tmpx_uw6uim/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/tmpx_uw6uim --exclude=/tmp/tmpz8f0ejd6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpurnfgb_0/ --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/tmpurnfgb_0/** --exclude=* / /tmp/tmpx_uw6uim/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 _________________________ Take.test_spaces_in_exclude __________________________ self = sleep = @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),])) test/test_takeSnapshot.py:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmpqp65vult --exclude=/tmp/tmpt50av4m2/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpp314d2cl/ --include=/tmp/ --exclude=/tmp/tmpp314d2cl/test path with spaces --include=/tmp/tmpp314d2cl/** --exclude=* / /tmp/tmpqp65vult/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/tmpqp65vult --exclude=/tmp/tmpt50av4m2/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpp314d2cl/ --include=/tmp/ --exclude=/tmp/tmpp314d2cl/test path with spaces --include=/tmp/tmpp314d2cl/** --exclude=* / /tmp/tmpqp65vult/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 _________________________ Take.test_spaces_in_include __________________________ self = sleep = @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),])) test/test_takeSnapshot.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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/tmprnb77kg5 --exclude=/tmp/tmp19loor98/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpnds5_7ok/test path with spaces/ --include=/tmp/tmpnds5_7ok/ --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/tmpnds5_7ok/test path with spaces/** --exclude=* / /tmp/tmprnb77kg5/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/tmprnb77kg5 --exclude=/tmp/tmp19loor98/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpnds5_7ok/test path with spaces/ --include=/tmp/tmpnds5_7ok/ --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/tmpnds5_7ok/test path with spaces/** --exclude=* / /tmp/tmprnb77kg5/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 ______________________________ TakeSSH.test_error ______________________________ self = sleep = @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),])) test/test_takeSnapshot.py:182: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmp973lbo13/.local/share/backintime/mnt/5453.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/tmpkzerbzs2/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpkzerbzs2/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpkzerbzs2/foo" || exit 11;test -w "/tmp/tmpkzerbzs2/foo" || exit 12;test -x "/tmp/tmpkzerbzs2/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/tmpkzerbzs2/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpkzerbzs2/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpkzerbzs2/foo" || exit 11;test -w "/tmp/tmpkzerbzs2/foo" || exit 12;test -x "/tmp/tmpkzerbzs2/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/tmpkzerbzs2/foo /tmp/tmp973lbo13/.local/share/backintime/mnt/1AD6AC75/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/tmpkzerbzs2/foo', '/tmp/tmp973lbo13/.local/share/backintime/mnt/1AD6AC75/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpkzerbzs2/foo on /tmp/tmp973lbo13/.local/share/backintime/mnt/1AD6AC75/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmp973lbo13/.local/share/backintime/mnt/1AD6AC75/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp973lbo13/.local/share/backintime/mnt/5453.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/tmp973lbo13/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmp973lbo13/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp9qpx2ptk/ --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/tmp9qpx2ptk/** --exclude=* / travis@localhost:/tmp/tmpkzerbzs2/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/tmp973lbo13/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmp973lbo13/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp9qpx2ptk/ --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/tmp9qpx2ptk/** --exclude=* / travis@localhost:/tmp/tmpkzerbzs2/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/tmp973lbo13/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmp973lbo13/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp9qpx2ptk/ --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/tmp9qpx2ptk/** --exclude=* / travis@localhost:/tmp/tmpkzerbzs2/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: [, , ] 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.0a1utp4f/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/tmp973lbo13/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpkzerbzs2/foo from /tmp/tmp973lbo13/.local/share/backintime/mnt/1AD6AC75/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmp973lbo13/.local/share/backintime/mnt/1AD6AC75/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp973lbo13/.local/share/backintime/mnt/5453.lock _____________________________ TakeSSH.test_exclude _____________________________ self = sleep = @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),])) test/test_takeSnapshot.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmpnp_qswto/.local/share/backintime/mnt/5453.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/tmp8qr_6fyr/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp8qr_6fyr/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp8qr_6fyr/foo" || exit 11;test -w "/tmp/tmp8qr_6fyr/foo" || exit 12;test -x "/tmp/tmp8qr_6fyr/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/tmp8qr_6fyr/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp8qr_6fyr/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp8qr_6fyr/foo" || exit 11;test -w "/tmp/tmp8qr_6fyr/foo" || exit 12;test -x "/tmp/tmp8qr_6fyr/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/tmp8qr_6fyr/foo /tmp/tmpnp_qswto/.local/share/backintime/mnt/19A1C09F/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/tmp8qr_6fyr/foo', '/tmp/tmpnp_qswto/.local/share/backintime/mnt/19A1C09F/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp8qr_6fyr/foo on /tmp/tmpnp_qswto/.local/share/backintime/mnt/19A1C09F/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpnp_qswto/.local/share/backintime/mnt/19A1C09F/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpnp_qswto/.local/share/backintime/mnt/5453.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/tmpnp_qswto/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpnp_qswto/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp2qhl7fmz/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp2qhl7fmz/** --exclude=* / travis@localhost:/tmp/tmp8qr_6fyr/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/tmpnp_qswto/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpnp_qswto/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp2qhl7fmz/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp2qhl7fmz/** --exclude=* / travis@localhost:/tmp/tmp8qr_6fyr/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: [, , ] 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.0a1utp4f/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/tmpnp_qswto/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp8qr_6fyr/foo from /tmp/tmpnp_qswto/.local/share/backintime/mnt/19A1C09F/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpnp_qswto/.local/share/backintime/mnt/19A1C09F/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpnp_qswto/.local/share/backintime/mnt/5453.lock _________________________ TakeSSH.test_four_snapshots __________________________ self = sleep = @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 ] ) ) test/test_takeSnapshot.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmpewcsyawf/.local/share/backintime/mnt/5453.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/tmpgwmqhqj5/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpgwmqhqj5/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpgwmqhqj5/foo" || exit 11;test -w "/tmp/tmpgwmqhqj5/foo" || exit 12;test -x "/tmp/tmpgwmqhqj5/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/tmpgwmqhqj5/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpgwmqhqj5/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpgwmqhqj5/foo" || exit 11;test -w "/tmp/tmpgwmqhqj5/foo" || exit 12;test -x "/tmp/tmpgwmqhqj5/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/tmpgwmqhqj5/foo /tmp/tmpewcsyawf/.local/share/backintime/mnt/89DBFEA2/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/tmpgwmqhqj5/foo', '/tmp/tmpewcsyawf/.local/share/backintime/mnt/89DBFEA2/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpgwmqhqj5/foo on /tmp/tmpewcsyawf/.local/share/backintime/mnt/89DBFEA2/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpewcsyawf/.local/share/backintime/mnt/89DBFEA2/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpewcsyawf/.local/share/backintime/mnt/5453.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/tmpewcsyawf/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpewcsyawf/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpxoa3lrm9/ --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/tmpxoa3lrm9/** --exclude=* / travis@localhost:/tmp/tmpgwmqhqj5/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/tmpewcsyawf/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpewcsyawf/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpxoa3lrm9/ --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/tmpxoa3lrm9/** --exclude=* / travis@localhost:/tmp/tmpgwmqhqj5/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: [, , ] 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.0a1utp4f/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/tmpewcsyawf/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpgwmqhqj5/foo from /tmp/tmpewcsyawf/.local/share/backintime/mnt/89DBFEA2/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpewcsyawf/.local/share/backintime/mnt/89DBFEA2/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpewcsyawf/.local/share/backintime/mnt/5453.lock ___________________________ TakeSSH.test_new_exists ____________________________ self = sleep = @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),])) test/test_takeSnapshot.py:214: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmptub50kqt/.local/share/backintime/mnt/5453.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/tmphw28qpx_/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmphw28qpx_/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmphw28qpx_/foo" || exit 11;test -w "/tmp/tmphw28qpx_/foo" || exit 12;test -x "/tmp/tmphw28qpx_/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/tmphw28qpx_/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmphw28qpx_/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmphw28qpx_/foo" || exit 11;test -w "/tmp/tmphw28qpx_/foo" || exit 12;test -x "/tmp/tmphw28qpx_/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/tmphw28qpx_/foo /tmp/tmptub50kqt/.local/share/backintime/mnt/6A96D8BD/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/tmphw28qpx_/foo', '/tmp/tmptub50kqt/.local/share/backintime/mnt/6A96D8BD/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmphw28qpx_/foo on /tmp/tmptub50kqt/.local/share/backintime/mnt/6A96D8BD/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmptub50kqt/.local/share/backintime/mnt/6A96D8BD/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmptub50kqt/.local/share/backintime/mnt/5453.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/tmp3su_j7cm/ travis@localhost:/tmp/tmphw28qpx_/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/tmp3su_j7cm/ travis@localhost:/tmp/tmphw28qpx_/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/tmptub50kqt/.local/share/backintime/mnt/1_5453/backintime/test-host/test-user/1/new_snapshot/backup': [Errno 17] File exists: '/tmp/tmptub50kqt/.local/share/backintime/mnt/1_5453/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/tmptub50kqt/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmptub50kqt/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpqmpi73ql/ --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/tmpqmpi73ql/** --exclude=* / travis@localhost:/tmp/tmphw28qpx_/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/tmptub50kqt/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmptub50kqt/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpqmpi73ql/ --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/tmpqmpi73ql/** --exclude=* / travis@localhost:/tmp/tmphw28qpx_/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: [, , ] 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.0a1utp4f/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/tmptub50kqt/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmphw28qpx_/foo from /tmp/tmptub50kqt/.local/share/backintime/mnt/6A96D8BD/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmptub50kqt/.local/share/backintime/mnt/6A96D8BD/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmptub50kqt/.local/share/backintime/mnt/5453.lock _______________________ TakeSSH.test_new_exists_continue _______________________ self = sleep = @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),])) test/test_takeSnapshot.py:229: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmpgd2kh882/.local/share/backintime/mnt/5453.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/tmpc51doj5j/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpc51doj5j/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpc51doj5j/foo" || exit 11;test -w "/tmp/tmpc51doj5j/foo" || exit 12;test -x "/tmp/tmpc51doj5j/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/tmpc51doj5j/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpc51doj5j/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpc51doj5j/foo" || exit 11;test -w "/tmp/tmpc51doj5j/foo" || exit 12;test -x "/tmp/tmpc51doj5j/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/tmpc51doj5j/foo /tmp/tmpgd2kh882/.local/share/backintime/mnt/E72C5346/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/tmpc51doj5j/foo', '/tmp/tmpgd2kh882/.local/share/backintime/mnt/E72C5346/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpc51doj5j/foo on /tmp/tmpgd2kh882/.local/share/backintime/mnt/E72C5346/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpgd2kh882/.local/share/backintime/mnt/E72C5346/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpgd2kh882/.local/share/backintime/mnt/5453.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/tmpgd2kh882/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpgd2kh882/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpvqbxx7tt/ --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/tmpvqbxx7tt/** --exclude=* / travis@localhost:/tmp/tmpc51doj5j/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/tmpgd2kh882/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpgd2kh882/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpvqbxx7tt/ --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/tmpvqbxx7tt/** --exclude=* / travis@localhost:/tmp/tmpc51doj5j/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: [, , ] 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.0a1utp4f/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/tmpgd2kh882/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpc51doj5j/foo from /tmp/tmpgd2kh882/.local/share/backintime/mnt/E72C5346/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpgd2kh882/.local/share/backintime/mnt/E72C5346/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpgd2kh882/.local/share/backintime/mnt/5453.lock ________________________ TakeSSH.test_spaces_in_exclude ________________________ self = sleep = @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),])) test/test_takeSnapshot.py:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmpjjz5487h/.local/share/backintime/mnt/5453.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/tmpgarjk2s2/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpgarjk2s2/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpgarjk2s2/foo" || exit 11;test -w "/tmp/tmpgarjk2s2/foo" || exit 12;test -x "/tmp/tmpgarjk2s2/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/tmpgarjk2s2/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpgarjk2s2/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpgarjk2s2/foo" || exit 11;test -w "/tmp/tmpgarjk2s2/foo" || exit 12;test -x "/tmp/tmpgarjk2s2/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/tmpgarjk2s2/foo /tmp/tmpjjz5487h/.local/share/backintime/mnt/986AD6A7/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/tmpgarjk2s2/foo', '/tmp/tmpjjz5487h/.local/share/backintime/mnt/986AD6A7/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpgarjk2s2/foo on /tmp/tmpjjz5487h/.local/share/backintime/mnt/986AD6A7/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpjjz5487h/.local/share/backintime/mnt/986AD6A7/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpjjz5487h/.local/share/backintime/mnt/5453.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/tmpjjz5487h/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpjjz5487h/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp0obffid1/ --include=/tmp/ --exclude=/tmp/tmp0obffid1/test path with spaces --include=/tmp/tmp0obffid1/** --exclude=* / travis@localhost:/tmp/tmpgarjk2s2/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/tmpjjz5487h/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpjjz5487h/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp0obffid1/ --include=/tmp/ --exclude=/tmp/tmp0obffid1/test path with spaces --include=/tmp/tmp0obffid1/** --exclude=* / travis@localhost:/tmp/tmpgarjk2s2/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: [, , ] 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.0a1utp4f/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/tmpjjz5487h/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpgarjk2s2/foo from /tmp/tmpjjz5487h/.local/share/backintime/mnt/986AD6A7/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpjjz5487h/.local/share/backintime/mnt/986AD6A7/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpjjz5487h/.local/share/backintime/mnt/5453.lock ________________________ TakeSSH.test_spaces_in_include ________________________ self = sleep = @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),])) test/test_takeSnapshot.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snapshots.py:1493: in takeSnapshot self.backupPermissions(new_snapshot) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 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() E AttributeError: module 'encfstools' has no attribute 'Bounce' snapshots.py: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: [, , ] 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.0a1utp4f/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/tmpbh09p0ja/.local/share/backintime/mnt/5453.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/tmpk1a2y9f7/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpk1a2y9f7/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpk1a2y9f7/foo" || exit 11;test -w "/tmp/tmpk1a2y9f7/foo" || exit 12;test -x "/tmp/tmpk1a2y9f7/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/tmpk1a2y9f7/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpk1a2y9f7/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpk1a2y9f7/foo" || exit 11;test -w "/tmp/tmpk1a2y9f7/foo" || exit 12;test -x "/tmp/tmpk1a2y9f7/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/tmpk1a2y9f7/foo /tmp/tmpbh09p0ja/.local/share/backintime/mnt/60770F47/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/tmpk1a2y9f7/foo', '/tmp/tmpbh09p0ja/.local/share/backintime/mnt/60770F47/mountpoint']. INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpk1a2y9f7/foo on /tmp/tmpbh09p0ja/.local/share/backintime/mnt/60770F47/mountpoint DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpbh09p0ja/.local/share/backintime/mnt/60770F47/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpbh09p0ja/.local/share/backintime/mnt/5453.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/tmpbh09p0ja/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpbh09p0ja/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3064tlsi/test path with spaces/ --include=/tmp/tmp3064tlsi/ --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/tmp3064tlsi/test path with spaces/** --exclude=* / travis@localhost:/tmp/tmpk1a2y9f7/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/tmpbh09p0ja/.local/share/backintime/mnt/1_5453 --exclude=/tmp/tmpbh09p0ja/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3064tlsi/test path with spaces/ --include=/tmp/tmp3064tlsi/ --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/tmp3064tlsi/test path with spaces/** --exclude=* / travis@localhost:/tmp/tmpk1a2y9f7/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: [, , ] 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.0a1utp4f/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/tmpbh09p0ja/.local/share/backintime/mnt/5453.lock INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpk1a2y9f7/foo from /tmp/tmpbh09p0ja/.local/share/backintime/mnt/60770F47/mountpoint DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpbh09p0ja/.local/share/backintime/mnt/60770F47/locks/5453.lock DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpbh09p0ja/.local/share/backintime/mnt/5453.lock =========================== short test summary info ============================ FAILED test/test_backintime.py::BackInTime::test_local_snapshot_is_successful - 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 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. FAILED test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset - AssertionError: 0 != 1 : Ruff found 1 problem(s). FAILED test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset - AssertionError: 0 != 2 : Flake8 found 2 problem(s). FAILED test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset - AssertionError: 0 != 8 : PyLint found 8 problems. FAILED test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset - AssertionError: 0 != 2 : PyLint found 2 problems. FAILED test/test_plugin_usercallback.py::SystemTest::test_local_snapshot - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_snapshots.py::SnapshotWithSID::test_backup_permissions - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_snapshots.py::SshPermissions::test_backup_permissions - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_error - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_four_snapshots - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_new_exists - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_new_exists_continue - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_spaces_in_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::Take::test_spaces_in_include - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_error - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_four_snapshots - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_new_exists - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_new_exists_continue - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_spaces_in_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce' FAILED test/test_takeSnapshot.py::TakeSSH::test_spaces_in_include - AttributeError: module 'encfstools' has no attribute 'Bounce' ============ 22 failed, 403 passed, 2 skipped in 124.70s (0:02:04) ============= make: *** [Makefile:620: unittest-v] Error 1 travis_time:end:06194aac:start=1739772744531057004,finish=1739772869723095363,duration=125192038359,event=script The command "make unittest-v" exited with 2. travis_time:start:0c152138 $ cd .. travis_time:end:0c152138:start=1739772869727527192,finish=1739772869730168477,duration=2641285,event=script The command "cd .." exited with 0. travis_time:start:0d663c66 $ cd qt travis_time:end:0d663c66:start=1739772869734068947,finish=1739772869736572020,duration=2503073,event=script The command "cd qt" exited with 0. travis_time:start:05f991c0 $ ./configure Replacement of python path with "/usr/bin/python3" successful. All OK. Now run: make sudo make install travis_time:end:05f991c0:start=1739772869740112608,finish=1739772869819800345,duration=79687737,event=script The command "./configure" exited with 0. travis_time:start:1a16ebe2 $ 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:1a16ebe2:start=1739772869824047280,finish=1739772869832776395,duration=8729115,event=script The command "make" exited with 0. travis_time:start:1378bd83 $ pytest --verbose ============================= test session starts ============================== platform linux -- Python 3.11.9, pytest-8.3.2, pluggy-1.5.0 -- /home/travis/virtualenv/python3.11.9/bin/python cachedir: .pytest_cache rootdir: /home/travis/build/bit-team/backintime/qt plugins: pyfakefs-5.7.4 collecting ...  collected 9 items  test/test_lint.py::MirrorMirrorOnTheWall::test005_ensure_linter_versions PASSED [ 11%] test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset PASSED [ 22%] test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset PASSED [ 33%] test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset PASSED [ 44%] test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset PASSED [ 55%] test/test_statedata.py::IsSingleton::test_content PASSED [ 66%] test/test_statedata.py::IsSingleton::test_identity PASSED [ 77%] test/test_statedata.py::Properties::test_profile_not_exist PASSED [ 88%] test/test_statedata.py::Properties::test_read_empty_global PASSED [100%] ============================== 9 passed in 27.19s ============================== travis_time:end:1378bd83:start=1739772869836679489,finish=1739772897293373089,duration=27456693600,event=script The command "pytest --verbose" exited with 0. Done. Your build exited with 1.