Pull request event #2496.4 failed

  • Ran for
AMD64
no language set
Git
Raw log
Scroll to End of Log
0.22s0.13s0.00s0.07s0.00s
worker_info
1Worker information
2hostname: 47b3bc80-1508-4287-99a3-4c6b4f9693f1@1.worker-com-oss-6ff4ffc9b7-55dr6.gce-production-3
3version: v6.2.24 https://github.com/travis-ci/worker/tree/ee57d650a7692c1ac03f74ac073d0fd150c9f030
4instance: travis-job-44a2ea8c-a218-4cec-a367-bad660a9da6a travis-ci-ubuntu-2204-1732291639-53689d97 (via amqp)
5startup: 5.78814295s
60.40s0.01s0.00s0.01s
system_info
7Build system information
8Build language: python
9Build dist: jammy
10Build id: 274236385
11Job id: 630633626
12Runtime kernel version: 6.8.0-1018-gcp
13VM: default
14travis-build version: 6b157a1c
15Build image provisioning date and time
16Fri Nov 22 04:28:26 PM UTC 2024
17Operating System Details
18Distributor ID: Ubuntu
19Description: Ubuntu 22.04.5 LTS
20Release: 22.04
21Codename: jammy
22Systemd Version
23systemd 249 (249.11-0ubuntu3.12)
24Cookbooks Version
25be2ab50 https://github.com/travis-ci/travis-cookbooks/tree/be2ab50
26git version
27git version 2.47.0
28bash version
29GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
30gcc version
31gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
32docker version
33Client:
34 Version: 24.0.7
35 API version: 1.43
36 Go version: go1.21.1
37 Git commit: 24.0.7-0ubuntu2~22.04.1
38 Built: Wed Mar 13 20:23:54 2024
39 OS/Arch: linux/amd64
40 Context: default
42Server:
43 Engine:
44 Version: 24.0.7
45 API version: 1.43 (minimum version 1.12)
46 Go version: go1.21.1
47 Git commit: 24.0.7-0ubuntu2~22.04.1
48 Built: Wed Mar 13 20:23:54 2024
49 OS/Arch: linux/amd64
50 Experimental: false
51 containerd:
52 Version: 1.7.12
53 GitCommit:
54 runc:
55 Version: 1.1.12-0ubuntu2~22.04.1
56 GitCommit:
57 docker-init:
58 Version: 0.19.0
59 GitCommit:
60clang version
61clang version 18.1.8
62jq version
63jq-1.7.1
64bats version
65Bats 1.11.0
66shellcheck version
670.10.0
68shfmt version
69v3.8.0
70ccache version
714.5.1
72cmake version
73cmake version 3.29.0
74heroku version
75heroku/9.5.0 linux-x64 node-v16.20.2
76imagemagick version
77Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
78md5deep version
794.4
80mercurial version
81version 6.5.2
82mysql version
83mysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
84openssl version
85OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
86packer version
87Packer v1.11.2
88postgresql client version
89psql (PostgreSQL) 14.13 (Ubuntu 14.13-0ubuntu0.22.04.1)
90ragel version
91Ragel State Machine Compiler version 6.10 March 2017
92sudo version
931.9.9
94gzip version
95gzip 1.10
96zip version
97Zip 3.0
98vim version
99VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Oct 16 2024 17:27:14)
100iptables version
101iptables v1.8.7 (nf_tables)
102curl version
103curl 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
104wget version
105GNU Wget 1.21.2 built on linux-gnu.
106rsync version
107rsync version 3.2.7 protocol version 31
108nvm version
1090.40.1
110perlbrew version
111/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95
112phpenv version
113rbenv 1.3.0
114rvm version
115rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
116default ruby version
117ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]
118default python version
119Python 3.10.14
120ElasticSearch version
1217.16.3
122Installed Firefox version
123firefox 99.0
124MongoDB version
125MongoDB 6.0.19
126ant version
127Apache Ant(TM) version 1.10.12 compiled on January 17 1970
128mvn version
129Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
130gradle version
131Gradle 8.3!
132lein version
133Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM
134Pre-installed Node.js versions
135v10.24.1
136v12.22.12
137v14.21.3
138v16.15
139v16.20.2
140v18.20.3
141v18.20.5
142v20.18.1
143v22.11.0
144v4.9.1
145v6.17.1
146v8.17.0
147phpenv versions
148 system
149 8.1
150* 8.1.2 (set by /home/travis/.phpenv/version)
151 hhvm-stable
152 hhvm
153composer --version
154Composer version 2.3.7 2022-06-06 16:43:28
155Pre-installed Ruby versions
156ruby-2.7.8
157ruby-3.3.5
1590.03s0.01s0.58s0.31s0.07s0.00s0.04s0.00s0.04s0.02s0.03s0.01s0.01s0.00s0.46sOK
1600.00s0.07s0.00s0.02s0.16s0.00s0.00s0.00s0.01s0.00s0.13s0.00s1.08s0.00s0.00s21.50s0.00s3.76s0.00s3.89s
docker_mtu_and_registry_mirrors
Docker
resolvconf
ssh_known_hosts.0
161Adding ssh known hosts
162$ mkdir -p ${TRAVIS_HOME}/.ssh
1630.06s$ ssh-keyscan -t $TRAVIS_SSH_KEY_TYPES -H localhost 2>&1 | tee -a ${TRAVIS_HOME}/.ssh/known_hosts
164# localhost:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10
165# localhost:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10
166# localhost:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10
167|1|S1X2OTW66RyC1nZYgbGFQiRK478=|L31zoO7E57OO9/k19JGwLIz+95M= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3HFI6rtIj/GuMEyW1RTjiBc7+J7Vpt8P4SH+v052iAYR3E2U2zZLGrmdvSRbQlmT/gV35L078opxGKb+NYDnZ6pgeb9/id4k5UEKKtLriarKEchv1BtOhmwy+7dFV0sGqGMfcrUQDpFweJUThsiRMAFN+CguOsLIZBz6n5TIXAloW/jewoOtylEfINfTJEODKvaPl7gYORLYUpzLGuldjvyxos+FILF+Hsb38rOu1YLjWiEVk25KzQ1BHocZwk2Yin50wQHcm3JfXb95xFRGvJdCZGwICNAfr66u9tAXzG3eYOhd178trKl16GZZeXOXP7y0Sgw9GQFToBF+ybybZHq3zj5r0KTqyKatnh3ejg7K702pQpITKL+FtmHNg9SYWhSK1awwrdoTrVTNvEYF73OOxzX0cUEM24DwgXZ9IjULbaEXCRPL+zxuDMILjid/qLyWUE9zDf21CAiFI2jgwF6Zf+OnhuzpG+lvI2pR4Q2Ks1vfxchvchgCruCtSvVU=
168|1|0+d/15XyTTKPS94Fw766jx4i+C4=|MhJtxb1TlaDAHjEYEG9wlCkIyvU= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMIe0gbM8XDsBJmBnij8+Cb/EpVgrtMJzR3JRv5h+tdVqFRtMiz5zud9VJwPN3Yke/gSetvEWasxJG2rHVLoupc=
git.checkout
1700.01s1.12s$ git clone --depth=50 https://github.com/bit-team/backintime.git bit-team/backintime
171Cloning into 'bit-team/backintime'...
172remote: Enumerating objects: 932, done.
173remote: Counting objects: 100% (932/932), done.
174remote: Compressing objects: 100% (558/558), done.
175remote: Total 932 (delta 541), reused 632 (delta 345), pack-reused 0 (from 0)
176Receiving objects: 100% (932/932), 4.82 MiB | 23.05 MiB/s, done.
177Resolving deltas: 100% (541/541), done.
178$ cd bit-team/backintime
1790.28s$ git fetch origin +refs/pull/2039/merge: --depth=50
180remote: Enumerating objects: 47, done.
181remote: Counting objects: 100% (42/42), done.
182remote: Compressing objects: 100% (14/14), done.
183remote: Total 33 (delta 25), reused 26 (delta 19), pack-reused 0 (from 0)
184Unpacking objects: 100% (33/33), 4.91 KiB | 359.00 KiB/s, done.
185From https://github.com/bit-team/backintime
186 * branch refs/pull/2039/merge -> FETCH_HEAD
187$ git checkout -qf FETCH_HEAD
1890.00s
190Setting environment variables from .travis.yml
191$ export PYTHONUNBUFFERED=1
1930.01s$ source ~/virtualenv/python3.12/bin/activate
194$ python --version
195Python 3.12.4
196$ pip --version
197pip 24.1.2 from /home/travis/virtualenv/python3.12.4/lib/python3.12/site-packages/pip (python 3.12)
before_install.1
1980.01s$ sudo rm -f /etc/apt/sources.list.d/mongodb*.list
before_install.2
1990.13s$ sudo apt-key del 90CFB1F5
200Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
201OK
before_install.3
2022.77s$ sudo apt-get -qq update
203W: 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.
204W: 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.
before_install.4
2056.77s$ sudo apt-get install -y sshfs screen util-linux libdbus-1-dev
206Reading package lists... Done
207Building dependency tree... Done
208Reading state information... Done
209screen is already the newest version (4.9.0-1).
210libdbus-1-dev is already the newest version (1.12.20-2ubuntu4.1).
211util-linux is already the newest version (2.37.2-4ubuntu3.4).
212The following NEW packages will be installed:
213 sshfs
2140 upgraded, 1 newly installed, 0 to remove and 134 not upgraded.
215Need to get 45.1 kB of archives.
216After this operation, 126 kB of additional disk space will be used.
217Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 sshfs amd64 3.7.1+repack-2 [45.1 kB]
218Fetched 45.1 kB in 0s (118 kB/s)
219Selecting previously unselected package sshfs.
220(Reading database ... 132481 files and directories currently installed.)
221Preparing to unpack .../sshfs_3.7.1+repack-2_amd64.deb ...
222Unpacking sshfs (3.7.1+repack-2) ...
223Setting up sshfs (3.7.1+repack-2) ...
224Processing triggers for man-db (2.10.2-1) ...
225NEEDRESTART-VER: 3.5
226NEEDRESTART-KCUR: 6.8.0-1018-gcp
227NEEDRESTART-KEXP: 6.8.0-1018-gcp
228NEEDRESTART-KSTA: 1
install.1
2292.45s$ pip install -U pip
230Requirement already satisfied: pip in /home/travis/virtualenv/python3.12.4/lib/python3.12/site-packages (24.1.2)
231Collecting pip
232 Downloading pip-25.0.1-py3-none-any.whl.metadata (3.7 kB)
233Downloading pip-25.0.1-py3-none-any.whl (1.8 MB)
234Installing collected packages: pip
235 Attempting uninstall: pip
236 Found existing installation: pip 24.1.2
237 Uninstalling pip-24.1.2:
238 Successfully uninstalled pip-24.1.2
239Successfully installed pip-25.0.1
install.2
2405.79s$ pip install pylint ruff flake8 pyfakefs keyring
241Collecting pylint
242 Downloading pylint-3.3.4-py3-none-any.whl.metadata (12 kB)
243Collecting ruff
244 Downloading ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (25 kB)
245Collecting flake8
246 Downloading flake8-7.1.2-py2.py3-none-any.whl.metadata (3.8 kB)
247Collecting pyfakefs
248 Downloading pyfakefs-5.7.4-py3-none-any.whl.metadata (7.8 kB)
249Collecting keyring
250 Downloading keyring-25.6.0-py3-none-any.whl.metadata (20 kB)
251Collecting dill>=0.3.6 (from pylint)
252 Downloading dill-0.3.9-py3-none-any.whl.metadata (10 kB)
253Requirement already satisfied: platformdirs>=2.2.0 in /home/travis/virtualenv/python3.12.4/lib/python3.12/site-packages (from pylint) (4.2.2)
254Collecting astroid<=3.4.0-dev0,>=3.3.8 (from pylint)
255 Downloading astroid-3.3.8-py3-none-any.whl.metadata (4.5 kB)
256Collecting isort!=5.13.0,<7,>=4.2.5 (from pylint)
257 Downloading isort-6.0.0-py3-none-any.whl.metadata (11 kB)
258Collecting mccabe<0.8,>=0.6 (from pylint)
259 Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB)
260Collecting tomlkit>=0.10.1 (from pylint)
261 Downloading tomlkit-0.13.2-py3-none-any.whl.metadata (2.7 kB)
262Collecting pycodestyle<2.13.0,>=2.12.0 (from flake8)
263 Downloading pycodestyle-2.12.1-py2.py3-none-any.whl.metadata (4.5 kB)
264Collecting pyflakes<3.3.0,>=3.2.0 (from flake8)
265 Downloading pyflakes-3.2.0-py2.py3-none-any.whl.metadata (3.5 kB)
266Collecting SecretStorage>=3.2 (from keyring)
267 Downloading SecretStorage-3.3.3-py3-none-any.whl.metadata (4.0 kB)
268Collecting jeepney>=0.4.2 (from keyring)
269 Downloading jeepney-0.8.0-py3-none-any.whl.metadata (1.3 kB)
270Collecting jaraco.classes (from keyring)
271 Downloading jaraco.classes-3.4.0-py3-none-any.whl.metadata (2.6 kB)
272Collecting jaraco.functools (from keyring)
273 Downloading jaraco.functools-4.1.0-py3-none-any.whl.metadata (2.9 kB)
274Collecting jaraco.context (from keyring)
275 Downloading jaraco.context-6.0.1-py3-none-any.whl.metadata (4.1 kB)
276Collecting cryptography>=2.0 (from SecretStorage>=3.2->keyring)
277 Downloading cryptography-44.0.1-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB)
278Collecting more-itertools (from jaraco.classes->keyring)
279 Downloading more_itertools-10.6.0-py3-none-any.whl.metadata (37 kB)
280Collecting cffi>=1.12 (from cryptography>=2.0->SecretStorage>=3.2->keyring)
281 Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
282Collecting pycparser (from cffi>=1.12->cryptography>=2.0->SecretStorage>=3.2->keyring)
283 Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
284Downloading pylint-3.3.4-py3-none-any.whl (522 kB)
285Downloading ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB)
286Downloading flake8-7.1.2-py2.py3-none-any.whl (57 kB)
287Downloading pyfakefs-5.7.4-py3-none-any.whl (228 kB)
288Downloading keyring-25.6.0-py3-none-any.whl (39 kB)
289Downloading astroid-3.3.8-py3-none-any.whl (275 kB)
290Downloading dill-0.3.9-py3-none-any.whl (119 kB)
291Downloading isort-6.0.0-py3-none-any.whl (94 kB)
292Downloading jeepney-0.8.0-py3-none-any.whl (48 kB)
293Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)
294Downloading pycodestyle-2.12.1-py2.py3-none-any.whl (31 kB)
295Downloading pyflakes-3.2.0-py2.py3-none-any.whl (62 kB)
296Downloading SecretStorage-3.3.3-py3-none-any.whl (15 kB)
297Downloading tomlkit-0.13.2-py3-none-any.whl (37 kB)
298Downloading jaraco.classes-3.4.0-py3-none-any.whl (6.8 kB)
299Downloading jaraco.context-6.0.1-py3-none-any.whl (6.8 kB)
300Downloading jaraco.functools-4.1.0-py3-none-any.whl (10 kB)
301Downloading cryptography-44.0.1-cp39-abi3-manylinux_2_34_x86_64.whl (4.2 MB)
302Downloading more_itertools-10.6.0-py3-none-any.whl (63 kB)
303Downloading cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB)
304Downloading pycparser-2.22-py3-none-any.whl (117 kB)
305Installing collected packages: tomlkit, ruff, pyflakes, pyfakefs, pycparser, pycodestyle, more-itertools, mccabe, jeepney, jaraco.context, isort, dill, astroid, pylint, jaraco.functools, jaraco.classes, flake8, cffi, cryptography, SecretStorage, keyring
306Successfully installed SecretStorage-3.3.3 astroid-3.3.8 cffi-1.17.1 cryptography-44.0.1 dill-0.3.9 flake8-7.1.2 isort-6.0.0 jaraco.classes-3.4.0 jaraco.context-6.0.1 jaraco.functools-4.1.0 jeepney-0.8.0 keyring-25.6.0 mccabe-0.7.0 more-itertools-10.6.0 pycodestyle-2.12.1 pycparser-2.22 pyfakefs-5.7.4 pyflakes-3.2.0 pylint-3.3.4 ruff-0.9.6 tomlkit-0.13.2
install.3
30715.97s$ pip install pyqt6 dbus-python
308Collecting pyqt6
309 Downloading PyQt6-6.8.1-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (2.1 kB)
310Collecting dbus-python
311 Downloading dbus-python-1.3.2.tar.gz (605 kB)
312 Installing build dependencies ... done
313 Getting requirements to build wheel ... done
314 Preparing metadata (pyproject.toml) ... done
315Collecting PyQt6-sip<14,>=13.8 (from pyqt6)
316 Downloading PyQt6_sip-13.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (472 bytes)
317Collecting PyQt6-Qt6<6.9.0,>=6.8.0 (from pyqt6)
318 Downloading PyQt6_Qt6-6.8.2-py3-none-manylinux_2_28_x86_64.whl.metadata (534 bytes)
319Downloading PyQt6-6.8.1-cp39-abi3-manylinux_2_28_x86_64.whl (8.2 MB)
320Downloading PyQt6_Qt6-6.8.2-py3-none-manylinux_2_28_x86_64.whl (81.3 MB)
321Downloading PyQt6_sip-13.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl (303 kB)
322Building wheels for collected packages: dbus-python
323 Building wheel for dbus-python (pyproject.toml) ... done
324 Created wheel for dbus-python: filename=dbus_python-1.3.2-cp312-cp312-linux_x86_64.whl size=122709 sha256=3b4567b3e21c15ff2f7c5b1a10d435d2b3bc377443db6425ad83e766fef27775
325 Stored in directory: /home/travis/.cache/pip/wheels/af/10/cf/199cea3104083e08fd54f5f1d61656138c62b9677b0f78f1b6
326Successfully built dbus-python
327Installing collected packages: PyQt6-Qt6, PyQt6-sip, dbus-python, pyqt6
328Successfully installed PyQt6-Qt6-6.8.2 PyQt6-sip-13.10.0 dbus-python-1.3.2 pyqt6-6.8.1
install.4
3290.10s$ ssh-keygen -b 2048 -t rsa -f /home/travis/.ssh/id_rsa -N ""
330Generating public/private rsa key pair.
331Your identification has been saved in /home/travis/.ssh/id_rsa
332Your public key has been saved in /home/travis/.ssh/id_rsa.pub
333The key fingerprint is:
334SHA256:xn3dXOC9Fkqgb35kbWeWbcCi6NTPwq4SMm9Y//dvsz8 travis@travis-job-44a2ea8c-a218-4cec-a367-bad660a9da6a
335The key's randomart image is:
336+---[RSA 2048]----+
337| . . |
338| . .o o |
339| . ..+.o|
340| . +...oo+*|
341| S +o.+.*O|
342| o o+ .o+o o+.|
343| * o. o.o. |
344| . + .. .o E.|
345| . ..oo. ..+B|
346+----[SHA256]-----+
install.5
3470.00s$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
install.6
3480.01s$ eval `ssh-agent -s`
349Agent pid 5140
3500.34s$ python -m compileall common common/test common/plugins qt qt/test qt/plugins
351Listing 'common'...
352Compiling 'common/applicationinstance.py'...
353Compiling 'common/askpass.py'...
354Compiling 'common/backintime.py'...
355Listing 'common/bash-completion'...
356Compiling 'common/bcolors.py'...
357Compiling 'common/bitbase.py'...
358Compiling 'common/cli.py'...
359Compiling 'common/config.py'...
360Compiling 'common/configfile.py'...
361Compiling 'common/daemon.py'...
362Compiling 'common/diagnostics.py'...
363Listing 'common/doc-dev'...
364Listing 'common/doc-dev/_static'...
365Listing 'common/doc-dev/_templates'...
366Compiling 'common/doc-dev/conf.py'...
367Listing 'common/doc-dev/plugins'...
368Compiling 'common/encfstools.py'...
369Compiling 'common/encode.py'...
370Compiling 'common/exceptions.py'...
371Compiling 'common/flock.py'...
372Compiling 'common/guiapplicationinstance.py'...
373Compiling 'common/languages.py'...
374Compiling 'common/logger.py'...
375Listing 'common/man'...
376Listing 'common/man/C'...
377Compiling 'common/mount.py'...
378Compiling 'common/password.py'...
379Compiling 'common/password_ipc.py'...
380Compiling 'common/pluginmanager.py'...
381Listing 'common/plugins'...
382Compiling 'common/plugins/usercallbackplugin.py'...
383Listing 'common/po'...
384Compiling 'common/progress.py'...
385Compiling 'common/qt_probing.py'...
386Compiling 'common/schedule.py'...
387Compiling 'common/singleton.py'...
388Compiling 'common/snapshotlog.py'...
389Compiling 'common/snapshots.py'...
390Compiling 'common/ssh_max_arg.py'...
391Compiling 'common/sshtools.py'...
392Listing 'common/test'...
393Compiling 'common/test/__init__.py'...
394Compiling 'common/test/constants.py'...
395Compiling 'common/test/generic.py'...
396Compiling 'common/test/test_applicationinstance.py'...
397Compiling 'common/test/test_argparser.py'...
398Compiling 'common/test/test_backintime.py'...
399Compiling 'common/test/test_backup.py'...
400Compiling 'common/test/test_config.py'...
401Compiling 'common/test/test_config_crontab.py'...
402Compiling 'common/test/test_configfile.py'...
403Compiling 'common/test/test_diagnostics.py'...
404Compiling 'common/test/test_encfstools.py'...
405Compiling 'common/test/test_languages.py'...
406Compiling 'common/test/test_lint.py'...
407Compiling 'common/test/test_mount.py'...
408Compiling 'common/test/test_plugin_usercallback.py'...
409Compiling 'common/test/test_restore.py'...
410Compiling 'common/test/test_schedule.py'...
411Compiling 'common/test/test_sid.py'...
412Compiling 'common/test/test_singleton.py'...
413Compiling 'common/test/test_snapshotlog.py'...
414Compiling 'common/test/test_snapshots.py'...
415Compiling 'common/test/test_snapshots_autoremove.py'...
416Compiling 'common/test/test_sshtools.py'...
417Compiling 'common/test/test_takeSnapshot.py'...
418Compiling 'common/test/test_tools.py'...
419Compiling 'common/test/test_uniquenessset.py'...
420Compiling 'common/tools.py'...
421Compiling 'common/uniquenessset.py'...
422Compiling 'common/version.py'...
423Listing 'common/test'...
424Listing 'common/plugins'...
425Listing 'qt'...
426Compiling 'qt/aboutdlg.py'...
427Compiling 'qt/app.py'...
428Compiling 'qt/editusercallback.py'...
429Compiling 'qt/encfsmsgbox.py'...
430Compiling 'qt/icon.py'...
431Listing 'qt/icons'...
432Listing 'qt/icons/16x16'...
433Listing 'qt/icons/16x16/actions'...
434Listing 'qt/icons/22x22'...
435Listing 'qt/icons/22x22/actions'...
436Listing 'qt/icons/24x24'...
437Listing 'qt/icons/24x24/actions'...
438Listing 'qt/icons/32x32'...
439Listing 'qt/icons/32x32/actions'...
440Listing 'qt/icons/48x48'...
441Listing 'qt/icons/48x48/actions'...
442Listing 'qt/icons/scalable'...
443Listing 'qt/icons/scalable/actions'...
444Compiling 'qt/languagedialog.py'...
445Compiling 'qt/logviewdialog.py'...
446Listing 'qt/man'...
447Listing 'qt/man/C'...
448Listing 'qt/manageprofiles'...
449Compiling 'qt/manageprofiles/__init__.py'...
450Compiling 'qt/manageprofiles/combobox.py'...
451Compiling 'qt/manageprofiles/schedulewidget.py'...
452Compiling 'qt/manageprofiles/spinboxunit.py'...
453Compiling 'qt/manageprofiles/sshproxywidget.py'...
454Compiling 'qt/manageprofiles/statebindcheckbox.py'...
455Compiling 'qt/manageprofiles/tab_expert_options.py'...
456Compiling 'qt/manageprofiles/tab_general.py'...
457Compiling 'qt/manageprofiles/tab_options.py'...
458Compiling 'qt/manageprofiles/tab_remove_retention.py'...
459Compiling 'qt/messagebox.py'...
460Listing 'qt/plugins'...
461Compiling 'qt/plugins/notifyplugin.py'...
462Compiling 'qt/plugins/systrayiconplugin.py'...
463Compiling 'qt/qtsystrayicon.py'...
464Compiling 'qt/qttools.py'...
465Compiling 'qt/qttools_path.py'...
466Compiling 'qt/restoreconfigdialog.py'...
467Compiling 'qt/restoredialog.py'...
468Compiling 'qt/serviceHelper.py'...
469Compiling 'qt/snapshotsdialog.py'...
470Compiling 'qt/statedata.py'...
471Listing 'qt/test'...
472Compiling 'qt/test/__init__.py'...
473Compiling 'qt/test/test_lint.py'...
474Compiling 'qt/test/test_statedata.py'...
475Compiling 'qt/usermessagedialog.py'...
476Listing 'qt/test'...
477Listing 'qt/plugins'...
478The command "python -m compileall common common/test common/plugins qt qt/test qt/plugins" exited with 0.
4790.00s$ cd common
480The command "cd common" exited with 0.
4810.15s$ ./configure
482Replacement of python path with "/usr/bin/python3" successful.
483All OK. Now run:
484 make
485 sudo make install
486The command "./configure" exited with 0.
487127.66s$ make unittest-v
488/home/travis/virtualenv/python3.12.4/bin/pytest -v
489============================= test session starts ==============================
490platform linux -- Python 3.12.4, pytest-8.3.1, pluggy-1.5.0 -- /home/travis/virtualenv/python3.12.4/bin/python
491cachedir: .pytest_cache
492rootdir: /home/travis/build/bit-team/backintime/common
493plugins: pyfakefs-5.7.4
494collected 427 items
496test/test_applicationinstance.py::General::test_autoExit_other_running_process PASSED [ 0%]
497test/test_applicationinstance.py::General::test_autoExit_unique_process PASSED [ 0%]
498test/test_applicationinstance.py::General::test_auto_flock PASSED [ 0%]
499test/test_applicationinstance.py::General::test_create_and_remove_pid_file PASSED [ 0%]
500test/test_applicationinstance.py::General::test_existing_process_with_correct_proc_cmdline PASSED [ 1%]
501test/test_applicationinstance.py::General::test_existing_process_with_correct_procname PASSED [ 1%]
502test/test_applicationinstance.py::General::test_existing_process_with_wrong_pid PASSED [ 1%]
503test/test_applicationinstance.py::General::test_existing_process_with_wrong_procname PASSED [ 1%]
504test/test_applicationinstance.py::General::test_flock_exclusive PASSED [ 2%]
505test/test_applicationinstance.py::General::test_flock_exclusive_fail PASSED [ 2%]
506test/test_applicationinstance.py::General::test_killing_existing_process PASSED [ 2%]
507test/test_applicationinstance.py::General::test_leftover_empty_lockfile PASSED [ 2%]
508test/test_applicationinstance.py::General::test_no_pid_file PASSED [ 3%]
509test/test_applicationinstance.py::General::test_non_existing_process PASSED [ 3%]
510test/test_applicationinstance.py::General::test_pid_file_content PASSED [ 3%]
511test/test_applicationinstance.py::General::test_readPidFile PASSED [ 3%]
512test/test_applicationinstance.py::General::test_readPidFile_fail PASSED [ 3%]
513test/test_applicationinstance.py::General::test_thread_write_without_flock PASSED [ 4%]
514test/test_applicationinstance.py::General::test_write_pid_fail PASSED [ 4%]
515test/test_argparser.py::General::test_config PASSED [ 4%]
516test/test_argparser.py::General::test_config_no_path PASSED [ 4%]
517test/test_argparser.py::General::test_debug PASSED [ 5%]
518test/test_argparser.py::General::test_invalid_arg PASSED [ 5%]
519test/test_argparser.py::General::test_quiet PASSED [ 5%]
520test/test_argparser.py::Backup::test_backwards_compatiblity_alias PASSED [ 5%]
521test/test_argparser.py::Backup::test_multi_args PASSED [ 6%]
522test/test_argparser.py::Backup::test_profile PASSED [ 6%]
523test/test_argparser.py::Backup::test_profile_and_profile_id PASSED [ 6%]
524test/test_argparser.py::Backup::test_profile_id PASSED [ 6%]
525test/test_argparser.py::Backup::test_quiet PASSED [ 7%]
526test/test_argparser.py::Backup::test_simple PASSED [ 7%]
527test/test_argparser.py::Restore::test_empty_where PASSED [ 7%]
528test/test_argparser.py::Restore::test_local_backup_and_no_local_backup PASSED [ 7%]
529test/test_argparser.py::Restore::test_multi_args PASSED [ 7%]
530test/test_argparser.py::Restore::test_simple PASSED [ 8%]
531test/test_argparser.py::Restore::test_snapshot_id_index PASSED [ 8%]
532test/test_argparser.py::Restore::test_what_space_in_path PASSED [ 8%]
533test/test_argparser.py::Restore::test_what_where_snapshot_id PASSED [ 8%]
534test/test_argparser.py::Restore::test_what_where_snapshot_id_multi_args PASSED [ 9%]
535test/test_argparser.py::Restore::test_where_space_in_path PASSED [ 9%]
536test/test_backintime.py::BackInTime::test_diagnostics_arg PASSED [ 9%]
537test/test_backintime.py::BackInTime::test_local_snapshot_is_successful FAILED [ 9%]
538test/test_backintime.py::BackInTime::test_quiet_mode PASSED [ 10%]
539test/test_backup.py::TestBackup::test_already_running PASSED [ 10%]
540test/test_backup.py::TestBackup::test_backup PASSED [ 10%]
541test/test_backup.py::TestBackup::test_backup_async PASSED [ 10%]
542test/test_backup.py::TestBackup::test_backup_async_profile_2 PASSED [ 11%]
543test/test_backup.py::TestBackup::test_backup_async_with_checksum PASSED [ 11%]
544test/test_backup.py::TestBackup::test_cant_backup PASSED [ 11%]
545test/test_backup.py::TestBackup::test_mount_exception PASSED [ 11%]
546test/test_backup.py::TestBackup::test_no_backup_on_battery PASSED [ 11%]
547test/test_backup.py::TestBackup::test_no_changes PASSED [ 12%]
548test/test_backup.py::TestBackup::test_not_configured PASSED [ 12%]
549test/test_backup.py::TestBackup::test_plugin_prevented_backup PASSED [ 12%]
550test/test_backup.py::TestBackup::test_scheduled PASSED [ 12%]
551test/test_backup.py::TestBackup::test_takeSnapshot_exception_cleanup PASSED [ 13%]
552test/test_backup.py::TestBackup::test_umount_exception PASSED [ 13%]
553test/test_backup.py::TestBackup::test_with_errors PASSED [ 13%]
554test/test_config.py::RemoveOldSnapshotsDate::test_day PASSED [ 13%]
555test/test_config.py::RemoveOldSnapshotsDate::test_invalid_unit PASSED [ 14%]
556test/test_config.py::RemoveOldSnapshotsDate::test_week_always_monday PASSED [ 14%]
557test/test_config.py::RemoveOldSnapshotsDate::test_week_ignore_current PASSED [ 14%]
558test/test_config.py::RemoveOldSnapshotsDate::test_year_ignore_current_month PASSED [ 14%]
559test/test_config.py::SshCommand::test_cipher_aes256_cbc PASSED [ 14%]
560test/test_config.py::SshCommand::test_cipher_disabled PASSED [ 15%]
561test/test_config.py::SshCommand::test_custom_args PASSED [ 15%]
562test/test_config.py::SshCommand::test_disable_args PASSED [ 15%]
563test/test_config.py::SshCommand::test_full_command PASSED [ 15%]
564test/test_config.py::SshCommand::test_nice_and_ionice PASSED [ 16%]
565test/test_config.py::SshCommand::test_nice_and_ionice_without_command PASSED [ 16%]
566test/test_config.py::SshCommand::test_prefix PASSED [ 16%]
567test/test_config.py::SshCommand::test_prefix_false PASSED [ 16%]
568test/test_config.py::SshCommand::test_quote PASSED [ 17%]
569test/test_config.py::SshCommand::test_quote_without_command PASSED [ 17%]
570test/test_config.py::SshCommand::test_without_command PASSED [ 17%]
571test/test_config_crontab.py::Cron::test_cron_lines PASSED [ 17%]
572test/test_config_crontab.py::CrontabDebug::test_crontab_contains_debug PASSED [ 18%]
573test/test_config_crontab.py::CrontabDebug::test_crontab_without_debug PASSED [ 18%]
574test/test_configfile.py::TestConfigFile::test_boolValue PASSED [ 18%]
575test/test_configfile.py::TestConfigFile::test_boolValue_default PASSED [ 18%]
576test/test_configfile.py::TestConfigFile::test_hasKey PASSED [ 18%]
577test/test_configfile.py::TestConfigFile::test_intValue PASSED [ 19%]
578test/test_configfile.py::TestConfigFile::test_intValue_default PASSED [ 19%]
579test/test_configfile.py::TestConfigFile::test_listValue_bool PASSED [ 19%]
580test/test_configfile.py::TestConfigFile::test_listValue_default PASSED [ 19%]
581test/test_configfile.py::TestConfigFile::test_listValue_empty_list PASSED [ 20%]
582test/test_configfile.py::TestConfigFile::test_listValue_int PASSED [ 20%]
583test/test_configfile.py::TestConfigFile::test_listValue_invalid_type PASSED [ 20%]
584test/test_configfile.py::TestConfigFile::test_listValue_missing_values PASSED [ 20%]
585test/test_configfile.py::TestConfigFile::test_listValue_str PASSED [ 21%]
586test/test_configfile.py::TestConfigFile::test_listValue_tuple PASSED [ 21%]
587test/test_configfile.py::TestConfigFile::test_listValue_tuple_missing_values PASSED [ 21%]
588test/test_configfile.py::TestConfigFile::test_listValue_wrong_size PASSED [ 21%]
589test/test_configfile.py::TestConfigFile::test_listValue_zero_count PASSED [ 22%]
590test/test_configfile.py::TestConfigFile::test_load PASSED [ 22%]
591test/test_configfile.py::TestConfigFile::test_remapKey PASSED [ 22%]
592test/test_configfile.py::TestConfigFile::test_remapKeyRegex PASSED [ 22%]
593test/test_configfile.py::TestConfigFile::test_remove_key PASSED [ 22%]
594test/test_configfile.py::TestConfigFile::test_remove_keys_start_with PASSED [ 23%]
595test/test_configfile.py::TestConfigFile::test_remove_keys_start_with_not_matching_prefix PASSED [ 23%]
596test/test_configfile.py::TestConfigFile::test_save PASSED [ 23%]
597test/test_configfile.py::TestConfigFile::test_setBoolValue PASSED [ 23%]
598test/test_configfile.py::TestConfigFile::test_setIntValue PASSED [ 24%]
599test/test_configfile.py::TestConfigFile::test_setListValue_bool PASSED [ 24%]
600test/test_configfile.py::TestConfigFile::test_setListValue_int PASSED [ 24%]
601test/test_configfile.py::TestConfigFile::test_setListValue_invalid_type_for_type_key PASSED [ 24%]
602test/test_configfile.py::TestConfigFile::test_setListValue_invalid_type_for_value PASSED [ 25%]
603test/test_configfile.py::TestConfigFile::test_setListValue_remove_leftovers PASSED [ 25%]
604test/test_configfile.py::TestConfigFile::test_setListValue_remove_leftovers_tuple PASSED [ 25%]
605test/test_configfile.py::TestConfigFile::test_setListValue_str PASSED [ 25%]
606test/test_configfile.py::TestConfigFile::test_setListValue_tuple PASSED [ 25%]
607test/test_configfile.py::TestConfigFile::test_setListValue_tuple_missing_values PASSED [ 26%]
608test/test_configfile.py::TestConfigFile::test_setStrValue PASSED [ 26%]
609test/test_configfile.py::TestConfigFile::test_strValue PASSED [ 26%]
610test/test_configfile.py::TestConfigFile::test_strValue_default PASSED [ 26%]
611test/test_configfile.py::TestConfigFileWithProfiles::test_addProfile PASSED [ 27%]
612test/test_configfile.py::TestConfigFileWithProfiles::test_current_profile PASSED [ 27%]
613test/test_configfile.py::TestConfigFileWithProfiles::test_current_profile_by_name PASSED [ 27%]
614test/test_configfile.py::TestConfigFileWithProfiles::test_get_profile_key PASSED [ 27%]
615test/test_configfile.py::TestConfigFileWithProfiles::test_hasProfileKey PASSED [ 28%]
616test/test_configfile.py::TestConfigFileWithProfiles::test_load PASSED [ 28%]
617test/test_configfile.py::TestConfigFileWithProfiles::test_profileExists PASSED [ 28%]
618test/test_configfile.py::TestConfigFileWithProfiles::test_profileExistsByName PASSED [ 28%]
619test/test_configfile.py::TestConfigFileWithProfiles::test_profileName PASSED [ 29%]
620test/test_configfile.py::TestConfigFileWithProfiles::test_profiles PASSED [ 29%]
621test/test_configfile.py::TestConfigFileWithProfiles::test_profilesSortedByName PASSED [ 29%]
622test/test_configfile.py::TestConfigFileWithProfiles::test_remapProfileKey PASSED [ 29%]
623test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfile PASSED [ 29%]
624test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfileKey PASSED [ 30%]
625test/test_configfile.py::TestConfigFileWithProfiles::test_removeProfileKeysStartsWith PASSED [ 30%]
626test/test_configfile.py::TestConfigFileWithProfiles::test_setProfileName PASSED [ 30%]
627test/test_configfile.py::TestConfigFileWithProfiles::test_set_profile_value PASSED [ 30%]
628test/test_diagnostics.py::Diagnostics::test_content_minimal PASSED [ 31%]
629test/test_diagnostics.py::Diagnostics::test_no_extern_version PASSED [ 31%]
630test/test_diagnostics.py::Diagnostics::test_no_ressource_warning PASSED [ 31%]
631test/test_diagnostics.py::Diagnostics::test_replace_user_path PASSED [ 31%]
632test/test_diagnostics.py::Diagnostics::test_some_content PASSED [ 32%]
633test/test_encfstools.py::TestEncFS_mount::test_dummy PASSED [ 32%]
634test/test_encfstools.py::TestEncFS_mount::test_initialise_encfs PASSED [ 32%]
635test/test_languages.py::General::test_completeness_key_types PASSED [ 32%]
636test/test_languages.py::General::test_completeness_value_types PASSED [ 33%]
637test/test_lint.py::MirrorMirrorOnTheWall::test005_ensure_linter_versions PASSED [ 33%]
638test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset FAILED [ 33%]
639test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset FAILED [ 33%]
640test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset FAILED [ 33%]
641test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset FAILED [ 34%]
642test/test_lint.py::MirrorMirrorOnTheWall::test060_reuse SKIPPED (Usi...) [ 34%]
643test/test_mount.py::CheckLocks::test_foreign_lock PASSED [ 34%]
644test/test_mount.py::CheckLocks::test_foreign_lock_notexisting_pid PASSED [ 34%]
645test/test_mount.py::CheckLocks::test_ignore_own_lock PASSED [ 35%]
646test/test_mount.py::CheckLocks::test_lock_remove PASSED [ 35%]
647test/test_mount.py::CheckLocks::test_not_existing_dir PASSED [ 35%]
648test/test_mount.py::CheckLocks::test_own_lock_but_diff_tmpmount PASSED [ 35%]
649test/test_mount.py::CheckLocks::test_symlinks_remove PASSED [ 36%]
650test/test_mount.py::CheckHighLevelLocalMount::test_first_preMountCheck PASSED [ 36%]
651test/test_mount.py::CheckHighLevelLocalMount::test_initialised_preMountCheck PASSED [ 36%]
652test/test_mount.py::CheckHighLevelLocalMount::test_mount PASSED [ 36%]
653test/test_mount.py::CheckHighLevelLocalMount::test_remount_to_new_local_mount PASSED [ 37%]
654test/test_mount.py::CheckHighLevelLocalMount::test_umount PASSED [ 37%]
655test/test_plugin_usercallback.py::UserCallback::test_reason_appExit PASSED [ 37%]
656test/test_plugin_usercallback.py::UserCallback::test_reason_appStart PASSED [ 37%]
657test/test_plugin_usercallback.py::UserCallback::test_reason_error PASSED [ 37%]
658test/test_plugin_usercallback.py::UserCallback::test_reason_mount PASSED [ 38%]
659test/test_plugin_usercallback.py::UserCallback::test_reason_processBegin PASSED [ 38%]
660test/test_plugin_usercallback.py::UserCallback::test_reason_processEnd PASSED [ 38%]
661test/test_plugin_usercallback.py::UserCallback::test_reason_processnewSnapshot PASSED [ 38%]
662test/test_plugin_usercallback.py::UserCallback::test_reason_unmount PASSED [ 39%]
663test/test_plugin_usercallback.py::SystemTest::test_local_snapshot FAILED [ 39%]
664test/test_restore.py::TestRestore::test_backup PASSED [ 39%]
665test/test_restore.py::TestRestore::test_delete PASSED [ 39%]
666test/test_restore.py::TestRestore::test_no_backup PASSED [ 40%]
667test/test_restore.py::TestRestore::test_only_new PASSED [ 40%]
668test/test_restore.py::TestRestore::test_restore_folder_to_different_destination PASSED [ 40%]
669test/test_restore.py::TestRestore::test_restore_multiple_files PASSED [ 40%]
670test/test_restore.py::TestRestore::test_restore_to_different_destination PASSED [ 40%]
671test/test_restore.py::TestRestoreLocal::test_restore PASSED [ 41%]
672test/test_restore.py::TestRestoreLocal::test_restore_file_with_spaces PASSED [ 41%]
673test/test_restore.py::TestRestoreSSH::test_restore PASSED [ 41%]
674test/test_restore.py::TestRestoreSSH::test_restore_file_with_spaces PASSED [ 41%]
675test/test_schedule.py::Schedule::test_bit_to_crontab PASSED [ 42%]
676test/test_schedule.py::Schedule::test_remove_bit_entries PASSED [ 42%]
677test/test_sid.py::TestSID::test_displayID PASSED [ 42%]
678test/test_sid.py::TestSID::test_displayName PASSED [ 42%]
679test/test_sid.py::TestSID::test_equal_sid PASSED [ 43%]
680test/test_sid.py::TestSID::test_exists PASSED [ 43%]
681test/test_sid.py::TestSID::test_failed PASSED [ 43%]
682test/test_sid.py::TestSID::test_fileInfo PASSED [ 43%]
683test/test_sid.py::TestSID::test_fileInfoErrorRead PASSED [ 44%]
684test/test_sid.py::TestSID::test_fileInfoErrorWrite PASSED [ 44%]
685test/test_sid.py::TestSID::test_hash PASSED [ 44%]
686test/test_sid.py::TestSID::test_info PASSED [ 44%]
687test/test_sid.py::TestSID::test_isExistingPathInsideSnapshotFolder PASSED [ 44%]
688test/test_sid.py::TestSID::test_lastChecked PASSED [ 45%]
689test/test_sid.py::TestSID::test_log PASSED [ 45%]
690test/test_sid.py::TestSID::test_log_filter PASSED [ 45%]
691test/test_sid.py::TestSID::test_makeDirs PASSED [ 45%]
692test/test_sid.py::TestSID::test_makeWritable PASSED [ 46%]
693test/test_sid.py::TestSID::test_name PASSED [ 46%]
694test/test_sid.py::TestSID::test_new_object_with_invalid_type PASSED [ 46%]
695test/test_sid.py::TestSID::test_new_object_with_invalid_value PASSED [ 46%]
696test/test_sid.py::TestSID::test_new_object_with_valid_date PASSED [ 47%]
697test/test_sid.py::TestSID::test_path PASSED [ 47%]
698test/test_sid.py::TestSID::test_setLog_binary PASSED [ 47%]
699test/test_sid.py::TestSID::test_sort_sids PASSED [ 47%]
700test/test_sid.py::TestSID::test_split PASSED [ 48%]
701test/test_sid.py::TestSID::test_tag PASSED [ 48%]
702test/test_sid.py::TestSID::test_withoutTag PASSED [ 48%]
703test/test_sid.py::TestNewSnapshot::test_create_new PASSED [ 48%]
704test/test_sid.py::TestNewSnapshot::test_hasChanges PASSED [ 48%]
705test/test_sid.py::TestNewSnapshot::test_saveToContinue PASSED [ 49%]
706test/test_sid.py::TestRootSnapshot::test_create PASSED [ 49%]
707test/test_sid.py::TestRootSnapshot::test_path PASSED [ 49%]
708test/test_sid.py::TestIterSnapshots::test_iter_snapshots PASSED [ 49%]
709test/test_sid.py::TestIterSnapshots::test_lastSnapshot PASSED [ 50%]
710test/test_sid.py::TestIterSnapshots::test_list_invalid_snapshot PASSED [ 50%]
711test/test_sid.py::TestIterSnapshots::test_list_new_snapshot PASSED [ 50%]
712test/test_sid.py::TestIterSnapshots::test_list_not_reverse PASSED [ 50%]
713test/test_sid.py::TestIterSnapshots::test_list_snapshot_without_backup PASSED [ 51%]
714test/test_sid.py::TestIterSnapshots::test_list_symlink_last_snapshot PASSED [ 51%]
715test/test_sid.py::TestIterSnapshots::test_list_valid PASSED [ 51%]
716test/test_sid.py::TestIterSnapshots::test_list_without_new_snapshot PASSED [ 51%]
717test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_iterSnapshots PASSED [ 51%]
718test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_lastSnapshots PASSED [ 52%]
719test/test_sid.py::TestIterSnapshotsNonexistingSnapshotPath::test_listSnapshots PASSED [ 52%]
720test/test_singleton.py::Test::test_multi_class PASSED [ 52%]
721test/test_singleton.py::Test::test_share_value PASSED [ 52%]
722test/test_singleton.py::Test::test_twins PASSED [ 53%]
723test/test_snapshotlog.py::TestLogFilter::test_filter PASSED [ 53%]
724test/test_snapshotlog.py::TestSnapshotLog::test_append PASSED [ 53%]
725test/test_snapshotlog.py::TestSnapshotLog::test_append_log_level PASSED [ 53%]
726test/test_snapshotlog.py::TestSnapshotLog::test_get PASSED [ 54%]
727test/test_snapshotlog.py::TestSnapshotLog::test_get_filter PASSED [ 54%]
728test/test_snapshotlog.py::TestSnapshotLog::test_new PASSED [ 54%]
729test/test_snapshotlog.py::TestSnapshotLog::test_new_continue PASSED [ 54%]
730test/test_snapshotlog.py::TestSnapshotLog::test_skipLines PASSED [ 55%]
731test/test_snapshotlog.py::TestSnapshotLog::test_skipLines_filtered PASSED [ 55%]
732test/test_snapshotlog.py::TestSnapshotLog::test_skipLines_show_all PASSED [ 55%]
733test/test_snapshots.py::SetTakeSnapshotMessage::test_error PASSED [ 55%]
734test/test_snapshots.py::SetTakeSnapshotMessage::test_info PASSED [ 55%]
735test/test_snapshots.py::UserAndGroups::test_gid_backup PASSED [ 56%]
736test/test_snapshots.py::UserAndGroups::test_gid_invalid PASSED [ 56%]
737test/test_snapshots.py::UserAndGroups::test_gid_valid PASSED [ 56%]
738test/test_snapshots.py::UserAndGroups::test_groupname_invalid PASSED [ 56%]
739test/test_snapshots.py::UserAndGroups::test_groupname_valid PASSED [ 57%]
740test/test_snapshots.py::UserAndGroups::test_uid_backup PASSED [ 57%]
741test/test_snapshots.py::UserAndGroups::test_uid_invalid PASSED [ 57%]
742test/test_snapshots.py::UserAndGroups::test_uid_valid PASSED [ 57%]
743test/test_snapshots.py::UserAndGroups::test_username_invalid PASSED [ 58%]
744test/test_snapshots.py::UserAndGroups::test_username_valid PASSED [ 58%]
745test/test_snapshots.py::HelperScripts::test_create_last_snapshot_symlink PASSED [ 58%]
746test/test_snapshots.py::HelperScripts::test_make_dirs PASSED [ 58%]
747test/test_snapshots.py::HelperScripts::test_rsync_remote_path PASSED [ 59%]
748test/test_snapshots.py::HelperScripts::test_stat_free_space_local PASSED [ 59%]
749test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_exclude_unique_items PASSED [ 59%]
750test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_include_root PASSED [ 59%]
751test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_include_unique_items PASSED [ 59%]
752test/test_snapshots.py::RsyncExcludeIncludeSuffix::test_rsync_suffix PASSED [ 60%]
753test/test_snapshots.py::Callbacks::test_callback PASSED [ 60%]
754test/test_snapshots.py::Callbacks::test_dir PASSED [ 60%]
755test/test_snapshots.py::Callbacks::test_error PASSED [ 60%]
756test/test_snapshots.py::Callbacks::test_keep_params PASSED [ 61%]
757test/test_snapshots.py::Callbacks::test_restore PASSED [ 61%]
758test/test_snapshots.py::Callbacks::test_transfer PASSED [ 61%]
759test/test_snapshots.py::SnapshotWithSID::test_backup_config PASSED [ 61%]
760test/test_snapshots.py::SnapshotWithSID::test_backup_info_file PASSED [ 62%]
761test/test_snapshots.py::SnapshotWithSID::test_backup_permissions FAILED [ 62%]
762test/test_snapshots.py::SnapshotWithSID::test_collect_permission PASSED [ 62%]
763test/test_snapshots.py::RestorePathInfo::test_change_group PASSED [ 62%]
764test/test_snapshots.py::RestorePathInfo::test_change_owner_without_root PASSED [ 62%]
765test/test_snapshots.py::RestorePathInfo::test_change_permissions PASSED [ 63%]
766test/test_snapshots.py::RestorePathInfo::test_no_changes PASSED [ 63%]
767test/test_snapshots.py::DeletePath::test_dir PASSED [ 63%]
768test/test_snapshots.py::DeletePath::test_dir_readonly PASSED [ 63%]
769test/test_snapshots.py::DeletePath::test_file PASSED [ 64%]
770test/test_snapshots.py::DeletePath::test_file_readonly PASSED [ 64%]
771test/test_snapshots.py::DeletePath::test_pardir_readonly PASSED [ 64%]
772test/test_snapshots.py::RemoveSnapshot::test_remove PASSED [ 64%]
773test/test_snapshots.py::RemoveSnapshot::test_remove_read_only PASSED [ 65%]
774test/test_snapshots.py::SshSnapshots::test_stat_free_space_ssh PASSED [ 65%]
775test/test_snapshots.py::SshPermissions::test_backup_permissions FAILED [ 65%]
776test/test_snapshots.py::SshRemoveSnapshots::test_remove PASSED [ 65%]
777test/test_snapshots.py::SshRemoveSnapshots::test_remove_with_blank PASSED [ 66%]
778test/test_snapshots_autoremove.py::KeepFirst::test_all_invalid PASSED [ 66%]
779test/test_snapshots_autoremove.py::KeepFirst::test_ignore_unhealthy PASSED [ 66%]
780test/test_snapshots_autoremove.py::KeepFirst::test_keep_first_range_outside PASSED [ 66%]
781test/test_snapshots_autoremove.py::KeepFirst::test_min_included_max_not PASSED [ 66%]
782test/test_snapshots_autoremove.py::KeepFirst::test_no_date_ordering PASSED [ 67%]
783test/test_snapshots_autoremove.py::KeepFirst::test_one_but_set PASSED [ 67%]
784test/test_snapshots_autoremove.py::KeepFirst::test_simple_one PASSED [ 67%]
785test/test_snapshots_autoremove.py::KeepAllForLast::test_border PASSED [ 67%]
786test/test_snapshots_autoremove.py::KeepAllForLast::test_simple PASSED [ 68%]
787test/test_snapshots_autoremove.py::KeepOneForLastNDays::test_doc_example PASSED [ 68%]
788test/test_snapshots_autoremove.py::KeepOneForLastNWeeks::test_doc_example PASSED [ 68%]
789test/test_snapshots_autoremove.py::KeepOneForLastNMonths::test_doc_example PASSED [ 68%]
790test/test_snapshots_autoremove.py::KeepOnePerYearForAllYears::test_doc_example PASSED [ 69%]
791test/test_snapshots_autoremove.py::IncDecMonths::test_dec_leap_months PASSED [ 69%]
792test/test_snapshots_autoremove.py::IncDecMonths::test_dec_simple PASSED [ 69%]
793test/test_snapshots_autoremove.py::IncDecMonths::test_dec_year PASSED [ 69%]
794test/test_snapshots_autoremove.py::IncDecMonths::test_inc_leap_months PASSED [ 70%]
795test/test_snapshots_autoremove.py::IncDecMonths::test_inc_leap_year PASSED [ 70%]
796test/test_snapshots_autoremove.py::IncDecMonths::test_inc_next_year PASSED [ 70%]
797test/test_snapshots_autoremove.py::IncDecMonths::test_inc_simple PASSED [ 70%]
798test/test_sshtools.py::General::test_can_mount_ssh_rw PASSED [ 70%]
799test/test_sshtools.py::General::test_checkCipher_default PASSED [ 71%]
800test/test_sshtools.py::General::test_checkCipher_fail PASSED [ 71%]
801test/test_sshtools.py::General::test_checkCipher_specific PASSED [ 71%]
802test/test_sshtools.py::General::test_checkKnownHosts PASSED [ 71%]
803test/test_sshtools.py::General::test_checkKnownHosts_fail PASSED [ 72%]
804test/test_sshtools.py::General::test_checkLogin PASSED [ 72%]
805test/test_sshtools.py::General::test_checkLogin_fail_wrong_user PASSED [ 72%]
806test/test_sshtools.py::General::test_checkPingHost PASSED [ 72%]
807test/test_sshtools.py::General::test_checkPingHost_fail PASSED [ 73%]
808test/test_sshtools.py::General::test_checkRemoteFolder PASSED [ 73%]
809test/test_sshtools.py::General::test_checkRemoteFolder_fail_can_not_create PASSED [ 73%]
810test/test_sshtools.py::General::test_checkRemoteFolder_fail_not_a_folder PASSED [ 73%]
811test/test_sshtools.py::General::test_checkRemoteFolder_with_spaces PASSED [ 74%]
812test/test_sshtools.py::General::test_check_remote_command PASSED [ 74%]
813test/test_sshtools.py::General::test_check_remote_command_fail PASSED [ 74%]
814test/test_sshtools.py::General::test_check_remote_command_hard_link_fail PASSED [ 74%]
815test/test_sshtools.py::General::test_check_remote_command_with_spaces PASSED [ 74%]
816test/test_sshtools.py::General::test_randomId PASSED [ 75%]
817test/test_sshtools.py::General::test_unlockSshAgent PASSED [ 75%]
818test/test_sshtools.py::General::test_unlockSshAgent_fail PASSED [ 75%]
819test/test_sshtools.py::SshKey::test_fingerprint PASSED [ 75%]
820test/test_sshtools.py::SshKey::test_generate PASSED [ 76%]
821test/test_sshtools.py::SshKey::test_host_key PASSED [ 76%]
822test/test_sshtools.py::SshKey::test_write_known_host_file PASSED [ 76%]
823test/test_sshtools.py::StartSshAgent::test_equal_sign PASSED [ 76%]
824test/test_sshtools.py::StartSshAgent::test_error PASSED [ 77%]
825test/test_sshtools.py::StartSshAgent::test_export PASSED [ 77%]
826test/test_sshtools.py::StartSshAgent::test_just_start PASSED [ 77%]
827test/test_sshtools.py::StartSshAgent::test_missing PASSED [ 77%]
828test/test_sshtools.py::StartSshAgent::test_space PASSED [ 77%]
829test/test_sshtools.py::SSHCopyID::test_complete_command PASSED [ 78%]
830test/test_sshtools.py::SSHCopyID::test_custom_port PASSED [ 78%]
831test/test_sshtools.py::SSHCopyID::test_default_port PASSED [ 78%]
832test/test_sshtools.py::SSHCopyID::test_proxy_with_custom_port PASSED [ 78%]
833test/test_sshtools.py::SSHCopyID::test_proxy_with_default_port PASSED [ 79%]
834test/test_takeSnapshot.py::Take::test_error FAILED [ 79%]
835test/test_takeSnapshot.py::Take::test_error_without_continue PASSED [ 79%]
836test/test_takeSnapshot.py::Take::test_exclude FAILED [ 79%]
837test/test_takeSnapshot.py::Take::test_fail_create_new_snapshot PASSED [ 80%]
838test/test_takeSnapshot.py::Take::test_four_snapshots FAILED [ 80%]
839test/test_takeSnapshot.py::Take::test_new_exists FAILED [ 80%]
840test/test_takeSnapshot.py::Take::test_new_exists_continue FAILED [ 80%]
841test/test_takeSnapshot.py::Take::test_spaces_in_exclude FAILED [ 81%]
842test/test_takeSnapshot.py::Take::test_spaces_in_include FAILED [ 81%]
843test/test_takeSnapshot.py::TakeSSH::test_error FAILED [ 81%]
844test/test_takeSnapshot.py::TakeSSH::test_error_without_continue PASSED [ 81%]
845test/test_takeSnapshot.py::TakeSSH::test_exclude FAILED [ 81%]
846test/test_takeSnapshot.py::TakeSSH::test_fail_create_new_snapshot PASSED [ 82%]
847test/test_takeSnapshot.py::TakeSSH::test_four_snapshots FAILED [ 82%]
848test/test_takeSnapshot.py::TakeSSH::test_new_exists FAILED [ 82%]
849test/test_takeSnapshot.py::TakeSSH::test_new_exists_continue FAILED [ 82%]
850test/test_takeSnapshot.py::TakeSSH::test_spaces_in_exclude FAILED [ 83%]
851test/test_takeSnapshot.py::TakeSSH::test_spaces_in_include FAILED [ 83%]
852test/test_tools.py::TestTools::test_addSourceToPathEnviron PASSED [ 83%]
853test/test_tools.py::TestTools::test_backintimePath PASSED [ 83%]
854test/test_tools.py::TestTools::test_checkCommand PASSED [ 84%]
855test/test_tools.py::TestTools::test_checkCronPattern PASSED [ 84%]
856test/test_tools.py::TestTools::test_checkXServer PASSED [ 84%]
857test/test_tools.py::TestTools::test_decodeOctalEscape PASSED [ 84%]
858test/test_tools.py::TestTools::test_isRoot PASSED [ 85%]
859test/test_tools.py::TestTools::test_makeDirs PASSED [ 85%]
860test/test_tools.py::TestTools::test_makeDirs_not_writable PASSED [ 85%]
861test/test_tools.py::TestTools::test_md5sum PASSED [ 85%]
862test/test_tools.py::TestTools::test_mkdir PASSED [ 85%]
863test/test_tools.py::TestTools::test_mountArgs PASSED [ 86%]
864test/test_tools.py::TestTools::test_mountpoint PASSED [ 86%]
865test/test_tools.py::TestTools::test_patternHasNotEncryptableWildcard PASSED [ 86%]
866test/test_tools.py::TestTools::test_pids PASSED [ 86%]
867test/test_tools.py::TestTools::test_pidsWithName PASSED [ 87%]
868test/test_tools.py::TestTools::test_powerStatusAvailable PASSED [ 87%]
869test/test_tools.py::TestTools::test_preparePath PASSED [ 87%]
870test/test_tools.py::TestTools::test_processAlive PASSED [ 87%]
871test/test_tools.py::TestTools::test_processCmdline PASSED [ 88%]
872test/test_tools.py::TestTools::test_processCmdline_exception PASSED [ 88%]
873test/test_tools.py::TestTools::test_processExists PASSED [ 88%]
874test/test_tools.py::TestTools::test_processName PASSED [ 88%]
875test/test_tools.py::TestTools::test_processPaused PASSED [ 88%]
876test/test_tools.py::TestTools::test_processStat PASSED [ 89%]
877test/test_tools.py::TestTools::test_processStat_exception PASSED [ 89%]
878test/test_tools.py::TestTools::test_readFile PASSED [ 89%]
879test/test_tools.py::TestTools::test_readFileLines PASSED [ 89%]
880test/test_tools.py::TestTools::test_readTimeStamp PASSED [ 90%]
881test/test_tools.py::TestTools::test_registerBackintimePath PASSED [ 90%]
882test/test_tools.py::TestTools::test_rsyncCaps PASSED [ 90%]
883test/test_tools.py::TestTools::test_runningFromSource PASSED [ 90%]
884test/test_tools.py::TestTools::test_sharePath PASSED [ 91%]
885test/test_tools.py::TestTools::test_splitCommands PASSED [ 91%]
886test/test_tools.py::TestTools::test_usingSudo PASSED [ 91%]
887test/test_tools.py::TestTools::test_which PASSED [ 91%]
888test/test_tools.py::TestTools::test_writeTimeStamp PASSED [ 92%]
889test/test_tools.py::EscapeIPv6::test_escaped PASSED [ 92%]
890test/test_tools.py::EscapeIPv6::test_invalid PASSED [ 92%]
891test/test_tools.py::EscapeIPv6::test_passed PASSED [ 92%]
892test/test_tools.py::Environ::test_envLoad_do_not_overwrite_previous_values PASSED [ 92%]
893test/test_tools.py::Environ::test_envLoad_without_previous_values PASSED [ 93%]
894test/test_tools.py::Environ::test_envSave PASSED [ 93%]
895test/test_tools.py::ExecuteSubprocess::test_callback PASSED [ 93%]
896test/test_tools.py::ExecuteSubprocess::test_pausable PASSED [ 93%]
897test/test_tools.py::ExecuteSubprocess::test_returncode PASSED [ 94%]
898test/test_tools.py::Tools_FakeFS::test_git_repo_info PASSED [ 94%]
899test/test_tools.py::Tools_FakeFS::test_git_repo_info_none PASSED [ 94%]
900test/test_tools.py::ValidateSnapshotsPath::test_fails_on_ro PASSED [ 94%]
901test/test_tools.py::ValidateSnapshotsPath::test_permission_fail PASSED [ 95%]
902test/test_tools.py::ValidateSnapshotsPath::test_writes PASSED [ 95%]
903test/test_tools.py::OlderThan::test_days_not_older PASSED [ 95%]
904test/test_tools.py::OlderThan::test_days_older PASSED [ 95%]
905test/test_tools.py::OlderThan::test_hours_not_older PASSED [ 96%]
906test/test_tools.py::OlderThan::test_hours_older PASSED [ 96%]
907test/test_tools.py::OlderThan::test_month_31th PASSED [ 96%]
908test/test_tools.py::OlderThan::test_month_31th_plus_ms PASSED [ 96%]
909test/test_tools.py::OlderThan::test_month_next_year PASSED [ 96%]
910test/test_tools.py::OlderThan::test_month_next_year_plus_ms PASSED [ 97%]
911test/test_tools.py::OlderThan::test_month_not_older PASSED [ 97%]
912test/test_tools.py::OlderThan::test_month_older PASSED [ 97%]
913test/test_tools.py::OlderThan::test_week_not_older PASSED [ 97%]
914test/test_tools.py::OlderThan::test_week_older PASSED [ 98%]
915test/test_tools.py::NestedDictUpdate::test_simple PASSED [ 98%]
916test/test_uniquenessset.py::General::test_001_depency_workaround PASSED [ 98%]
917test/test_uniquenessset.py::General::test_ctor_defaults PASSED [ 98%]
918test/test_uniquenessset.py::General::test_deep_check PASSED [ 99%]
919test/test_uniquenessset.py::General::test_fail_equal_without_equal_to PASSED [ 99%]
920test/test_uniquenessset.py::General::test_size_mtime PASSED [ 99%]
921test/test_uniquenessset.py::General::test_unique_myself PASSED [ 99%]
922test/test_uniquenessset.py::General::test_unique_size_but_different_mtime PASSED [100%]
924=================================== FAILURES ===================================
925_________________ BackInTime.test_local_snapshot_is_successful _________________
927self = <test.test_backintime.BackInTime testMethod=test_local_snapshot_is_successful>
929 def test_local_snapshot_is_successful(self):
930 """From BIT initialization through snapshot
932 From BIT initialization all the way through successful snapshot on a
933 local mount. test one of the highest level interfaces a user could
934 work with - the command line ensures that argument parsing,
935 functionality, and output all work as expected is NOT intended to
936 replace individual method tests, which are incredibly useful as well.
938 Development notes (by Buhtz, 2023):
939 Multiple tests do compare return codes and output on stdout. It is NOT
940 tested what is on the file system. The intention might be a system
941 test. But the asserts not qualified to answer the important questions
942 and observe the intended behavior. Heavy refactoring is needed. But
943 because of the "level" of that tests it won't happen in the near
944 future. Also maintenance costs of this tests are damn high because
945 every tiny modification of BIT gives a false fail of this test.
947 Development notes (by Buhtz, 2024-05):
948 It is just dumb stdout parsing. I tend to remove this test because of
949 the calculation of its value and its maintenance costs.
950 """
952 # ensure that we see full diffs of assert output if there are any
953 self.maxDiff = None
955 # create pristine source directory with single file
956 subprocess.getoutput("chmod -R a+rwx /tmp/test && rm -rf /tmp/test")
957 os.mkdir('/tmp/test')
959 with open('/tmp/test/testfile', 'w') as f:
960 f.write('some data')
962 # create pristine snapshot directory
963 subprocess.getoutput(
964 "chmod -R a+rwx /tmp/snapshots && rm -rf /tmp/snapshots")
965 os.mkdir('/tmp/snapshots')
967 # remove restored directory
968 subprocess.getoutput("rm -rf /tmp/restored")
970 # install proper destination filesystem structure and verify output
971 proc = subprocess.Popen(["./backintime",
972 "--config",
973 "test/config",
974 "--share-path",
975 self.sharePath,
976 "check-config",
977 # do not overwrite users crontab
978 "--no-crontab"],
979 stdout=subprocess.PIPE,
980 stderr=subprocess.PIPE)
982 output, error = proc.communicate()
983 msg = 'Returncode: {}\nstderr: {}\nstdout: {}' \
984 .format(proc.returncode, error.decode(), output.decode())
986 self.assertEqual(proc.returncode, 0, msg)
988 self.assertRegex(output.decode(), re.compile(r'''
989 Back In Time
990 Version: \d+.\d+.\d+.*
992 Back In Time comes with ABSOLUTELY NO WARRANTY.
993 This is free software, and you are welcome to redistribute it
994 under certain conditions; type `backintime --license' for details.
996 (INFO: Update to config version \d+
997 )?
998 \+--------------------------------\+
999 | Check/prepare snapshot path |
1000 \+--------------------------------\+
1001 Check/prepare snapshot path: done
1003 \+--------------------------------\+
1004 | Check config |
1005 \+--------------------------------\+
1006 Check config: done
1008 Config .*test/config profile 'Main profile' is fine.''', re.MULTILINE))
1010 # execute backup and verify output
1011 proc = subprocess.Popen(["./backintime",
1012 "--config", "test/config",
1013 "--share-path", self.sharePath,
1014 "backup"],
1015 stdout=subprocess.PIPE,
1016 stderr=subprocess.PIPE)
1017 output, error = proc.communicate()
1018 msg = 'Returncode: {}\nstderr: {}\nstdout: {}' \
1019 .format(proc.returncode, error.decode(), output.decode())
1020> self.assertEqual(proc.returncode, 0, msg)
1021E AssertionError: 1 != 0 : Returncode: 1
1022E stderr: WARNING: Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1023E WARNING: D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1024E WARNING: Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1025E INFO: Lock
1026E INFO: Take a new snapshot. Profile: 1 Main profile
1027E INFO: Call rsync to take the snapshot
1028E INFO: Save config file
1029E INFO: Save permissions
1030E Traceback (most recent call last):
1031E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 1335, in <module>
1032E startApp()
1033E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 585, in startApp
1034E args.func(args)
1035E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 852, in backup
1036E ret = takeSnapshot(cfg, force)
1037E File "/home/travis/build/bit-team/backintime/common/backintime.py", line 100, in takeSnapshot
1038E ret = snapshots.Snapshots(cfg).backup(force)
1039E File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 896, in backup
1040E ret_val, ret_error = self.takeSnapshot(
1041E File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1493, in takeSnapshot
1042E self.backupPermissions(new_snapshot)
1043E File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1182, in backupPermissions
1044E decode = encfstools.Bounce()
1045E AttributeError: module 'encfstools' has no attribute 'Bounce'
1047E stdout:
1048E Back In Time
1049E Version: 1.5.4-rc1
1051E Back In Time comes with ABSOLUTELY NO WARRANTY.
1052E This is free software, and you are welcome to redistribute it
1053E under certain conditions; type `backintime --license' for details.
1055test/test_backintime.py:124: AssertionError
1056______________ MirrorMirrorOnTheWall.test010_ruff_default_ruleset ______________
1058self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test010_ruff_default_ruleset>
1060 @unittest.skipUnless(RUFF_AVAILABLE, BASE_REASON.format('ruff'))
1061 def test010_ruff_default_ruleset(self):
1062 """Ruff in default mode."""
1064 # ATTENTIION: Some settings are found in pyproject.toml
1065 cmd = [
1066 'ruff',
1067 'check',
1068 # Additionally activate subset of special rules:
1069 # - PyLint (PL)
1070 # - PyCodestyle (E, W)
1071 # - flake8-gettext (INT)
1072 # - useless noqua (RUF100)
1073 '--extend-select=PL,E,W,INT,RUF100',
1074 # Ignore: redefined-loop-name
1075 '--ignore=PLW2901',
1076 '--line-length', str(PEP8_MAX_LINE_LENGTH),
1077 # Because of globally installed GNU gettext functions
1078 '--config', 'builtins=["_", "ngettext"]',
1079 # Ruff counting branches different from PyLint.
1080 # See: <https://www.reddit.com/r/learnpython/comments/
1081 # 1buojae/comment/kxu0mp3>
1082 '--config', 'pylint.max-branches=13',
1083 '--config', 'flake8-quotes.inline-quotes = "single"',
1084 # one error per line (no context lines)
1085 '--output-format=concise',
1086 '--quiet',
1089 cmd.extend(full_test_files)
1091 proc = subprocess.run(
1092 cmd,
1093 check=False,
1094 universal_newlines=True,
1095 capture_output=True
1098 # No errors other then linter rules
1099 self.assertIn(proc.returncode, [0, 1], proc.stderr)
1101 error_n = len(proc.stdout.splitlines())
1102 if error_n > 0:
1103 print(proc.stdout)
1105> self.assertEqual(0, error_n, f'Ruff found {error_n} problem(s).')
1106E AssertionError: 0 != 1 : Ruff found 1 problem(s).
1108test/test_lint.py:229: AssertionError
1109----------------------------- Captured stdout call -----------------------------
1110test/test_mount.py:205:80: E501 Line too long (89 > 79)
1112_____________ MirrorMirrorOnTheWall.test020_flake8_default_ruleset _____________
1114self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test020_flake8_default_ruleset>
1116 @unittest.skipUnless(FLAKE8_AVAILABLE, BASE_REASON.format('flake8'))
1117 def test020_flake8_default_ruleset(self):
1118 """Flake8 in default mode."""
1119 cmd = [
1120 'flake8',
1121 f'--max-line-length={PEP8_MAX_LINE_LENGTH}',
1122 '--builtins=_,ngettext',
1123 # '--enable-extensions='
1126 cmd.extend(full_test_files)
1128 proc = subprocess.run(
1129 cmd,
1130 check=False,
1131 universal_newlines=True,
1132 capture_output=True
1135 error_n = len(proc.stdout.splitlines())
1136 if error_n > 0:
1137 print(proc.stdout)
1139> self.assertEqual(0, error_n, f'Flake8 found {error_n} problem(s).')
1140E AssertionError: 0 != 2 : Flake8 found 2 problem(s).
1142test/test_lint.py:257: AssertionError
1143----------------------------- Captured stdout call -----------------------------
1144/home/travis/build/bit-team/backintime/common/test/test_mount.py:205:80: E501 line too long (89 > 79 characters)
1145/home/travis/build/bit-team/backintime/common/test/test_mount.py:217:5: E303 too many blank lines (2)
1147_____________ MirrorMirrorOnTheWall.test030_pylint_default_ruleset _____________
1149self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test030_pylint_default_ruleset>
1151 @unittest.skipUnless(PYLINT_AVAILABLE, BASE_REASON.format('PyLint'))
1152 def test030_pylint_default_ruleset(self):
1153 """Use Pylint with all default rules to check specific files.
1154 """
1156 cmd = create_pylint_cmd()
1158 # Add py-files
1159 cmd.extend(full_test_files)
1161 r = subprocess.run(
1162 cmd,
1163 check=False,
1164 universal_newlines=True,
1165 capture_output=True)
1167 # Count lines except module headings
1168 error_n = len(list(filter(lambda line: not line.startswith('*****'),
1169 r.stdout.splitlines())))
1170 print(r.stdout)
1172> self.assertEqual(0, error_n, f'PyLint found {error_n} problems.')
1173E AssertionError: 0 != 8 : PyLint found 8 problems.
1175test/test_lint.py:283: AssertionError
1176----------------------------- Captured stdout call -----------------------------
1177************* Module test.test_mount
1178test/test_mount.py:205:0: C0301: Line too long (89/79) (line-too-long)
1179test/test_mount.py:217:4: C0116: Missing function or method docstring (missing-function-docstring)
1180test/test_mount.py:217:4: C0103: Method name "test_first_preMountCheck" doesn't conform to snake_case naming style (invalid-name)
1181test/test_mount.py:221:4: C0116: Missing function or method docstring (missing-function-docstring)
1182test/test_mount.py:221:4: C0103: Method name "test_initialised_preMountCheck" doesn't conform to snake_case naming style (invalid-name)
1183test/test_mount.py:225:4: C0116: Missing function or method docstring (missing-function-docstring)
1184test/test_mount.py:229:4: C0116: Missing function or method docstring (missing-function-docstring)
1185test/test_mount.py:232:4: C0116: Missing function or method docstring (missing-function-docstring)
1187____________ MirrorMirrorOnTheWall.test050_pylint_exclusive_ruleset ____________
1189self = <test.test_lint.MirrorMirrorOnTheWall testMethod=test050_pylint_exclusive_ruleset>
1191 @unittest.skipUnless(PYLINT_AVAILABLE, BASE_REASON.format('PyLint'))
1192 def test050_pylint_exclusive_ruleset(self):
1193 """Use Pylint to check for specific rules only.
1195 Some facts about PyLint
1196 - It is one of the slowest available linters.
1197 - It is able to catch lints other linters miss.
1198 """
1200 # Explicit activate checks
1201 err_codes = [
1202 'C0305', # trailing-newlines
1203 'C0325', # superfluous-parens
1204 'C0410', # multiple-imports
1205 'C0303', # trailing-whitespace
1206 'E0100', # init-is-generator
1207 'E0101', # return-in-init
1208 'E0102', # function-redefined
1209 'E0103', # not-in-loop
1210 'E0106', # return-arg-in-generator
1211 'E0213', # no-self-argument
1212 'E0401', # import-error
1213 'E0602', # undefined-variable
1214 'E1101', # no-member
1215 'I0021', # useless-suppression
1216 'W0123', # eval-used
1217 'W0237', # arguments-renamed
1218 'W0311', # bad-indentation
1219 'W0404', # reimported
1220 'W0611', # unused-import
1221 'W0612', # unused-variable
1222 'W0614', # unused-wildcard-import
1223 'W0707', # raise-missing-from
1224 'W1301', # unused-format-string-key
1225 'W1401', # anomalous-backslash-in-string (invalid escape sequence)
1226 'W1515', # forgotten-debug-statement
1227 'W4902', # deprecated-method
1228 'W4904', # deprecated-class
1229 'R0202', # no-classmethod-decorator
1230 'R0203', # no-staticmethod-decorator
1231 # See PyLint bugs:
1232 # https://github.com/pylint-dev/pylint/issues/214
1233 # https://github.com/pylint-dev/pylint/issues/7920
1234 # 'R0801', # duplicate-code
1236 # Enable asap. This list is a selection of existing (not all!)
1237 # problems currently existing in the BIT code base. Quite easy to
1238 # fix because their count is low.
1239 # 'W0237', # arguments-renamed
1240 # 'W0221', # arguments-differ
1241 # 'W0603', # global-statement
1244 cmd = create_pylint_cmd(err_codes)
1246 # Add py-files
1247 cmd.extend(self._collect_py_files())
1249 r = subprocess.run(
1250 cmd,
1251 check=False,
1252 universal_newlines=True,
1253 capture_output=True)
1255 # Count lines except module headings and output about duplicate code
1256 error_n = len(list(filter(
1257 lambda line: line[:2] not in ('**', ' ', '==', ' (', ''),
1258 r.stdout.splitlines())))
1259 print(r.stdout)
1261> self.assertEqual(0, error_n, f'PyLint found {error_n} problems.')
1262E AssertionError: 0 != 2 : PyLint found 2 problems.
1264test/test_lint.py:358: AssertionError
1265----------------------------- Captured stdout call -----------------------------
1266************* Module snapshots
1267snapshots.py:1182:21: E1101: Module 'encfstools' has no 'Bounce' member (no-member)
1268************* Module test.test_encfstools
1269test/test_encfstools.py:58:0: C0305: Trailing newlines (trailing-newlines)
1271________________________ SystemTest.test_local_snapshot ________________________
1273self = <test.test_plugin_usercallback.SystemTest testMethod=test_local_snapshot>
1275 def test_local_snapshot(self):
1276 """User-callback response while doing a local snapshot"""
1278 config = Config(
1279 config_path=str(self.config_fp),
1280 data_path=str(self.temp_path / '.local' / 'share')
1283 full_snapshot_path = config.snapshotsFullPath()
1284 Path(full_snapshot_path).mkdir(parents=True)
1286 snapshot = Snapshots(config)
1288 # DevNote : Because BIT don't use Python's logging module there is
1289 # no way to use assertLogs(). Current solution is to capture
1290 # stdout/stderr.
1291 stdout = io.StringIO()
1292 stderr = io.StringIO()
1294 with redirect_stdout(stdout), redirect_stderr(stderr):
1295 # Result is inverted. 'True' means there was an error.
1296> self.assertFalse(snapshot.backup())
1298test/test_plugin_usercallback.py:288:
1299_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1300snapshots.py:896: in backup
1301 ret_val, ret_error = self.takeSnapshot(
1302snapshots.py:1493: in takeSnapshot
1303 self.backupPermissions(new_snapshot)
1304_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1306self = <snapshots.Snapshots object at 0x7c4816332cf0>, sid = new_snapshot
1308 def backupPermissions(self, sid):
1309 """
1310 Save permissions (owner, group, read-, write- and executable)
1311 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1313 Args:
1314 sid (SID): snapshot that should be scanned
1316 Returns:
1317 int: Return code of rsync.
1318 """
1319 logger.info('Save permissions', self)
1320 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1322 fileInfoDict = FileInfoDict()
1324 if self.config.snapshotsMode() == 'ssh_encfs':
1325 decode = encfstools.Decode(self.config, False)
1326 else:
1327> decode = encfstools.Bounce()
1328E AttributeError: module 'encfstools' has no attribute 'Bounce'
1330snapshots.py:1182: AttributeError
1331----------------------------- Captured stderr call -----------------------------
1332DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1333WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1334WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1335WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1336DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1337DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1338___________________ SnapshotWithSID.test_backup_permissions ____________________
1340self = <test.test_snapshots.SnapshotWithSID testMethod=test_backup_permissions>
1342 def test_backup_permissions(self):
1343 #TODO: add test for save permissions over SSH (and one SSH-test for path with spaces)
1344 infoFilePath = os.path.join(self.snapshotPath,
1345 '20151219-010324-123',
1346 'fileinfo.bz2')
1348 include = self.cfg.include()[0][0]
1349 with TemporaryDirectory(dir = include) as tmp:
1351 file_path = os.path.join(tmp, 'foo')
1352 with open(file_path, 'wt') as f:
1353 f.write('bar')
1354 f.flush()
1356 self.sid.makeDirs(tmp)
1357 with open(self.sid.pathBackup(file_path), 'wt') as snapshot_f:
1358 snapshot_f.write('bar')
1359 snapshot_f.flush()
1361> self.sn.backupPermissions(self.sid)
1363test/test_snapshots.py:347:
1364_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1366self = <snapshots.Snapshots object at 0x7c4815fb1700>, sid = 20151219-010324-123
1368 def backupPermissions(self, sid):
1369 """
1370 Save permissions (owner, group, read-, write- and executable)
1371 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1373 Args:
1374 sid (SID): snapshot that should be scanned
1376 Returns:
1377 int: Return code of rsync.
1378 """
1379 logger.info('Save permissions', self)
1380 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1382 fileInfoDict = FileInfoDict()
1384 if self.config.snapshotsMode() == 'ssh_encfs':
1385 decode = encfstools.Decode(self.config, False)
1386 else:
1387> decode = encfstools.Bounce()
1388E AttributeError: module 'encfstools' has no attribute 'Bounce'
1390snapshots.py:1182: AttributeError
1391----------------------------- Captured stderr call -----------------------------
1392DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1393WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1394WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1395WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1396DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1397DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1398INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1399____________________ SshPermissions.test_backup_permissions ____________________
1401self = <test.test_snapshots.SshPermissions testMethod=test_backup_permissions>
1403 def test_backup_permissions(self):
1404 """Backup file permissions in SSH backup mode."""
1406 # --- prepare environment ---
1408 # config instance
1409 cfg = _init_basic_config()
1410 # snapshots profile
1411 snapshot = _init_ssh_profile(cfg)
1412 # backup source directory
1413 _init_source_path(cfg)
1414 # simulate a taken snapshot
1415 sid = _init_concrete_snapshot(cfg)
1417 # BUHTZ 2022-10-21: The mounting is needed but I didn't understand
1418 # all details yet.
1419 # mount
1420 mount_obj = _init_mounting(cfg)
1421 # ...unmount when test finished
1422 self.addCleanup(lambda: mount_obj.umount(cfg.current_hash_id))
1424 # --- prepare the backup source ---
1426 # Does the concrete snapshot exists?
1427 self.assertTrue(sid.exists())
1429 # The backup source path
1430 # e.g. /tmp/e2uij3y
1431 source_path = pathlib.Path(cfg.include()[0][0])
1432 # ...exists?
1433 self.assertTrue(source_path.exists())
1435 # create the test files in the backup source directory
1436 generic.create_test_files(str(source_path))
1438 # --- Do the job to test. ---
1440 # backup permissions of files/folders in the backup source
1441> rc = snapshot.backupPermissions(sid)
1443test/test_snapshots.py:862:
1444_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1446self = <snapshots.Snapshots object at 0x7c48232331d0>, sid = 20151219-010324-123
1448 def backupPermissions(self, sid):
1449 """
1450 Save permissions (owner, group, read-, write- and executable)
1451 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1453 Args:
1454 sid (SID): snapshot that should be scanned
1456 Returns:
1457 int: Return code of rsync.
1458 """
1459 logger.info('Save permissions', self)
1460 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1462 fileInfoDict = FileInfoDict()
1464 if self.config.snapshotsMode() == 'ssh_encfs':
1465 decode = encfstools.Decode(self.config, False)
1466 else:
1467> decode = encfstools.Bounce()
1468E AttributeError: module 'encfstools' has no attribute 'Bounce'
1470snapshots.py:1182: AttributeError
1471----------------------------- Captured stderr call -----------------------------
1472DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1473WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1474WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1475WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1476DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1477DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1478DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
1479DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
1480DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
1481DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
1482DEBUG: [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']
1483DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
1484DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
1485DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
1486DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
1487DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
1488DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
1489ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
1490DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
1491DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
1492DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock
1493DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
1494DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
1495DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
1496DEBUG: [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']
1497DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
1498DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || d=1;test $d -eq 1 && mkdir "/tmp/DESTINATIONDIRparentk9fc4amv/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 11;test -w "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 12;test -x "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 13;exit 20']
1499DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || d=1;test $d -eq 1 && mkdir "/tmp/DESTINATIONDIRparentk9fc4amv/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 11;test -w "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 12;test -x "/tmp/DESTINATIONDIRparentk9fc4amv/foo" || exit 13;exit 20
1500DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
1501DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint
1502DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo', '/tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint'].
1503INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo on /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint
1504DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/locks/5426.lock
1505DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock
1506INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1507DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
1508ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
1509DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
1510DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
1511DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock
1512INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/DESTINATIONDIRparentk9fc4amv/foo from /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/mountpoint
1513DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/52F3F264/locks/5426.lock
1514DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/DATADIRz69vwq7g/.local/share/backintime/mnt/5426.lock
1515_______________________________ Take.test_error ________________________________
1517self = <test.test_takeSnapshot.Take testMethod=test_error>
1518sleep = <MagicMock name='sleep' id='136649144349712'>
1520 @patch('time.sleep') # speed up unittest
1521 def test_error(self, sleep):
1522 with generic.mockPermissions(os.path.join(self.include.name, 'test')):
1523 now = datetime.today()
1524 sid1 = snapshots.SID(now, self.cfg)
1526> self.assertListEqual([True, True], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
1528test/test_takeSnapshot.py:182:
1529_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1530snapshots.py:1493: in takeSnapshot
1531 self.backupPermissions(new_snapshot)
1532_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1534self = <snapshots.Snapshots object at 0x7c481bb532f0>, sid = new_snapshot
1536 def backupPermissions(self, sid):
1537 """
1538 Save permissions (owner, group, read-, write- and executable)
1539 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1541 Args:
1542 sid (SID): snapshot that should be scanned
1544 Returns:
1545 int: Return code of rsync.
1546 """
1547 logger.info('Save permissions', self)
1548 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1550 fileInfoDict = FileInfoDict()
1552 if self.config.snapshotsMode() == 'ssh_encfs':
1553 decode = encfstools.Decode(self.config, False)
1554 else:
1555> decode = encfstools.Bounce()
1556E AttributeError: module 'encfstools' has no attribute 'Bounce'
1558snapshots.py:1182: AttributeError
1559----------------------------- Captured stderr call -----------------------------
1560DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1561WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1562WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1563WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1564DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1565DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1566INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1567DEBUG: [test/test_takeSnapshot.py:182 Snapshots.test_error] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpi0mc2rr5 --exclude=/tmp/tmplxcj6uj6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptrt7umuc/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptrt7umuc/** --exclude=* / /tmp/tmpi0mc2rr5/backintime/test-host/test-user/1/new_snapshot/backup"
1568DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpi0mc2rr5 --exclude=/tmp/tmplxcj6uj6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptrt7umuc/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptrt7umuc/** --exclude=* / /tmp/tmpi0mc2rr5/backintime/test-host/test-user/1/new_snapshot/backup'
1569WARNING: [test/test_takeSnapshot.py:182 Snapshots.test_error] Command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpi0mc2rr5 --exclude=/tmp/tmplxcj6uj6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptrt7umuc/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptrt7umuc/** --exclude=* / /tmp/tmpi0mc2rr5/backintime/test-host/test-user/1/new_snapshot/backup" returns 23
1570INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1571INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1572______________________________ Take.test_exclude _______________________________
1574self = <test.test_takeSnapshot.Take testMethod=test_exclude>
1575sleep = <MagicMock name='sleep' id='136649144417744'>
1577 @patch('time.sleep') # speed up unittest
1578 def test_exclude(self, sleep):
1579 now = datetime.today()
1580 sid1 = snapshots.SID(now, self.cfg)
1581 self.cfg.setExclude(['bar/baz'])
1583> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
1585test/test_takeSnapshot.py:138:
1586_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1587snapshots.py:1493: in takeSnapshot
1588 self.backupPermissions(new_snapshot)
1589_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1591self = <snapshots.Snapshots object at 0x7c481bb626c0>, sid = new_snapshot
1593 def backupPermissions(self, sid):
1594 """
1595 Save permissions (owner, group, read-, write- and executable)
1596 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1598 Args:
1599 sid (SID): snapshot that should be scanned
1601 Returns:
1602 int: Return code of rsync.
1603 """
1604 logger.info('Save permissions', self)
1605 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1607 fileInfoDict = FileInfoDict()
1609 if self.config.snapshotsMode() == 'ssh_encfs':
1610 decode = encfstools.Decode(self.config, False)
1611 else:
1612> decode = encfstools.Bounce()
1613E AttributeError: module 'encfstools' has no attribute 'Bounce'
1615snapshots.py:1182: AttributeError
1616----------------------------- Captured stderr call -----------------------------
1617DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1618WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1619WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1620WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1621DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1622DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1623INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1624DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpw_tb0nip --exclude=/tmp/tmpeft_3xcn/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3j6zjtpa/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp3j6zjtpa/** --exclude=* / /tmp/tmpw_tb0nip/backintime/test-host/test-user/1/new_snapshot/backup"
1625DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpw_tb0nip --exclude=/tmp/tmpeft_3xcn/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp3j6zjtpa/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmp3j6zjtpa/** --exclude=* / /tmp/tmpw_tb0nip/backintime/test-host/test-user/1/new_snapshot/backup'
1626DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Command "rsync --recursiv" returns 0
1627INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1628INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1629___________________________ Take.test_four_snapshots ___________________________
1631self = <test.test_takeSnapshot.Take testMethod=test_four_snapshots>
1632sleep = <MagicMock name='sleep' id='136649144415248'>
1634 @patch('time.sleep') # speed up unittest
1635 def test_four_snapshots(self, sleep):
1636 now = datetime.today() - timedelta(minutes = 6)
1637 sid1 = snapshots.SID(now, self.cfg)
1639 # Note: 'self.sn' is of type 'Snapshots'
1640 # First boolean: Snapshot succeeded
1641 # Second boolean: Error occurred
1642 self.assertListEqual(
1643 [True, False], # Snapshot without error
1644> self.sn.takeSnapshot(
1645 sid=sid1,
1646 now=now,
1647 include_folders=[
1648 (self.include.name, 0), # '0' means it is a file
1653test/test_takeSnapshot.py:51:
1654_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1655snapshots.py:1493: in takeSnapshot
1656 self.backupPermissions(new_snapshot)
1657_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1659self = <snapshots.Snapshots object at 0x7c481bb632f0>, sid = new_snapshot
1661 def backupPermissions(self, sid):
1662 """
1663 Save permissions (owner, group, read-, write- and executable)
1664 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1666 Args:
1667 sid (SID): snapshot that should be scanned
1669 Returns:
1670 int: Return code of rsync.
1671 """
1672 logger.info('Save permissions', self)
1673 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1675 fileInfoDict = FileInfoDict()
1677 if self.config.snapshotsMode() == 'ssh_encfs':
1678 decode = encfstools.Decode(self.config, False)
1679 else:
1680> decode = encfstools.Bounce()
1681E AttributeError: module 'encfstools' has no attribute 'Bounce'
1683snapshots.py:1182: AttributeError
1684----------------------------- Captured stderr call -----------------------------
1685DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1686WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1687WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1688WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1689DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1690DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1691INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1692DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp36ol1ufw --exclude=/tmp/tmpjdk_lqnf/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpc8kifrw1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpc8kifrw1/** --exclude=* / /tmp/tmp36ol1ufw/backintime/test-host/test-user/1/new_snapshot/backup"
1693DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp36ol1ufw --exclude=/tmp/tmpjdk_lqnf/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpc8kifrw1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpc8kifrw1/** --exclude=* / /tmp/tmp36ol1ufw/backintime/test-host/test-user/1/new_snapshot/backup'
1694DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Command "rsync --recursiv" returns 0
1695INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1696INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1697_____________________________ Take.test_new_exists _____________________________
1699self = <test.test_takeSnapshot.Take testMethod=test_new_exists>
1700sleep = <MagicMock name='sleep' id='136649144043280'>
1702 @patch('time.sleep') # speed up unittest
1703 def test_new_exists(self, sleep):
1704 new_snapshot = snapshots.NewSnapshot(self.cfg)
1705 new_snapshot.makeDirs()
1706 with open(new_snapshot.path('leftover'), 'wt') as f:
1707 f.write('foo')
1709 now = datetime.today() - timedelta(minutes = 6)
1710 sid1 = snapshots.SID(now, self.cfg)
1712> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
1714test/test_takeSnapshot.py:214:
1715_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1716snapshots.py:1493: in takeSnapshot
1717 self.backupPermissions(new_snapshot)
1718_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1720self = <snapshots.Snapshots object at 0x7c481bb09670>, sid = new_snapshot
1722 def backupPermissions(self, sid):
1723 """
1724 Save permissions (owner, group, read-, write- and executable)
1725 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1727 Args:
1728 sid (SID): snapshot that should be scanned
1730 Returns:
1731 int: Return code of rsync.
1732 """
1733 logger.info('Save permissions', self)
1734 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1736 fileInfoDict = FileInfoDict()
1738 if self.config.snapshotsMode() == 'ssh_encfs':
1739 decode = encfstools.Decode(self.config, False)
1740 else:
1741> decode = encfstools.Bounce()
1742E AttributeError: module 'encfstools' has no attribute 'Bounce'
1744snapshots.py:1182: AttributeError
1745----------------------------- Captured stderr call -----------------------------
1746DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1747WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1748WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1749WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1750DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1751DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1752INFO: [common/snapshots.py:1309 takeSnapshot] Removing leftover snapshot new_snapshot directory from last run
1753DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Call command "rsync -a --delete -s /tmp/tmplepplmru/ /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot"
1754DEBUG: [common/tools.py:2616 run] Starting command 'rsync -a --delete -s /tmp/tmplepplmru/ /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot'
1755DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Command "rsync -a --delet" returns 0
1756INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1757DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpjj8so4rl --exclude=/tmp/tmpflrbwhi4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpjsyue3mt/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpjsyue3mt/** --exclude=* / /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot/backup"
1758DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpjj8so4rl --exclude=/tmp/tmpflrbwhi4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpjsyue3mt/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpjsyue3mt/** --exclude=* / /tmp/tmpjj8so4rl/backintime/test-host/test-user/1/new_snapshot/backup'
1759DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Command "rsync --recursiv" returns 0
1760INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1761INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1762________________________ Take.test_new_exists_continue _________________________
1764self = <test.test_takeSnapshot.Take testMethod=test_new_exists_continue>
1765sleep = <MagicMock name='sleep' id='136649246544896'>
1767 @patch('time.sleep') # speed up unittest
1768 def test_new_exists_continue(self, sleep):
1769 new_snapshot = snapshots.NewSnapshot(self.cfg)
1770 new_snapshot.makeDirs()
1771 with open(new_snapshot.path('leftover'), 'wt') as f:
1772 f.write('foo')
1773 new_snapshot.saveToContinue = True
1775 now = datetime.today() - timedelta(minutes = 6)
1776 sid1 = snapshots.SID(now, self.cfg)
1778> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
1780test/test_takeSnapshot.py:229:
1781_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1782snapshots.py:1493: in takeSnapshot
1783 self.backupPermissions(new_snapshot)
1784_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1786self = <snapshots.Snapshots object at 0x7c4821cc92b0>, sid = new_snapshot
1788 def backupPermissions(self, sid):
1789 """
1790 Save permissions (owner, group, read-, write- and executable)
1791 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1793 Args:
1794 sid (SID): snapshot that should be scanned
1796 Returns:
1797 int: Return code of rsync.
1798 """
1799 logger.info('Save permissions', self)
1800 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1802 fileInfoDict = FileInfoDict()
1804 if self.config.snapshotsMode() == 'ssh_encfs':
1805 decode = encfstools.Decode(self.config, False)
1806 else:
1807> decode = encfstools.Bounce()
1808E AttributeError: module 'encfstools' has no attribute 'Bounce'
1810snapshots.py:1182: AttributeError
1811----------------------------- Captured stderr call -----------------------------
1812DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1813WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1814WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1815WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1816DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1817DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1818INFO: [common/snapshots.py:1282 Snapshots.takeSnapshot] Found leftover snapshot 'new_snapshot' that can be continued.
1819INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1820DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpft4ijw4o --exclude=/tmp/tmpm5vop3us/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpwcpktdsq/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpwcpktdsq/** --exclude=* / /tmp/tmpft4ijw4o/backintime/test-host/test-user/1/new_snapshot/backup"
1821DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpft4ijw4o --exclude=/tmp/tmpm5vop3us/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpwcpktdsq/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpwcpktdsq/** --exclude=* / /tmp/tmpft4ijw4o/backintime/test-host/test-user/1/new_snapshot/backup'
1822DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Command "rsync --recursiv" returns 0
1823INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1824INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1825_________________________ Take.test_spaces_in_exclude __________________________
1827self = <test.test_takeSnapshot.Take testMethod=test_spaces_in_exclude>
1828sleep = <MagicMock name='sleep' id='136649246724880'>
1830 @patch('time.sleep') # speed up unittest
1831 def test_spaces_in_exclude(self, sleep):
1832 now = datetime.today()
1833 sid1 = snapshots.SID(now, self.cfg)
1834 exclude = os.path.join(self.include.name, 'test path with spaces')
1835 generic.create_test_files(exclude)
1836 self.cfg.setExclude([exclude])
1838> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
1840test/test_takeSnapshot.py:161:
1841_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1842snapshots.py:1493: in takeSnapshot
1843 self.backupPermissions(new_snapshot)
1844_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1846self = <snapshots.Snapshots object at 0x7c4821cf51c0>, sid = new_snapshot
1848 def backupPermissions(self, sid):
1849 """
1850 Save permissions (owner, group, read-, write- and executable)
1851 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1853 Args:
1854 sid (SID): snapshot that should be scanned
1856 Returns:
1857 int: Return code of rsync.
1858 """
1859 logger.info('Save permissions', self)
1860 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1862 fileInfoDict = FileInfoDict()
1864 if self.config.snapshotsMode() == 'ssh_encfs':
1865 decode = encfstools.Decode(self.config, False)
1866 else:
1867> decode = encfstools.Bounce()
1868E AttributeError: module 'encfstools' has no attribute 'Bounce'
1870snapshots.py:1182: AttributeError
1871----------------------------- Captured stderr call -----------------------------
1872DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1873WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1874WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1875WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1876DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1877DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1878INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1879DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp64oh0g2w --exclude=/tmp/tmpupc25iu6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpnxl2x6hu/ --include=/tmp/ --exclude=/tmp/tmpnxl2x6hu/test path with spaces --include=/tmp/tmpnxl2x6hu/** --exclude=* / /tmp/tmp64oh0g2w/backintime/test-host/test-user/1/new_snapshot/backup"
1880DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp64oh0g2w --exclude=/tmp/tmpupc25iu6/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpnxl2x6hu/ --include=/tmp/ --exclude=/tmp/tmpnxl2x6hu/test path with spaces --include=/tmp/tmpnxl2x6hu/** --exclude=* / /tmp/tmp64oh0g2w/backintime/test-host/test-user/1/new_snapshot/backup'
1881DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Command "rsync --recursiv" returns 0
1882INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1883INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1884_________________________ Take.test_spaces_in_include __________________________
1886self = <test.test_takeSnapshot.Take testMethod=test_spaces_in_include>
1887sleep = <MagicMock name='sleep' id='136649246919952'>
1889 @patch('time.sleep') # speed up unittest
1890 def test_spaces_in_include(self, sleep):
1891 now = datetime.today()
1892 sid1 = snapshots.SID(now, self.cfg)
1893 include = os.path.join(self.include.name, 'test path with spaces')
1894 generic.create_test_files(include)
1896> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(include, 0),]))
1898test/test_takeSnapshot.py:118:
1899_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1900snapshots.py:1493: in takeSnapshot
1901 self.backupPermissions(new_snapshot)
1902_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1904self = <snapshots.Snapshots object at 0x7c4821d24bc0>, sid = new_snapshot
1906 def backupPermissions(self, sid):
1907 """
1908 Save permissions (owner, group, read-, write- and executable)
1909 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1911 Args:
1912 sid (SID): snapshot that should be scanned
1914 Returns:
1915 int: Return code of rsync.
1916 """
1917 logger.info('Save permissions', self)
1918 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1920 fileInfoDict = FileInfoDict()
1922 if self.config.snapshotsMode() == 'ssh_encfs':
1923 decode = encfstools.Decode(self.config, False)
1924 else:
1925> decode = encfstools.Bounce()
1926E AttributeError: module 'encfstools' has no attribute 'Bounce'
1928snapshots.py:1182: AttributeError
1929----------------------------- Captured stderr call -----------------------------
1930DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1931WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1932WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1933WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1934DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1935DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1936INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
1937DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq34xz3au --exclude=/tmp/tmpigs4mddz/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptkydegx9/test path with spaces/ --include=/tmp/tmptkydegx9/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptkydegx9/test path with spaces/** --exclude=* / /tmp/tmpq34xz3au/backintime/test-host/test-user/1/new_snapshot/backup"
1938DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq34xz3au --exclude=/tmp/tmpigs4mddz/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmptkydegx9/test path with spaces/ --include=/tmp/tmptkydegx9/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmptkydegx9/test path with spaces/** --exclude=* / /tmp/tmpq34xz3au/backintime/test-host/test-user/1/new_snapshot/backup'
1939DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Command "rsync --recursiv" returns 0
1940INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
1941INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
1942______________________________ TakeSSH.test_error ______________________________
1944self = <test.test_takeSnapshot.TakeSSH testMethod=test_error>
1945sleep = <MagicMock name='sleep' id='136649246689472'>
1947 @patch('time.sleep') # speed up unittest
1948 def test_error(self, sleep):
1949 with generic.mockPermissions(os.path.join(self.include.name, 'test')):
1950 now = datetime.today()
1951 sid1 = snapshots.SID(now, self.cfg)
1953> self.assertListEqual([True, True], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
1955test/test_takeSnapshot.py:182:
1956_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1957snapshots.py:1493: in takeSnapshot
1958 self.backupPermissions(new_snapshot)
1959_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1961self = <snapshots.Snapshots object at 0x7c4821cec4d0>, sid = new_snapshot
1963 def backupPermissions(self, sid):
1964 """
1965 Save permissions (owner, group, read-, write- and executable)
1966 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
1968 Args:
1969 sid (SID): snapshot that should be scanned
1971 Returns:
1972 int: Return code of rsync.
1973 """
1974 logger.info('Save permissions', self)
1975 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
1977 fileInfoDict = FileInfoDict()
1979 if self.config.snapshotsMode() == 'ssh_encfs':
1980 decode = encfstools.Decode(self.config, False)
1981 else:
1982> decode = encfstools.Bounce()
1983E AttributeError: module 'encfstools' has no attribute 'Bounce'
1985snapshots.py:1182: AttributeError
1986----------------------------- Captured stderr call -----------------------------
1987DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
1988WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
1989WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
1990WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
1991DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
1992DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
1993DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
1994DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
1995DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
1996DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
1997DEBUG: [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']
1998DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
1999DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2000DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2001DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2002DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2003DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2004ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2005DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2006DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2007DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock
2008DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2009DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2010DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2011DEBUG: [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']
2012DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2013DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmpzcb9pj62/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzcb9pj62/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzcb9pj62/foo" || exit 11;test -w "/tmp/tmpzcb9pj62/foo" || exit 12;test -x "/tmp/tmpzcb9pj62/foo" || exit 13;exit 20']
2014DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmpzcb9pj62/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzcb9pj62/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzcb9pj62/foo" || exit 11;test -w "/tmp/tmpzcb9pj62/foo" || exit 12;test -x "/tmp/tmpzcb9pj62/foo" || exit 13;exit 20
2015DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2016DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmpzcb9pj62/foo /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint
2017DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmpzcb9pj62/foo', '/tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint'].
2018INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpzcb9pj62/foo on /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint
2019DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/locks/5426.lock
2020DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock
2021DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2022INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2023DEBUG: [test/test_takeSnapshot.py:182 Snapshots.test_error] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpr1pa7og4/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpr1pa7og4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpur8wmy7f/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpur8wmy7f/** --exclude=* / travis@localhost:/tmp/tmpzcb9pj62/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2024DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpr1pa7og4/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpr1pa7og4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpur8wmy7f/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpur8wmy7f/** --exclude=* / travis@localhost:/tmp/tmpzcb9pj62/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2025WARNING: [test/test_takeSnapshot.py:182 Snapshots.test_error] Command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpr1pa7og4/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpr1pa7og4/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpur8wmy7f/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpur8wmy7f/** --exclude=* / travis@localhost:/tmp/tmpzcb9pj62/foo/backintime/test-host/test-user/1/new_snapshot/backup" returns 23
2026INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2027INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2028DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2029DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2030DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2031DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2032DEBUG: [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']
2033DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2034DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2035DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2036DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2037DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2038DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2039ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2040DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2041DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2042DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock
2043INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpzcb9pj62/foo from /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/mountpoint
2044DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/9E0E56B8/locks/5426.lock
2045DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpr1pa7og4/.local/share/backintime/mnt/5426.lock
2046_____________________________ TakeSSH.test_exclude _____________________________
2048self = <test.test_takeSnapshot.TakeSSH testMethod=test_exclude>
2049sleep = <MagicMock name='sleep' id='136649144416400'>
2051 @patch('time.sleep') # speed up unittest
2052 def test_exclude(self, sleep):
2053 now = datetime.today()
2054 sid1 = snapshots.SID(now, self.cfg)
2055 self.cfg.setExclude(['bar/baz'])
2057> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
2059test/test_takeSnapshot.py:138:
2060_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2061snapshots.py:1493: in takeSnapshot
2062 self.backupPermissions(new_snapshot)
2063_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2065self = <snapshots.Snapshots object at 0x7c481bb634d0>, sid = new_snapshot
2067 def backupPermissions(self, sid):
2068 """
2069 Save permissions (owner, group, read-, write- and executable)
2070 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
2072 Args:
2073 sid (SID): snapshot that should be scanned
2075 Returns:
2076 int: Return code of rsync.
2077 """
2078 logger.info('Save permissions', self)
2079 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
2081 fileInfoDict = FileInfoDict()
2083 if self.config.snapshotsMode() == 'ssh_encfs':
2084 decode = encfstools.Decode(self.config, False)
2085 else:
2086> decode = encfstools.Bounce()
2087E AttributeError: module 'encfstools' has no attribute 'Bounce'
2089snapshots.py:1182: AttributeError
2090----------------------------- Captured stderr call -----------------------------
2091DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
2092WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2093WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2094WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2095DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
2096DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
2097DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2098DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2099DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2100DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2101DEBUG: [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']
2102DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2103DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2104DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2105DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2106DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2107DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2108ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2109DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2110DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2111DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock
2112DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2113DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2114DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2115DEBUG: [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']
2116DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2117DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmp6e5kpb9u/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp6e5kpb9u/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp6e5kpb9u/foo" || exit 11;test -w "/tmp/tmp6e5kpb9u/foo" || exit 12;test -x "/tmp/tmp6e5kpb9u/foo" || exit 13;exit 20']
2118DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmp6e5kpb9u/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp6e5kpb9u/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp6e5kpb9u/foo" || exit 11;test -w "/tmp/tmp6e5kpb9u/foo" || exit 12;test -x "/tmp/tmp6e5kpb9u/foo" || exit 13;exit 20
2119DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2120DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmp6e5kpb9u/foo /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint
2121DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmp6e5kpb9u/foo', '/tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint'].
2122INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp6e5kpb9u/foo on /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint
2123DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/locks/5426.lock
2124DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock
2125DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2126INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2127DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpkw5_bves/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpkw5_bves/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpezww7y8w/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmpezww7y8w/** --exclude=* / travis@localhost:/tmp/tmp6e5kpb9u/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2128DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpkw5_bves/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpkw5_bves/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpezww7y8w/ --include=/tmp/ --exclude=bar/baz --include=/tmp/tmpezww7y8w/** --exclude=* / travis@localhost:/tmp/tmp6e5kpb9u/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2129DEBUG: [test/test_takeSnapshot.py:138 Snapshots.test_exclude] Command "rsync --recursiv" returns 0
2130INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2131INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2132DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2133DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2134DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2135DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2136DEBUG: [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']
2137DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2138DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2139DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2140DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2141DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2142DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2143ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2144DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2145DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2146DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock
2147INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp6e5kpb9u/foo from /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/mountpoint
2148DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/8C671E85/locks/5426.lock
2149DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpkw5_bves/.local/share/backintime/mnt/5426.lock
2150_________________________ TakeSSH.test_four_snapshots __________________________
2152self = <test.test_takeSnapshot.TakeSSH testMethod=test_four_snapshots>
2153sleep = <MagicMock name='sleep' id='136649246958096'>
2155 @patch('time.sleep') # speed up unittest
2156 def test_four_snapshots(self, sleep):
2157 now = datetime.today() - timedelta(minutes = 6)
2158 sid1 = snapshots.SID(now, self.cfg)
2160 # Note: 'self.sn' is of type 'Snapshots'
2161 # First boolean: Snapshot succeeded
2162 # Second boolean: Error occurred
2163 self.assertListEqual(
2164 [True, False], # Snapshot without error
2165> self.sn.takeSnapshot(
2166 sid=sid1,
2167 now=now,
2168 include_folders=[
2169 (self.include.name, 0), # '0' means it is a file
2174test/test_takeSnapshot.py:51:
2175_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2176snapshots.py:1493: in takeSnapshot
2177 self.backupPermissions(new_snapshot)
2178_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2180self = <snapshots.Snapshots object at 0x7c4821d2d880>, sid = new_snapshot
2182 def backupPermissions(self, sid):
2183 """
2184 Save permissions (owner, group, read-, write- and executable)
2185 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
2187 Args:
2188 sid (SID): snapshot that should be scanned
2190 Returns:
2191 int: Return code of rsync.
2192 """
2193 logger.info('Save permissions', self)
2194 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
2196 fileInfoDict = FileInfoDict()
2198 if self.config.snapshotsMode() == 'ssh_encfs':
2199 decode = encfstools.Decode(self.config, False)
2200 else:
2201> decode = encfstools.Bounce()
2202E AttributeError: module 'encfstools' has no attribute 'Bounce'
2204snapshots.py:1182: AttributeError
2205----------------------------- Captured stderr call -----------------------------
2206DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
2207WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2208WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2209WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2210DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
2211DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
2212DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2213DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2214DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2215DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2216DEBUG: [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']
2217DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2218DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2219DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2220DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2221DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2222DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2223ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2224DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2225DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2226DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock
2227DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2228DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2229DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2230DEBUG: [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']
2231DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2232DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmp59xydea8/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp59xydea8/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp59xydea8/foo" || exit 11;test -w "/tmp/tmp59xydea8/foo" || exit 12;test -x "/tmp/tmp59xydea8/foo" || exit 13;exit 20']
2233DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmp59xydea8/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp59xydea8/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp59xydea8/foo" || exit 11;test -w "/tmp/tmp59xydea8/foo" || exit 12;test -x "/tmp/tmp59xydea8/foo" || exit 13;exit 20
2234DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2235DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmp59xydea8/foo /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint
2236DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmp59xydea8/foo', '/tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint'].
2237INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp59xydea8/foo on /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint
2238DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/locks/5426.lock
2239DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock
2240DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2241INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2242DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp62u8wi2i/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp62u8wi2i/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpm35l0cza/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpm35l0cza/** --exclude=* / travis@localhost:/tmp/tmp59xydea8/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2243DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp62u8wi2i/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp62u8wi2i/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpm35l0cza/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpm35l0cza/** --exclude=* / travis@localhost:/tmp/tmp59xydea8/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2244DEBUG: [test/test_takeSnapshot.py:51 Snapshots.test_four_snapshots] Command "rsync --recursiv" returns 0
2245INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2246INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2247DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2248DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2249DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2250DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2251DEBUG: [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']
2252DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2253DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2254DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2255DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2256DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2257DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2258ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2259DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2260DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2261DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock
2262INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp59xydea8/foo from /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/mountpoint
2263DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/9F5FD3A9/locks/5426.lock
2264DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp62u8wi2i/.local/share/backintime/mnt/5426.lock
2265___________________________ TakeSSH.test_new_exists ____________________________
2267self = <test.test_takeSnapshot.TakeSSH testMethod=test_new_exists>
2268sleep = <MagicMock name='sleep' id='136649246718768'>
2270 @patch('time.sleep') # speed up unittest
2271 def test_new_exists(self, sleep):
2272 new_snapshot = snapshots.NewSnapshot(self.cfg)
2273 new_snapshot.makeDirs()
2274 with open(new_snapshot.path('leftover'), 'wt') as f:
2275 f.write('foo')
2277 now = datetime.today() - timedelta(minutes = 6)
2278 sid1 = snapshots.SID(now, self.cfg)
2280> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
2282test/test_takeSnapshot.py:214:
2283_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2284snapshots.py:1493: in takeSnapshot
2285 self.backupPermissions(new_snapshot)
2286_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2288self = <snapshots.Snapshots object at 0x7c4821cf2270>, sid = new_snapshot
2290 def backupPermissions(self, sid):
2291 """
2292 Save permissions (owner, group, read-, write- and executable)
2293 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
2295 Args:
2296 sid (SID): snapshot that should be scanned
2298 Returns:
2299 int: Return code of rsync.
2300 """
2301 logger.info('Save permissions', self)
2302 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
2304 fileInfoDict = FileInfoDict()
2306 if self.config.snapshotsMode() == 'ssh_encfs':
2307 decode = encfstools.Decode(self.config, False)
2308 else:
2309> decode = encfstools.Bounce()
2310E AttributeError: module 'encfstools' has no attribute 'Bounce'
2312snapshots.py:1182: AttributeError
2313----------------------------- Captured stderr call -----------------------------
2314DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
2315WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2316WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2317WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2318DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
2319DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
2320DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2321DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2322DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2323DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2324DEBUG: [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']
2325DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2326DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2327DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2328DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2329DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2330DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2331ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2332DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2333DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2334DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock
2335DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2336DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2337DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2338DEBUG: [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']
2339DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2340DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmpdzggm3v6/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpdzggm3v6/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpdzggm3v6/foo" || exit 11;test -w "/tmp/tmpdzggm3v6/foo" || exit 12;test -x "/tmp/tmpdzggm3v6/foo" || exit 13;exit 20']
2341DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmpdzggm3v6/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpdzggm3v6/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpdzggm3v6/foo" || exit 11;test -w "/tmp/tmpdzggm3v6/foo" || exit 12;test -x "/tmp/tmpdzggm3v6/foo" || exit 13;exit 20
2342DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2343DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmpdzggm3v6/foo /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint
2344DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmpdzggm3v6/foo', '/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint'].
2345INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpdzggm3v6/foo on /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint
2346DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/locks/5426.lock
2347DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock
2348INFO: [common/snapshots.py:1309 takeSnapshot] Removing leftover snapshot new_snapshot directory from last run
2349DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2350DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Call command "rsync -a --delete -s --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 /tmp/tmp40wtak85/ travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot"
2351DEBUG: [common/tools.py:2616 run] Starting command 'rsync -a --delete -s --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 /tmp/tmp40wtak85/ travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot'
2352DEBUG: [common/snapshots.py:1318 Execute.takeSnapshot] Command "rsync -a --delet" returns 0
2353ERROR: [common/snapshots.py:2706 makeDirs] Failed to make dirs '/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426/backintime/test-host/test-user/1/new_snapshot/backup': [Errno 17] File exists: '/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426/backintime/test-host/test-user/1/new_snapshot/backup'
2354DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2355INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2356DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp5f1l1kb1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmp5f1l1kb1/** --exclude=* / travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2357DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpxyy8jxqk/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmp5f1l1kb1/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmp5f1l1kb1/** --exclude=* / travis@localhost:/tmp/tmpdzggm3v6/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2358DEBUG: [test/test_takeSnapshot.py:214 Snapshots.test_new_exists] Command "rsync --recursiv" returns 0
2359INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2360INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2361DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2362DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2363DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2364DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2365DEBUG: [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']
2366DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2367DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2368DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2369DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2370DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2371DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2372ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2373DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2374DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2375DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock
2376INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpdzggm3v6/foo from /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/mountpoint
2377DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/24408F7/locks/5426.lock
2378DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpxyy8jxqk/.local/share/backintime/mnt/5426.lock
2379_______________________ TakeSSH.test_new_exists_continue _______________________
2381self = <test.test_takeSnapshot.TakeSSH testMethod=test_new_exists_continue>
2382sleep = <MagicMock name='sleep' id='136649247413296'>
2384 @patch('time.sleep') # speed up unittest
2385 def test_new_exists_continue(self, sleep):
2386 new_snapshot = snapshots.NewSnapshot(self.cfg)
2387 new_snapshot.makeDirs()
2388 with open(new_snapshot.path('leftover'), 'wt') as f:
2389 f.write('foo')
2390 new_snapshot.saveToContinue = True
2392 now = datetime.today() - timedelta(minutes = 6)
2393 sid1 = snapshots.SID(now, self.cfg)
2395> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
2397test/test_takeSnapshot.py:229:
2398_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2399snapshots.py:1493: in takeSnapshot
2400 self.backupPermissions(new_snapshot)
2401_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2403self = <snapshots.Snapshots object at 0x7c4821d9d940>, sid = new_snapshot
2405 def backupPermissions(self, sid):
2406 """
2407 Save permissions (owner, group, read-, write- and executable)
2408 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
2410 Args:
2411 sid (SID): snapshot that should be scanned
2413 Returns:
2414 int: Return code of rsync.
2415 """
2416 logger.info('Save permissions', self)
2417 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
2419 fileInfoDict = FileInfoDict()
2421 if self.config.snapshotsMode() == 'ssh_encfs':
2422 decode = encfstools.Decode(self.config, False)
2423 else:
2424> decode = encfstools.Bounce()
2425E AttributeError: module 'encfstools' has no attribute 'Bounce'
2427snapshots.py:1182: AttributeError
2428----------------------------- Captured stderr call -----------------------------
2429DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
2430WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2431WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2432WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2433DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
2434DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
2435DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2436DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2437DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2438DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2439DEBUG: [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']
2440DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2441DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2442DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2443DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2444DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2445DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2446ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2447DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2448DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2449DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock
2450DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2451DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2452DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2453DEBUG: [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']
2454DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2455DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmptekk121e/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmptekk121e/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmptekk121e/foo" || exit 11;test -w "/tmp/tmptekk121e/foo" || exit 12;test -x "/tmp/tmptekk121e/foo" || exit 13;exit 20']
2456DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmptekk121e/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmptekk121e/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmptekk121e/foo" || exit 11;test -w "/tmp/tmptekk121e/foo" || exit 12;test -x "/tmp/tmptekk121e/foo" || exit 13;exit 20
2457DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2458DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmptekk121e/foo /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint
2459DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmptekk121e/foo', '/tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint'].
2460INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmptekk121e/foo on /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint
2461DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/locks/5426.lock
2462DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock
2463INFO: [common/snapshots.py:1282 Snapshots.takeSnapshot] Found leftover snapshot 'new_snapshot' that can be continued.
2464DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2465INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2466DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmphrqhjd23/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmphrqhjd23/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpkeh4h646/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpkeh4h646/** --exclude=* / travis@localhost:/tmp/tmptekk121e/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2467DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmphrqhjd23/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmphrqhjd23/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpkeh4h646/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpkeh4h646/** --exclude=* / travis@localhost:/tmp/tmptekk121e/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2468DEBUG: [test/test_takeSnapshot.py:229 Snapshots.test_new_exists_continue] Command "rsync --recursiv" returns 0
2469INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2470INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2471DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2472DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2473DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2474DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2475DEBUG: [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']
2476DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2477DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2478DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2479DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2480DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2481DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2482ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2483DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2484DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2485DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock
2486INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmptekk121e/foo from /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/mountpoint
2487DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/DDEBDE25/locks/5426.lock
2488DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmphrqhjd23/.local/share/backintime/mnt/5426.lock
2489________________________ TakeSSH.test_spaces_in_exclude ________________________
2491self = <test.test_takeSnapshot.TakeSSH testMethod=test_spaces_in_exclude>
2492sleep = <MagicMock name='sleep' id='136649247423520'>
2494 @patch('time.sleep') # speed up unittest
2495 def test_spaces_in_exclude(self, sleep):
2496 now = datetime.today()
2497 sid1 = snapshots.SID(now, self.cfg)
2498 exclude = os.path.join(self.include.name, 'test path with spaces')
2499 generic.create_test_files(exclude)
2500 self.cfg.setExclude([exclude])
2502> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(self.include.name, 0),]))
2504test/test_takeSnapshot.py:161:
2505_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2506snapshots.py:1493: in takeSnapshot
2507 self.backupPermissions(new_snapshot)
2508_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2510self = <snapshots.Snapshots object at 0x7c4821d9f980>, sid = new_snapshot
2512 def backupPermissions(self, sid):
2513 """
2514 Save permissions (owner, group, read-, write- and executable)
2515 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
2517 Args:
2518 sid (SID): snapshot that should be scanned
2520 Returns:
2521 int: Return code of rsync.
2522 """
2523 logger.info('Save permissions', self)
2524 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
2526 fileInfoDict = FileInfoDict()
2528 if self.config.snapshotsMode() == 'ssh_encfs':
2529 decode = encfstools.Decode(self.config, False)
2530 else:
2531> decode = encfstools.Bounce()
2532E AttributeError: module 'encfstools' has no attribute 'Bounce'
2534snapshots.py:1182: AttributeError
2535----------------------------- Captured stderr call -----------------------------
2536DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
2537WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2538WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2539WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2540DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
2541DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
2542DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2543DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2544DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2545DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2546DEBUG: [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']
2547DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2548DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2549DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2550DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2551DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2552DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2553ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2554DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2555DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2556DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock
2557DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2558DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2559DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2560DEBUG: [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']
2561DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2562DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmpzxbemqqi/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzxbemqqi/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzxbemqqi/foo" || exit 11;test -w "/tmp/tmpzxbemqqi/foo" || exit 12;test -x "/tmp/tmpzxbemqqi/foo" || exit 13;exit 20']
2563DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmpzxbemqqi/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmpzxbemqqi/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmpzxbemqqi/foo" || exit 11;test -w "/tmp/tmpzxbemqqi/foo" || exit 12;test -x "/tmp/tmpzxbemqqi/foo" || exit 13;exit 20
2564DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2565DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmpzxbemqqi/foo /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint
2566DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmpzxbemqqi/foo', '/tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint'].
2567INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmpzxbemqqi/foo on /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint
2568DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/locks/5426.lock
2569DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock
2570DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2571INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2572DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq71r5ag9/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpq71r5ag9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmplzvoa8of/ --include=/tmp/ --exclude=/tmp/tmplzvoa8of/test path with spaces --include=/tmp/tmplzvoa8of/** --exclude=* / travis@localhost:/tmp/tmpzxbemqqi/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2573DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmpq71r5ag9/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmpq71r5ag9/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmplzvoa8of/ --include=/tmp/ --exclude=/tmp/tmplzvoa8of/test path with spaces --include=/tmp/tmplzvoa8of/** --exclude=* / travis@localhost:/tmp/tmpzxbemqqi/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2574DEBUG: [test/test_takeSnapshot.py:161 Snapshots.test_spaces_in_exclude] Command "rsync --recursiv" returns 0
2575INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2576INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2577DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2578DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2579DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2580DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2581DEBUG: [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']
2582DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2583DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2584DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2585DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2586DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2587DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2588ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2589DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2590DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2591DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock
2592INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmpzxbemqqi/foo from /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/mountpoint
2593DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/DC8D92D1/locks/5426.lock
2594DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmpq71r5ag9/.local/share/backintime/mnt/5426.lock
2595________________________ TakeSSH.test_spaces_in_include ________________________
2597self = <test.test_takeSnapshot.TakeSSH testMethod=test_spaces_in_include>
2598sleep = <MagicMock name='sleep' id='136649246688416'>
2600 @patch('time.sleep') # speed up unittest
2601 def test_spaces_in_include(self, sleep):
2602 now = datetime.today()
2603 sid1 = snapshots.SID(now, self.cfg)
2604 include = os.path.join(self.include.name, 'test path with spaces')
2605 generic.create_test_files(include)
2607> self.assertListEqual([True, False], self.sn.takeSnapshot(sid1, now, [(include, 0),]))
2609test/test_takeSnapshot.py:118:
2610_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2611snapshots.py:1493: in takeSnapshot
2612 self.backupPermissions(new_snapshot)
2613_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2615self = <snapshots.Snapshots object at 0x7c4821cf0ec0>, sid = new_snapshot
2617 def backupPermissions(self, sid):
2618 """
2619 Save permissions (owner, group, read-, write- and executable)
2620 for all files in Snapshot ``sid`` into snapshots fileInfoDict.
2622 Args:
2623 sid (SID): snapshot that should be scanned
2625 Returns:
2626 int: Return code of rsync.
2627 """
2628 logger.info('Save permissions', self)
2629 self.setTakeSnapshotMessage(0, _('Saving permissions…'))
2631 fileInfoDict = FileInfoDict()
2633 if self.config.snapshotsMode() == 'ssh_encfs':
2634 decode = encfstools.Decode(self.config, False)
2635 else:
2636> decode = encfstools.Bounce()
2637E AttributeError: module 'encfstools' has no attribute 'Bounce'
2639snapshots.py:1182: AttributeError
2640----------------------------- Captured stderr call -----------------------------
2641DEBUG: [common/configfile.py:585 Config.setCurrentProfile] Change current profile: 1=Main profile
2642WARNING: [common/tools.py:2432 __init__] Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2643WARNING: [common/tools.py:2434 __init__] D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2644WARNING: [common/tools.py:2435 __init__] Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2645DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale.
2646DEBUG: [common/tools.py:242 initiate_translation] Language code used: "en"
2647DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2648DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2649DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2650DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2651DEBUG: [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']
2652DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2653DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2654DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2655DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2656DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2657DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 7
2658ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2659DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2660DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2661DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock
2662DEBUG: [common/sshtools.py:752 SSH.checkPingHost] Check ping host "localhost:22"
2663DEBUG: [common/sshtools.py:771 SSH.checkPingHost] Host "localhost:22" is available
2664DEBUG: [common/sshtools.py:485 SSH.checkLogin] Check login
2665DEBUG: [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']
2666DEBUG: [common/sshtools.py:661 SSH.checkRemoteFolder] Check remote directory
2667DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', 'travis@localhost', 'd=0;test -e "/tmp/tmp0d9xecei/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp0d9xecei/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp0d9xecei/foo" || exit 11;test -w "/tmp/tmp0d9xecei/foo" || exit 12;test -x "/tmp/tmp0d9xecei/foo" || exit 13;exit 20']
2668DEBUG: [common/sshtools.py:688 SSH.checkRemoteFolder] Call command: ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 travis@localhost d=0;test -e "/tmp/tmp0d9xecei/foo" || d=1;test $d -eq 1 && mkdir "/tmp/tmp0d9xecei/foo"; err=$?;test $d -eq 1 && exit $err;test -d "/tmp/tmp0d9xecei/foo" || exit 11;test -w "/tmp/tmp0d9xecei/foo" || exit 12;test -x "/tmp/tmp0d9xecei/foo" || exit 13;exit 20
2669DEBUG: [common/sshtools.py:698 SSH.checkRemoteFolder] Command returncode: 20
2670DEBUG: [common/sshtools.py:205 SSH._mount] Call mount command: sshfs -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 -o idmap=user -o cache_dir_timeout=2 -o cache_stat_timeout=2 travis@localhost:/tmp/tmp0d9xecei/foo /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint
2671DEBUG: [common/sshtools.py:217 _mount] Execute SSHFS command ['sshfs', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22', '-o', 'idmap=user', '-o', 'cache_dir_timeout=2', '-o', 'cache_stat_timeout=2', 'travis@localhost:/tmp/tmp0d9xecei/foo', '/tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint'].
2672INFO: [common/mount.py:533 SSH.mount] mount ssh: travis@localhost:/tmp/tmp0d9xecei/foo on /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint
2673DEBUG: [common/mount.py:831 SSH.mountLockAquire] Set mount lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/locks/5426.lock
2674DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock
2675DEBUG: [common/config.py:694 Config.sshCommand] SSH command: ['ssh', '-o', 'ServerAliveInterval=240', '-o', 'LogLevel=Error', '-o', 'IdentityFile=/home/travis/.ssh/id_rsa', '-p', '22']
2676INFO: [common/snapshots.py:1370 Snapshots.takeSnapshot] Call rsync to take the snapshot
2677DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Call command "rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp1evqnxta/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp1evqnxta/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpflallo3m/test path with spaces/ --include=/tmp/tmpflallo3m/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpflallo3m/test path with spaces/** --exclude=* / travis@localhost:/tmp/tmp0d9xecei/foo/backintime/test-host/test-user/1/new_snapshot/backup"
2678DEBUG: [common/tools.py:2616 run] Starting command 'rsync --recursive --times --devices --specials --hard-links --human-readable -s --links --perms --executability --group --owner --info=progress2 --no-inc-recursive --rsh=ssh -o ServerAliveInterval=240 -o LogLevel=Error -o IdentityFile=/home/travis/.ssh/id_rsa -p 22 --delete --delete-excluded -v -i --out-format=BACKINTIME: %i %n%L --chmod=Du+wx --exclude=/tmp/tmp1evqnxta/.local/share/backintime/mnt/1_5426 --exclude=/tmp/tmp1evqnxta/.local/share/backintime --exclude=.local/share/backintime/mnt --include=/tmp/tmpflallo3m/test path with spaces/ --include=/tmp/tmpflallo3m/ --include=/tmp/ --exclude=.gvfs --exclude=.cache/* --exclude=.thumbnails* --exclude=.local/share/[Tt]rash* --exclude=*.backup* --exclude=*~ --exclude=.dropbox* --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* --exclude=/run/* --exclude=/etc/mtab --exclude=/var/cache/apt/archives/*.deb --exclude=lost+found/* --exclude=/tmp/* --exclude=/var/tmp/* --exclude=/var/backups/* --exclude=.Private --exclude=/swapfile --exclude=SingletonLock --exclude=SingletonCookie --exclude=lock --include=/tmp/tmpflallo3m/test path with spaces/** --exclude=* / travis@localhost:/tmp/tmp0d9xecei/foo/backintime/test-host/test-user/1/new_snapshot/backup'
2679DEBUG: [test/test_takeSnapshot.py:118 Snapshots.test_spaces_in_include] Command "rsync --recursiv" returns 0
2680INFO: [common/snapshots.py:1093 Snapshots.backupConfig] Save config file
2681INFO: [common/snapshots.py:1174 Snapshots.backupPermissions] Save permissions
2682DEBUG: [common/tools.py:1521 keyringSupported] Keyring config file directory: /home/travis/.config/python_keyring
2683DEBUG: [common/tools.py:1536 keyringSupported] Available keyring backends:
2684DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.fail.Keyring (priority: 0)
2685DEBUG: [common/tools.py:1540 keyringSupported] keyring.backends.chainer.ChainerBackend (priority: -1)
2686DEBUG: [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']
2687DEBUG: [common/tools.py:1596 keyringSupported] Available supported backends: [<class 'keyring.backends.SecretService.Keyring'>, <class 'keyring.backends.kwallet.DBusKeyring'>, <class 'keyring.backends.chainer.ChainerBackend'>]
2688DEBUG: [common/tools.py:1602 keyringSupported] No appropriate keyring found. 'keyring.backends.fail' can't be used with BackInTime.
2689DEBUG: [common/tools.py:1604 keyringSupported] See https://github.com/bit-team/backintime on how to fix this by creating a keyring config file.
2690DEBUG: [common/mount.py:151 Mount.__init__] pw-cache is not running
2691DEBUG: [common/mount.py:162 Mount.__init__] Call command: ['/home/travis/build/bit-team/backintime/common/backintime', 'pw-cache', 'start']
2692DEBUG: [plugins/usercallbackplugin.py:71 UserCallbackPlugin.callback] Call user-callback: /tmp/bit.3j8mc915/config_path/user-callback 1 Main profile 8
2693ERROR: [plugins/usercallbackplugin.py:100 UserCallbackPlugin.callback] Exception when trying to run user callback: No such file or directory
2694DEBUG: [common/sshtools.py:292 SSH.startSshAgent] ssh-agent already running. Skip starting a new one.
2695DEBUG: [common/sshtools.py:474 SSH.unlockSshAgent] Private key /home/travis/.ssh/id_rsa is already unlocked in ssh agent
2696DEBUG: [common/mount.py:807 SSH.mountProcessLockAcquire] Acquire mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock
2697INFO: [common/mount.py:587 SSH.umount] unmount ssh: travis@localhost:/tmp/tmp0d9xecei/foo from /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/mountpoint
2698DEBUG: [common/mount.py:854 SSH.mountLockRelease] Remove mount lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/48360B24/locks/5426.lock
2699DEBUG: [common/mount.py:818 SSH.mountProcessLockRelease] Release mountprocess lock /tmp/tmp1evqnxta/.local/share/backintime/mnt/5426.lock
2700=========================== short test summary info ============================
2701FAILED test/test_backintime.py::BackInTime::test_local_snapshot_is_successful - AssertionError: 1 != 0 : Returncode: 1
2702stderr: WARNING: Failed to connect to Udev serviceHelper daemon via D-Bus: org.freedesktop.DBus.Error.ServiceUnknown
2703WARNING: D-Bus message: The name net.launchpad.backintime.serviceHelper was not provided by any .service files
2704WARNING: Udev-based profiles cannot be changed or checked due to Udev serviceHelper connection failure
2705INFO: Lock
2706INFO: Take a new snapshot. Profile: 1 Main profile
2707INFO: Call rsync to take the snapshot
2708INFO: Save config file
2709INFO: Save permissions
2710Traceback (most recent call last):
2711 File "/home/travis/build/bit-team/backintime/common/backintime.py", line 1335, in <module>
2712 startApp()
2713 File "/home/travis/build/bit-team/backintime/common/backintime.py", line 585, in startApp
2714 args.func(args)
2715 File "/home/travis/build/bit-team/backintime/common/backintime.py", line 852, in backup
2716 ret = takeSnapshot(cfg, force)
2717 File "/home/travis/build/bit-team/backintime/common/backintime.py", line 100, in takeSnapshot
2718 ret = snapshots.Snapshots(cfg).backup(force)
2719 File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 896, in backup
2720 ret_val, ret_error = self.takeSnapshot(
2721 File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1493, in takeSnapshot
2722 self.backupPermissions(new_snapshot)
2723 File "/home/travis/build/bit-team/backintime/common/snapshots.py", line 1182, in backupPermissions
2724 decode = encfstools.Bounce()
2725AttributeError: module 'encfstools' has no attribute 'Bounce'
2727stdout:
2728Back In Time
2729Version: 1.5.4-rc1
2731Back In Time comes with ABSOLUTELY NO WARRANTY.
2732This is free software, and you are welcome to redistribute it
2733under certain conditions; type `backintime --license' for details.
2734FAILED test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset - AssertionError: 0 != 1 : Ruff found 1 problem(s).
2735FAILED test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset - AssertionError: 0 != 2 : Flake8 found 2 problem(s).
2736FAILED test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset - AssertionError: 0 != 8 : PyLint found 8 problems.
2737FAILED test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset - AssertionError: 0 != 2 : PyLint found 2 problems.
2738FAILED test/test_plugin_usercallback.py::SystemTest::test_local_snapshot - AttributeError: module 'encfstools' has no attribute 'Bounce'
2739FAILED test/test_snapshots.py::SnapshotWithSID::test_backup_permissions - AttributeError: module 'encfstools' has no attribute 'Bounce'
2740FAILED test/test_snapshots.py::SshPermissions::test_backup_permissions - AttributeError: module 'encfstools' has no attribute 'Bounce'
2741FAILED test/test_takeSnapshot.py::Take::test_error - AttributeError: module 'encfstools' has no attribute 'Bounce'
2742FAILED test/test_takeSnapshot.py::Take::test_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce'
2743FAILED test/test_takeSnapshot.py::Take::test_four_snapshots - AttributeError: module 'encfstools' has no attribute 'Bounce'
2744FAILED test/test_takeSnapshot.py::Take::test_new_exists - AttributeError: module 'encfstools' has no attribute 'Bounce'
2745FAILED test/test_takeSnapshot.py::Take::test_new_exists_continue - AttributeError: module 'encfstools' has no attribute 'Bounce'
2746FAILED test/test_takeSnapshot.py::Take::test_spaces_in_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce'
2747FAILED test/test_takeSnapshot.py::Take::test_spaces_in_include - AttributeError: module 'encfstools' has no attribute 'Bounce'
2748FAILED test/test_takeSnapshot.py::TakeSSH::test_error - AttributeError: module 'encfstools' has no attribute 'Bounce'
2749FAILED test/test_takeSnapshot.py::TakeSSH::test_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce'
2750FAILED test/test_takeSnapshot.py::TakeSSH::test_four_snapshots - AttributeError: module 'encfstools' has no attribute 'Bounce'
2751FAILED test/test_takeSnapshot.py::TakeSSH::test_new_exists - AttributeError: module 'encfstools' has no attribute 'Bounce'
2752FAILED test/test_takeSnapshot.py::TakeSSH::test_new_exists_continue - AttributeError: module 'encfstools' has no attribute 'Bounce'
2753FAILED test/test_takeSnapshot.py::TakeSSH::test_spaces_in_exclude - AttributeError: module 'encfstools' has no attribute 'Bounce'
2754FAILED test/test_takeSnapshot.py::TakeSSH::test_spaces_in_include - AttributeError: module 'encfstools' has no attribute 'Bounce'
2755============ 22 failed, 404 passed, 1 skipped in 126.91s (0:02:06) =============
2756make: *** [Makefile:620: unittest-v] Error 1
2757The command "make unittest-v" exited with 2.
27580.00s$ cd ..
2759The command "cd .." exited with 0.
27600.00s$ cd qt
2761The command "cd qt" exited with 0.
27620.08s$ ./configure
2763Replacement of python path with "/usr/bin/python3" successful.
2764All OK. Now run:
2765 make
2766 sudo make install
2767The command "./configure" exited with 0.
27680.01s$ make
2769# Man pages
2770for 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
2771The command "make" exited with 0.
277228.27s$ pytest --verbose
2773============================= test session starts ==============================
2774platform linux -- Python 3.12.4, pytest-8.3.1, pluggy-1.5.0 -- /home/travis/virtualenv/python3.12.4/bin/python
2775cachedir: .pytest_cache
2776rootdir: /home/travis/build/bit-team/backintime/qt
2777plugins: pyfakefs-5.7.4
2778collected 9 items
2780test/test_lint.py::MirrorMirrorOnTheWall::test005_ensure_linter_versions PASSED [ 11%]
2781test/test_lint.py::MirrorMirrorOnTheWall::test010_ruff_default_ruleset PASSED [ 22%]
2782test/test_lint.py::MirrorMirrorOnTheWall::test020_flake8_default_ruleset PASSED [ 33%]
2783test/test_lint.py::MirrorMirrorOnTheWall::test030_pylint_default_ruleset PASSED [ 44%]
2784test/test_lint.py::MirrorMirrorOnTheWall::test050_pylint_exclusive_ruleset PASSED [ 55%]
2785test/test_statedata.py::IsSingleton::test_content PASSED [ 66%]
2786test/test_statedata.py::IsSingleton::test_identity PASSED [ 77%]
2787test/test_statedata.py::Properties::test_profile_not_exist PASSED [ 88%]
2788test/test_statedata.py::Properties::test_read_empty_global PASSED [100%]
2790============================== 9 passed in 27.94s ==============================
2791The command "pytest --verbose" exited with 0.
2794Done. Your build exited with 1.
Top