* Package: app-backup/borgmatic-1.5.10 * Repository: gentoo * Maintainer: marecki@gentoo.org * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_single_target_python3_7 test userland_GNU * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox @@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ This information may help you to understand if this is a duplicate or if this bug exists after you pushed a fix; This ebuild was merged at the following commit: https://github.com/gentoo/gentoo/commit/6128f01f2648d14c91363ddc89f868d8938a4b2e (Wed Sep 2 08:33:04 UTC 2020) @@@@@ END @@@@@ emerge --info: Portage 3.0.5 (python 3.7.9-final-0, default/linux/amd64/17.1, gcc-10.2.0, glibc-2.32-r1, 5.4.0-1021-aws x86_64) ================================================================= System uname: Linux-5.4.0-1021-aws-x86_64-Intel-R-_Xeon-R-_Platinum_8175M_CPU_@_2.50GHz-with-gentoo-2.7 KiB Mem: 64359960 total, 37461732 free KiB Swap: 0 total, 0 free sh bash 5.0_p18 ld GNU ld (Gentoo 2.34 p6) 2.34.0 app-shells/bash: 5.0_p18::gentoo dev-lang/perl: 5.30.3-r1::gentoo dev-lang/python: 2.7.18-r1::gentoo, 3.6.12::gentoo, 3.7.9::gentoo, 3.8.5::gentoo, 3.9.0_rc1::gentoo dev-util/cmake: 3.18.1::gentoo sys-apps/baselayout: 2.7::gentoo sys-apps/openrc: 0.42.1::gentoo sys-apps/sandbox: 2.20::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo sys-devel/automake: 1.16.2::gentoo sys-devel/binutils: 2.34-r2::gentoo sys-devel/gcc: 10.2.0-r1::gentoo sys-devel/gcc-config: 2.3.1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.8::gentoo (virtual/os-headers) sys-libs/glibc: 2.32-r1::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-verify-jobs: 1 sync-rsync-verify-metamanifest: yes sync-rsync-extra-opts: ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* GPL-3" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" DISTDIR="/var/tmp/portage/app-backup/borgmatic-1.5.10/distdir" EMERGE_DEFAULT_OPTS="--with-bdeps=y -1 -k -b" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="C.UTF8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0" MAKEOPTS="-j16 V=1" PKGDIR="/root/.packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="acl amd64 berkdb bzip2 cli crypt dri elogind fortran gdbm iconv ipv6 jumbo-build libglvnd libtirpc multilib native-symlinks ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl tcpd test unicode xattr zlib" ABI_X86="64" ELIBC="glibc" KERNEL="linux" PYTHON_SINGLE_TARGET="python3_7" USERLAND="GNU" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS * Using python3.7 to build >>> Unpacking source... >>> Unpacking borgmatic-1.5.10.tar.gz to /var/tmp/portage/app-backup/borgmatic-1.5.10/work >>> Source unpacked in /var/tmp/portage/app-backup/borgmatic-1.5.10/work >>> Preparing source in /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10 ... * Applying borgmatic-1.5.1-systemd_service_bin_path.patch ... patching file sample/systemd/borgmatic.service Hunk #1 succeeded at 22 with fuzz 2 (offset 1 line). [ ok ] * Applying borgmatic-1.5.1-no_test_coverage.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10 ... >>> Source configured. >>> Compiling source in /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10 ... python3.7 setup.py build -j 16 running build running build_py creating /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic copying borgmatic/logger.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic copying borgmatic/verbosity.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic copying borgmatic/signals.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic copying borgmatic/__init__.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic copying borgmatic/execute.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic creating /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands copying borgmatic/commands/borgmatic.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands copying borgmatic/commands/arguments.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands copying borgmatic/commands/convert_config.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands copying borgmatic/commands/generate_config.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands copying borgmatic/commands/__init__.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands copying borgmatic/commands/validate_config.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/commands creating /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/command.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/healthchecks.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/pagerduty.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/cronhub.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/dispatch.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/monitor.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/postgresql.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/mysql.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/__init__.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/dump.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks copying borgmatic/hooks/cronitor.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/hooks creating /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/prune.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/list.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/init.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/extract.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/export_tar.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/info.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/check.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/umount.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/mount.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/create.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/flags.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/__init__.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg copying borgmatic/borg/environment.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/borg creating /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/collect.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/load.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/convert.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/generate.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/normalize.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/override.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/validate.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/__init__.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/checks.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config copying borgmatic/config/legacy.py -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config running egg_info writing borgmatic.egg-info/PKG-INFO writing dependency_links to borgmatic.egg-info/dependency_links.txt writing entry points to borgmatic.egg-info/entry_points.txt writing requirements to borgmatic.egg-info/requires.txt writing top-level names to borgmatic.egg-info/top_level.txt reading manifest file 'borgmatic.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'borgmatic.egg-info/SOURCES.txt' copying borgmatic/config/schema.yaml -> /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10_python3.7/lib/borgmatic/config warning: build_py: byte-compiling is disabled, skipping. >>> Source compiled. >>> Test phase: app-backup/borgmatic-1.5.10 ============================= test session starts ============================== platform linux -- Python 3.7.9, pytest-6.0.1, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.7 cachedir: .pytest_cache rootdir: /var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10, configfile: setup.cfg, testpaths: tests collecting ...  collected 368 items  tests/integration/commands/test_convert_config.py::test_parse_arguments_with_no_arguments_uses_defaults PASSED [ 0%] tests/integration/commands/test_convert_config.py::test_parse_arguments_with_filename_arguments_overrides_defaults PASSED [ 0%] tests/integration/commands/test_convert_config.py::test_parse_arguments_with_missing_default_excludes_file_sets_filename_to_none PASSED [ 0%] tests/integration/commands/test_convert_config.py::test_parse_arguments_with_invalid_arguments_exits PASSED [ 1%] tests/integration/commands/test_generate_config.py::test_parse_arguments_with_no_arguments_uses_defaults PASSED [ 1%] tests/integration/commands/test_generate_config.py::test_parse_arguments_with_filename_argument_overrides_defaults PASSED [ 1%] tests/integration/config/test_generate.py::test_insert_newline_before_comment_does_not_raise PASSED [ 1%] tests/integration/config/test_generate.py::test_comment_out_line_skips_blank_line PASSED [ 2%] tests/integration/config/test_generate.py::test_comment_out_line_skips_already_commented_out_line PASSED [ 2%] tests/integration/config/test_generate.py::test_comment_out_line_comments_section_name PASSED [ 2%] tests/integration/config/test_generate.py::test_comment_out_line_comments_indented_option PASSED [ 2%] tests/integration/config/test_generate.py::test_comment_out_line_comments_twice_indented_option PASSED [ 3%] tests/integration/config/test_generate.py::test_comment_out_optional_configuration_comments_optional_config_only PASSED [ 3%] tests/integration/config/test_generate.py::test_render_configuration_converts_configuration_to_yaml_string PASSED [ 3%] tests/integration/config/test_generate.py::test_write_configuration_does_not_raise PASSED [ 4%] tests/integration/config/test_generate.py::test_write_configuration_with_already_existing_file_raises PASSED [ 4%] tests/integration/config/test_generate.py::test_write_configuration_with_already_existing_directory_does_not_raise PASSED [ 4%] tests/integration/config/test_generate.py::test_add_comments_to_configuration_sequence_of_strings_does_not_raise PASSED [ 4%] tests/integration/config/test_generate.py::test_add_comments_to_configuration_sequence_of_maps_does_not_raise PASSED [ 5%] tests/integration/config/test_generate.py::test_add_comments_to_configuration_sequence_of_maps_without_description_does_not_raise PASSED [ 5%] tests/integration/config/test_generate.py::test_add_comments_to_configuration_map_does_not_raise PASSED [ 5%] tests/integration/config/test_generate.py::test_add_comments_to_configuration_map_with_skip_first_does_not_raise PASSED [ 5%] tests/integration/config/test_generate.py::test_remove_commented_out_sentinel_keeps_other_comments PASSED [ 6%] tests/integration/config/test_generate.py::test_remove_commented_out_sentinel_without_sentinel_keeps_other_comments PASSED [ 6%] tests/integration/config/test_generate.py::test_remove_commented_out_sentinel_on_unknown_field_does_not_raise PASSED [ 6%] tests/integration/config/test_generate.py::test_generate_sample_configuration_does_not_raise PASSED [ 7%] tests/integration/config/test_generate.py::test_generate_sample_configuration_with_source_filename_does_not_raise PASSED [ 7%] tests/integration/config/test_legacy.py::test_parse_section_options_with_punctuation_should_return_section_options PASSED [ 7%] tests/integration/config/test_validate.py::test_schema_filename_returns_plausable_path PASSED [ 7%] tests/integration/config/test_validate.py::test_parse_configuration_transforms_file_into_mapping PASSED [ 8%] tests/integration/config/test_validate.py::test_parse_configuration_passes_through_quoted_punctuation PASSED [ 8%] tests/integration/config/test_validate.py::test_parse_configuration_with_schema_lacking_examples_does_not_raise PASSED [ 8%] tests/integration/config/test_validate.py::test_parse_configuration_inlines_include PASSED [ 8%] tests/integration/config/test_validate.py::test_parse_configuration_merges_include PASSED [ 9%] tests/integration/config/test_validate.py::test_parse_configuration_raises_for_missing_config_file PASSED [ 9%] tests/integration/config/test_validate.py::test_parse_configuration_raises_for_missing_schema_file PASSED [ 9%] tests/integration/config/test_validate.py::test_parse_configuration_raises_for_syntax_error PASSED [ 10%] tests/integration/config/test_validate.py::test_parse_configuration_raises_for_validation_error PASSED [ 10%] tests/integration/config/test_validate.py::test_parse_configuration_applies_overrides PASSED [ 10%] tests/integration/config/test_validate.py::test_parse_configuration_applies_normalization PASSED [ 10%] tests/unit/test_verbosity.py::test_verbosity_to_log_level_maps_known_verbosity_to_log_level PASSED [ 11%] tests/unit/test_verbosity.py::test_verbosity_to_log_level_maps_unknown_verbosity_to_warning_level PASSED [ 11%] tests/unit/borg/test_check.py::test_parse_checks_returns_them_as_tuple PASSED [ 11%] tests/unit/borg/test_check.py::test_parse_checks_with_missing_value_returns_defaults PASSED [ 11%] tests/unit/borg/test_check.py::test_parse_checks_with_blank_value_returns_defaults PASSED [ 12%] tests/unit/borg/test_check.py::test_parse_checks_with_none_value_returns_defaults PASSED [ 12%] tests/unit/borg/test_check.py::test_parse_checks_with_disabled_returns_no_checks PASSED [ 12%] tests/unit/borg/test_check.py::test_parse_checks_with_data_check_also_injects_archives PASSED [ 13%] tests/unit/borg/test_check.py::test_parse_checks_with_data_check_passes_through_archives PASSED [ 13%] tests/unit/borg/test_check.py::test_parse_checks_prefers_override_checks_to_configured_checks PASSED [ 13%] tests/unit/borg/test_check.py::test_parse_checks_with_override_data_check_also_injects_archives PASSED [ 13%] tests/unit/borg/test_check.py::test_make_check_flags_with_repository_check_returns_flag PASSED [ 14%] tests/unit/borg/test_check.py::test_make_check_flags_with_archives_check_returns_flag PASSED [ 14%] tests/unit/borg/test_check.py::test_make_check_flags_with_data_check_returns_flag PASSED [ 14%] tests/unit/borg/test_check.py::test_make_check_flags_with_extract_omits_extract_flag PASSED [ 14%] tests/unit/borg/test_check.py::test_make_check_flags_with_default_checks_and_default_prefix_returns_default_flags PASSED [ 15%] tests/unit/borg/test_check.py::test_make_check_flags_with_all_checks_and_default_prefix_returns_default_flags PASSED [ 15%] tests/unit/borg/test_check.py::test_make_check_flags_with_archives_check_and_last_includes_last_flag PASSED [ 15%] tests/unit/borg/test_check.py::test_make_check_flags_with_repository_check_and_last_omits_last_flag PASSED [ 16%] tests/unit/borg/test_check.py::test_make_check_flags_with_default_checks_and_last_includes_last_flag PASSED [ 16%] tests/unit/borg/test_check.py::test_make_check_flags_with_archives_check_and_prefix_includes_prefix_flag PASSED [ 16%] tests/unit/borg/test_check.py::test_make_check_flags_with_archives_check_and_empty_prefix_omits_prefix_flag PASSED [ 16%] tests/unit/borg/test_check.py::test_make_check_flags_with_archives_check_and_none_prefix_omits_prefix_flag PASSED [ 17%] tests/unit/borg/test_check.py::test_make_check_flags_with_repository_check_and_prefix_omits_prefix_flag PASSED [ 17%] tests/unit/borg/test_check.py::test_make_check_flags_with_default_checks_and_prefix_includes_prefix_flag PASSED [ 17%] tests/unit/borg/test_check.py::test_check_archives_with_progress_calls_borg_with_progress_parameter PASSED [ 17%] tests/unit/borg/test_check.py::test_check_archives_with_repair_calls_borg_with_repair_parameter PASSED [ 18%] tests/unit/borg/test_check.py::test_check_archives_calls_borg_with_parameters[checks0] PASSED [ 18%] tests/unit/borg/test_check.py::test_check_archives_calls_borg_with_parameters[checks1] PASSED [ 18%] tests/unit/borg/test_check.py::test_check_archives_calls_borg_with_parameters[checks2] PASSED [ 19%] tests/unit/borg/test_check.py::test_check_archives_calls_borg_with_parameters[checks3] PASSED [ 19%] tests/unit/borg/test_check.py::test_check_archives_with_extract_check_calls_extract_only PASSED [ 19%] tests/unit/borg/test_check.py::test_check_archives_with_log_info_calls_borg_with_info_parameter PASSED [ 19%] tests/unit/borg/test_check.py::test_check_archives_with_log_debug_calls_borg_with_debug_parameter PASSED [ 20%] tests/unit/borg/test_check.py::test_check_archives_without_any_checks_bails PASSED [ 20%] tests/unit/borg/test_check.py::test_check_archives_with_local_path_calls_borg_via_local_path PASSED [ 20%] tests/unit/borg/test_check.py::test_check_archives_with_remote_path_calls_borg_with_remote_path_parameters PASSED [ 20%] tests/unit/borg/test_check.py::test_check_archives_with_lock_wait_calls_borg_with_lock_wait_parameters PASSED [ 21%] tests/unit/borg/test_check.py::test_check_archives_with_retention_prefix PASSED [ 21%] tests/unit/borg/test_check.py::test_check_archives_with_extra_borg_options_calls_borg_with_extra_options PASSED [ 21%] tests/unit/borg/test_create.py::test_expand_directory_with_basic_path_passes_it_through PASSED [ 22%] tests/unit/borg/test_create.py::test_expand_directory_with_glob_expands PASSED [ 22%] tests/unit/borg/test_create.py::test_expand_directories_flattens_expanded_directories PASSED [ 22%] tests/unit/borg/test_create.py::test_expand_directories_considers_none_as_no_directories PASSED [ 22%] tests/unit/borg/test_create.py::test_expand_home_directories_expands_tildes PASSED [ 23%] tests/unit/borg/test_create.py::test_expand_home_directories_considers_none_as_no_directories PASSED [ 23%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories0-expected_directories0] PASSED [ 23%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories1-expected_directories1] PASSED [ 23%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories2-expected_directories2] PASSED [ 24%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories3-expected_directories3] PASSED [ 24%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories4-expected_directories4] PASSED [ 24%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories5-expected_directories5] PASSED [ 25%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories6-expected_directories6] PASSED [ 25%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories7-expected_directories7] PASSED [ 25%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories8-expected_directories8] PASSED [ 25%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories9-expected_directories9] PASSED [ 26%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories10-expected_directories10] PASSED [ 26%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories11-expected_directories11] PASSED [ 26%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories12-expected_directories12] PASSED [ 26%] tests/unit/borg/test_create.py::test_deduplicate_directories_removes_child_paths_on_the_same_filesystem[directories13-expected_directories13] PASSED [ 27%] tests/unit/borg/test_create.py::test_write_pattern_file_does_not_raise PASSED [ 27%] tests/unit/borg/test_create.py::test_write_pattern_file_with_empty_exclude_patterns_does_not_raise PASSED [ 27%] tests/unit/borg/test_create.py::test_make_pattern_flags_includes_pattern_filename_when_given PASSED [ 27%] tests/unit/borg/test_create.py::test_make_pattern_flags_includes_patterns_from_filenames_when_in_config PASSED [ 28%] tests/unit/borg/test_create.py::test_make_pattern_flags_includes_both_filenames_when_patterns_given_and_patterns_from_in_config PASSED [ 28%] tests/unit/borg/test_create.py::test_make_pattern_flags_considers_none_patterns_from_filenames_as_empty PASSED [ 28%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_exclude_patterns_filename_when_given PASSED [ 29%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_exclude_from_filenames_when_in_config PASSED [ 29%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_both_filenames_when_patterns_given_and_exclude_from_in_config PASSED [ 29%] tests/unit/borg/test_create.py::test_make_exclude_flags_considers_none_exclude_from_filenames_as_empty PASSED [ 29%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_exclude_caches_when_true_in_config PASSED [ 30%] tests/unit/borg/test_create.py::test_make_exclude_flags_does_not_include_exclude_caches_when_false_in_config PASSED [ 30%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_exclude_if_present_when_in_config PASSED [ 30%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_keep_exclude_tags_when_true_in_config PASSED [ 30%] tests/unit/borg/test_create.py::test_make_exclude_flags_does_not_include_keep_exclude_tags_when_false_in_config PASSED [ 31%] tests/unit/borg/test_create.py::test_make_exclude_flags_includes_exclude_nodump_when_true_in_config PASSED [ 31%] tests/unit/borg/test_create.py::test_make_exclude_flags_does_not_include_exclude_nodump_when_false_in_config PASSED [ 31%] tests/unit/borg/test_create.py::test_make_exclude_flags_is_empty_when_config_has_no_excludes PASSED [ 32%] tests/unit/borg/test_create.py::test_borgmatic_source_directories_set_when_directory_exists PASSED [ 32%] tests/unit/borg/test_create.py::test_borgmatic_source_directories_empty_when_directory_does_not_exist PASSED [ 32%] tests/unit/borg/test_create.py::test_borgmatic_source_directories_defaults_when_directory_not_given PASSED [ 32%] tests/unit/borg/test_create.py::test_create_archive_calls_borg_with_parameters PASSED [ 33%] tests/unit/borg/test_create.py::test_create_archive_with_patterns_calls_borg_with_patterns PASSED [ 33%] tests/unit/borg/test_create.py::test_create_archive_with_exclude_patterns_calls_borg_with_excludes PASSED [ 33%] tests/unit/borg/test_create.py::test_create_archive_with_log_info_calls_borg_with_info_parameter PASSED [ 33%] tests/unit/borg/test_create.py::test_create_archive_with_log_info_and_json_suppresses_most_borg_output PASSED [ 34%] tests/unit/borg/test_create.py::test_create_archive_with_log_debug_calls_borg_with_debug_parameter PASSED [ 34%] tests/unit/borg/test_create.py::test_create_archive_with_log_debug_and_json_suppresses_most_borg_output PASSED [ 34%] tests/unit/borg/test_create.py::test_create_archive_with_dry_run_calls_borg_with_dry_run_parameter PASSED [ 35%] tests/unit/borg/test_create.py::test_create_archive_with_stats_and_dry_run_calls_borg_without_stats_parameter PASSED [ 35%] tests/unit/borg/test_create.py::test_create_archive_with_checkpoint_interval_calls_borg_with_checkpoint_interval_parameters PASSED [ 35%] tests/unit/borg/test_create.py::test_create_archive_with_chunker_params_calls_borg_with_chunker_params_parameters PASSED [ 35%] tests/unit/borg/test_create.py::test_create_archive_with_compression_calls_borg_with_compression_parameters PASSED [ 36%] tests/unit/borg/test_create.py::test_create_archive_with_remote_rate_limit_calls_borg_with_remote_ratelimit_parameters PASSED [ 36%] tests/unit/borg/test_create.py::test_create_archive_with_one_file_system_calls_borg_with_one_file_system_parameter PASSED [ 36%] tests/unit/borg/test_create.py::test_create_archive_with_numeric_owner_calls_borg_with_numeric_owner_parameter PASSED [ 36%] tests/unit/borg/test_create.py::test_create_archive_with_read_special_calls_borg_with_read_special_parameter PASSED [ 37%] tests/unit/borg/test_create.py::test_create_archive_with_option_true_calls_borg_without_corresponding_parameter[atime] PASSED [ 37%] tests/unit/borg/test_create.py::test_create_archive_with_option_true_calls_borg_without_corresponding_parameter[ctime] PASSED [ 37%] tests/unit/borg/test_create.py::test_create_archive_with_option_true_calls_borg_without_corresponding_parameter[birthtime] PASSED [ 38%] tests/unit/borg/test_create.py::test_create_archive_with_option_true_calls_borg_without_corresponding_parameter[bsd_flags] PASSED [ 38%] tests/unit/borg/test_create.py::test_create_archive_with_option_false_calls_borg_with_corresponding_parameter[atime] PASSED [ 38%] tests/unit/borg/test_create.py::test_create_archive_with_option_false_calls_borg_with_corresponding_parameter[ctime] PASSED [ 38%] tests/unit/borg/test_create.py::test_create_archive_with_option_false_calls_borg_with_corresponding_parameter[birthtime] PASSED [ 39%] tests/unit/borg/test_create.py::test_create_archive_with_option_false_calls_borg_with_corresponding_parameter[bsd_flags] PASSED [ 39%] tests/unit/borg/test_create.py::test_create_archive_with_files_cache_calls_borg_with_files_cache_parameters PASSED [ 39%] tests/unit/borg/test_create.py::test_create_archive_with_local_path_calls_borg_via_local_path PASSED [ 39%] tests/unit/borg/test_create.py::test_create_archive_with_remote_path_calls_borg_with_remote_path_parameters PASSED [ 40%] tests/unit/borg/test_create.py::test_create_archive_with_umask_calls_borg_with_umask_parameters PASSED [ 40%] tests/unit/borg/test_create.py::test_create_archive_with_lock_wait_calls_borg_with_lock_wait_parameters PASSED [ 40%] tests/unit/borg/test_create.py::test_create_archive_with_stats_calls_borg_with_stats_parameter_and_warning_output_log_level PASSED [ 41%] tests/unit/borg/test_create.py::test_create_archive_with_stats_and_log_info_calls_borg_with_stats_parameter_and_info_output_log_level PASSED [ 41%] tests/unit/borg/test_create.py::test_create_archive_with_files_calls_borg_with_list_parameter_and_warning_output_log_level PASSED [ 41%] tests/unit/borg/test_create.py::test_create_archive_with_files_and_log_info_calls_borg_with_list_parameter_and_info_output_log_level PASSED [ 41%] tests/unit/borg/test_create.py::test_create_archive_with_progress_and_log_info_calls_borg_with_progress_parameter_and_no_list PASSED [ 42%] tests/unit/borg/test_create.py::test_create_archive_with_progress_calls_borg_with_progress_parameter PASSED [ 42%] tests/unit/borg/test_create.py::test_create_archive_with_progress_and_stream_processes_calls_borg_with_progress_parameter PASSED [ 42%] tests/unit/borg/test_create.py::test_create_archive_with_json_calls_borg_with_json_parameter PASSED [ 42%] tests/unit/borg/test_create.py::test_create_archive_with_stats_and_json_calls_borg_without_stats_parameter PASSED [ 43%] tests/unit/borg/test_create.py::test_create_archive_with_source_directories_glob_expands PASSED [ 43%] tests/unit/borg/test_create.py::test_create_archive_with_non_matching_source_directories_glob_passes_through PASSED [ 43%] tests/unit/borg/test_create.py::test_create_archive_with_glob_calls_borg_with_expanded_directories PASSED [ 44%] tests/unit/borg/test_create.py::test_create_archive_with_archive_name_format_calls_borg_with_archive_name PASSED [ 44%] tests/unit/borg/test_create.py::test_create_archive_with_archive_name_format_accepts_borg_placeholders PASSED [ 44%] tests/unit/borg/test_create.py::test_create_archive_with_extra_borg_options_calls_borg_with_extra_options PASSED [ 44%] tests/unit/borg/test_create.py::test_create_archive_with_stream_processes_calls_borg_with_processes PASSED [ 45%] tests/unit/borg/test_environment.py::test_initialize_with_passcommand_should_set_environment PASSED [ 45%] tests/unit/borg/test_environment.py::test_initialize_with_passphrase_should_set_environment PASSED [ 45%] tests/unit/borg/test_environment.py::test_initialize_with_ssh_command_should_set_environment PASSED [ 45%] tests/unit/borg/test_environment.py::test_initialize_without_configuration_should_only_set_default_environment PASSED [ 46%] tests/unit/borg/test_environment.py::test_initialize_with_relocated_repo_access_should_override_default PASSED [ 46%] tests/unit/borg/test_environment.py::test_initialize_prefers_configuration_option_over_borg_environment_variable PASSED [ 46%] tests/unit/borg/test_environment.py::test_initialize_passes_through_existing_borg_environment_variable PASSED [ 47%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_calls_borg_with_last_archive PASSED [ 47%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_without_any_archives_should_not_raise PASSED [ 47%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_with_log_info_calls_borg_with_info_parameter PASSED [ 47%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_with_log_debug_calls_borg_with_debug_parameter PASSED [ 48%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_calls_borg_via_local_path PASSED [ 48%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_calls_borg_with_remote_path_parameters PASSED [ 48%] tests/unit/borg/test_extract.py::test_extract_last_archive_dry_run_calls_borg_with_lock_wait_parameters PASSED [ 48%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_path_parameters PASSED [ 49%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_remote_path_parameters PASSED [ 49%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_numeric_owner_parameter PASSED [ 49%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_umask_parameters PASSED [ 50%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_lock_wait_parameters PASSED [ 50%] tests/unit/borg/test_extract.py::test_extract_archive_with_log_info_calls_borg_with_info_parameter PASSED [ 50%] tests/unit/borg/test_extract.py::test_extract_archive_with_log_debug_calls_borg_with_debug_parameters PASSED [ 50%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_dry_run_parameter PASSED [ 51%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_destination_path PASSED [ 51%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_strip_components PASSED [ 51%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_progress_parameter PASSED [ 51%] tests/unit/borg/test_extract.py::test_extract_archive_with_progress_and_extract_to_stdout_raises PASSED [ 52%] tests/unit/borg/test_extract.py::test_extract_archive_calls_borg_with_stdout_parameter_and_returns_process PASSED [ 52%] tests/unit/borg/test_extract.py::test_extract_archive_skips_abspath_for_remote_repository PASSED [ 52%] tests/unit/borg/test_info.py::test_display_archives_info_calls_borg_with_parameters PASSED [ 52%] tests/unit/borg/test_info.py::test_display_archives_info_with_log_info_calls_borg_with_info_parameter PASSED [ 53%] tests/unit/borg/test_info.py::test_display_archives_info_with_log_info_and_json_suppresses_most_borg_output PASSED [ 53%] tests/unit/borg/test_info.py::test_display_archives_info_with_log_debug_calls_borg_with_debug_parameter PASSED [ 53%] tests/unit/borg/test_info.py::test_display_archives_info_with_log_debug_and_json_suppresses_most_borg_output PASSED [ 54%] tests/unit/borg/test_info.py::test_display_archives_info_with_json_calls_borg_with_json_parameter PASSED [ 54%] tests/unit/borg/test_info.py::test_display_archives_info_with_archive_calls_borg_with_archive_parameter PASSED [ 54%] tests/unit/borg/test_info.py::test_display_archives_info_with_local_path_calls_borg_via_local_path PASSED [ 54%] tests/unit/borg/test_info.py::test_display_archives_info_with_remote_path_calls_borg_with_remote_path_parameters PASSED [ 55%] tests/unit/borg/test_info.py::test_display_archives_info_with_lock_wait_calls_borg_with_lock_wait_parameters PASSED [ 55%] tests/unit/borg/test_info.py::test_display_archives_info_passes_through_arguments_to_borg[prefix] PASSED [ 55%] tests/unit/borg/test_info.py::test_display_archives_info_passes_through_arguments_to_borg[glob_archives] PASSED [ 55%] tests/unit/borg/test_info.py::test_display_archives_info_passes_through_arguments_to_borg[sort_by] PASSED [ 56%] tests/unit/borg/test_info.py::test_display_archives_info_passes_through_arguments_to_borg[first] PASSED [ 56%] tests/unit/borg/test_info.py::test_display_archives_info_passes_through_arguments_to_borg[last] PASSED [ 56%] tests/unit/borg/test_init.py::test_initialize_repository_calls_borg_with_parameters PASSED [ 57%] tests/unit/borg/test_init.py::test_initialize_repository_raises_for_borg_init_error PASSED [ 57%] tests/unit/borg/test_init.py::test_initialize_repository_skips_initialization_when_repository_already_exists PASSED [ 57%] tests/unit/borg/test_init.py::test_initialize_repository_raises_for_unknown_info_command_error PASSED [ 57%] tests/unit/borg/test_init.py::test_initialize_repository_with_append_only_calls_borg_with_append_only_parameter PASSED [ 58%] tests/unit/borg/test_init.py::test_initialize_repository_with_storage_quota_calls_borg_with_storage_quota_parameter PASSED [ 58%] tests/unit/borg/test_init.py::test_initialize_repository_with_log_info_calls_borg_with_info_parameter PASSED [ 58%] tests/unit/borg/test_init.py::test_initialize_repository_with_log_debug_calls_borg_with_debug_parameter PASSED [ 58%] tests/unit/borg/test_init.py::test_initialize_repository_with_local_path_calls_borg_via_local_path PASSED [ 59%] tests/unit/borg/test_init.py::test_initialize_repository_with_remote_path_calls_borg_with_remote_path_parameter PASSED [ 59%] tests/unit/borg/test_init.py::test_initialize_repository_with_extra_borg_options_calls_borg_with_extra_options PASSED [ 59%] tests/unit/borg/test_list.py::test_resolve_archive_name_passes_through_non_latest_archive_name PASSED [ 60%] tests/unit/borg/test_list.py::test_resolve_archive_name_calls_borg_with_parameters PASSED [ 60%] tests/unit/borg/test_list.py::test_resolve_archive_name_with_log_info_calls_borg_with_info_parameter PASSED [ 60%] tests/unit/borg/test_list.py::test_resolve_archive_name_with_log_debug_calls_borg_with_debug_parameter PASSED [ 60%] tests/unit/borg/test_list.py::test_resolve_archive_name_with_local_path_calls_borg_via_local_path PASSED [ 61%] tests/unit/borg/test_list.py::test_resolve_archive_name_with_remote_path_calls_borg_with_remote_path_parameters PASSED [ 61%] tests/unit/borg/test_list.py::test_resolve_archive_name_without_archives_raises PASSED [ 61%] tests/unit/borg/test_list.py::test_resolve_archive_name_with_lock_wait_calls_borg_with_lock_wait_parameters PASSED [ 61%] tests/unit/borg/test_list.py::test_list_archives_calls_borg_with_parameters PASSED [ 62%] tests/unit/borg/test_list.py::test_list_archives_with_log_info_calls_borg_with_info_parameter PASSED [ 62%] tests/unit/borg/test_list.py::test_list_archives_with_log_info_and_json_suppresses_most_borg_output PASSED [ 62%] tests/unit/borg/test_list.py::test_list_archives_with_log_debug_calls_borg_with_debug_parameter PASSED [ 63%] tests/unit/borg/test_list.py::test_list_archives_with_log_debug_and_json_suppresses_most_borg_output PASSED [ 63%] tests/unit/borg/test_list.py::test_list_archives_with_lock_wait_calls_borg_with_lock_wait_parameters PASSED [ 63%] tests/unit/borg/test_list.py::test_list_archives_with_archive_calls_borg_with_archive_parameter PASSED [ 63%] tests/unit/borg/test_list.py::test_list_archives_with_path_calls_borg_with_path_parameter PASSED [ 64%] tests/unit/borg/test_list.py::test_list_archives_with_local_path_calls_borg_via_local_path PASSED [ 64%] tests/unit/borg/test_list.py::test_list_archives_with_remote_path_calls_borg_with_remote_path_parameters PASSED [ 64%] tests/unit/borg/test_list.py::test_list_archives_with_short_calls_borg_with_short_parameter PASSED [ 64%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[prefix] PASSED [ 65%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[glob_archives] PASSED [ 65%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[sort_by] PASSED [ 65%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[first] PASSED [ 66%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[last] PASSED [ 66%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[exclude] PASSED [ 66%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[exclude_from] PASSED [ 66%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[pattern] PASSED [ 67%] tests/unit/borg/test_list.py::test_list_archives_passes_through_arguments_to_borg[patterns_from] PASSED [ 67%] tests/unit/borg/test_list.py::test_list_archives_with_successful_calls_borg_to_exclude_checkpoints PASSED [ 67%] tests/unit/borg/test_list.py::test_list_archives_with_json_calls_borg_with_json_parameter PASSED [ 67%] tests/unit/borg/test_prune.py::test_make_prune_flags_returns_flags_from_config_plus_default_prefix PASSED [ 68%] tests/unit/borg/test_prune.py::test_make_prune_flags_accepts_prefix_with_placeholders PASSED [ 68%] tests/unit/borg/test_prune.py::test_make_prune_flags_treats_empty_prefix_as_no_prefix PASSED [ 68%] tests/unit/borg/test_prune.py::test_make_prune_flags_treats_none_prefix_as_no_prefix PASSED [ 69%] tests/unit/borg/test_prune.py::test_prune_archives_calls_borg_with_parameters PASSED [ 69%] tests/unit/borg/test_prune.py::test_prune_archives_with_log_info_calls_borg_with_info_parameter PASSED [ 69%] tests/unit/borg/test_prune.py::test_prune_archives_with_log_debug_calls_borg_with_debug_parameter PASSED [ 69%] tests/unit/borg/test_prune.py::test_prune_archives_with_dry_run_calls_borg_with_dry_run_parameter PASSED [ 70%] tests/unit/borg/test_prune.py::test_prune_archives_with_local_path_calls_borg_via_local_path PASSED [ 70%] tests/unit/borg/test_prune.py::test_prune_archives_with_remote_path_calls_borg_with_remote_path_parameters PASSED [ 70%] tests/unit/borg/test_prune.py::test_prune_archives_with_stats_calls_borg_with_stats_parameter_and_warning_output_log_level PASSED [ 70%] tests/unit/borg/test_prune.py::test_prune_archives_with_stats_and_log_info_calls_borg_with_stats_parameter_and_info_output_log_level PASSED [ 71%] tests/unit/borg/test_prune.py::test_prune_archives_with_files_calls_borg_with_list_parameter_and_warning_output_log_level PASSED [ 71%] tests/unit/borg/test_prune.py::test_prune_archives_with_files_and_log_info_calls_borg_with_list_parameter_and_info_output_log_level PASSED [ 71%] tests/unit/borg/test_prune.py::test_prune_archives_with_umask_calls_borg_with_umask_parameters PASSED [ 72%] tests/unit/borg/test_prune.py::test_prune_archives_with_lock_wait_calls_borg_with_lock_wait_parameters PASSED [ 72%] tests/unit/borg/test_prune.py::test_prune_archives_with_extra_borg_options_calls_borg_with_extra_options PASSED [ 72%] tests/unit/commands/test_borgmatic.py::test_run_configuration_runs_actions_for_each_repository PASSED [ 72%] tests/unit/commands/test_borgmatic.py::test_run_configuration_calls_hooks_for_prune_action PASSED [ 73%] tests/unit/commands/test_borgmatic.py::test_run_configuration_executes_and_calls_hooks_for_create_action PASSED [ 73%] tests/unit/commands/test_borgmatic.py::test_run_configuration_calls_hooks_for_check_action PASSED [ 73%] tests/unit/commands/test_borgmatic.py::test_run_configuration_calls_hooks_for_extract_action PASSED [ 73%] tests/unit/commands/test_borgmatic.py::test_run_configuration_does_not_trigger_hooks_for_list_action PASSED [ 74%] tests/unit/commands/test_borgmatic.py::test_run_configuration_logs_actions_error PASSED [ 74%] tests/unit/commands/test_borgmatic.py::test_run_configuration_logs_pre_hook_error PASSED [ 74%] tests/unit/commands/test_borgmatic.py::test_run_configuration_bails_for_pre_hook_soft_failure PASSED [ 75%] tests/unit/commands/test_borgmatic.py::test_run_configuration_logs_post_hook_error PASSED [ 75%] tests/unit/commands/test_borgmatic.py::test_run_configuration_bails_for_post_hook_soft_failure PASSED [ 75%] tests/unit/commands/test_borgmatic.py::test_run_configuration_logs_on_error_hook_error PASSED [ 75%] tests/unit/commands/test_borgmatic.py::test_run_configuration_bails_for_on_error_hook_soft_failure PASSED [ 76%] tests/unit/commands/test_borgmatic.py::test_load_configurations_collects_parsed_configurations PASSED [ 76%] tests/unit/commands/test_borgmatic.py::test_load_configurations_logs_critical_for_parse_error PASSED [ 76%] tests/unit/commands/test_borgmatic.py::test_log_record_does_not_raise PASSED [ 76%] tests/unit/commands/test_borgmatic.py::test_log_record_with_suppress_does_not_raise PASSED [ 77%] tests/unit/commands/test_borgmatic.py::test_make_error_log_records_generates_output_logs_for_message_only PASSED [ 77%] tests/unit/commands/test_borgmatic.py::test_make_error_log_records_generates_output_logs_for_called_process_error PASSED [ 77%] tests/unit/commands/test_borgmatic.py::test_make_error_log_records_generates_logs_for_value_error PASSED [ 77%] tests/unit/commands/test_borgmatic.py::test_make_error_log_records_generates_logs_for_os_error PASSED [ 78%] tests/unit/commands/test_borgmatic.py::test_make_error_log_records_generates_nothing_for_other_error PASSED [ 78%] tests/unit/commands/test_borgmatic.py::test_get_local_path_uses_configuration_value PASSED [ 78%] tests/unit/commands/test_borgmatic.py::test_get_local_path_without_location_defaults_to_borg PASSED [ 79%] tests/unit/commands/test_borgmatic.py::test_get_local_path_without_local_path_defaults_to_borg PASSED [ 79%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_info_for_success PASSED [ 79%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_executes_hooks_for_create PASSED [ 79%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_info_for_success_with_extract PASSED [ 80%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_extract_with_repository_error PASSED [ 80%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_info_for_success_with_mount PASSED [ 80%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_mount_with_repository_error PASSED [ 80%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_missing_configs_error PASSED [ 81%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_pre_hook_error PASSED [ 81%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_post_hook_error PASSED [ 81%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_for_list_with_archive_and_repository_error PASSED [ 82%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_info_for_success_with_list PASSED [ 82%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_run_configuration_error PASSED [ 82%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_run_umount_error PASSED [ 82%] tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_outputs_merged_json_results FAILED [ 83%] tests/unit/config/test_checks.py::test_repository_enabled_for_checks_defaults_to_enabled_for_all_repositories PASSED [ 83%] tests/unit/config/test_checks.py::test_repository_enabled_for_checks_is_enabled_for_specified_repositories PASSED [ 83%] tests/unit/config/test_checks.py::test_repository_enabled_for_checks_is_disabled_for_other_repositories PASSED [ 83%] tests/unit/config/test_collect.py::test_get_default_config_paths_includes_absolute_user_config_path PASSED [ 84%] tests/unit/config/test_collect.py::test_get_default_config_paths_prefers_xdg_config_home_for_user_config_path PASSED [ 84%] tests/unit/config/test_collect.py::test_get_default_config_paths_does_not_expand_home_when_false PASSED [ 84%] tests/unit/config/test_collect.py::test_collect_config_filenames_collects_given_files PASSED [ 85%] tests/unit/config/test_collect.py::test_collect_config_filenames_collects_yml_file_endings PASSED [ 85%] tests/unit/config/test_collect.py::test_collect_config_filenames_collects_files_from_given_directories_and_ignores_sub_directories PASSED [ 85%] tests/unit/config/test_collect.py::test_collect_config_filenames_collects_files_from_given_directories_and_ignores_non_yaml_filenames PASSED [ 85%] tests/unit/config/test_collect.py::test_collect_config_filenames_skips_permission_denied_directories PASSED [ 86%] tests/unit/config/test_collect.py::test_collect_config_filenames_skips_etc_borgmatic_config_dot_yaml_if_it_does_not_exist PASSED [ 86%] tests/unit/config/test_collect.py::test_collect_config_filenames_skips_etc_borgmatic_dot_d_if_it_does_not_exist PASSED [ 86%] tests/unit/config/test_collect.py::test_collect_config_filenames_skips_non_canonical_etc_borgmatic_dot_d_if_it_does_not_exist PASSED [ 86%] tests/unit/config/test_collect.py::test_collect_config_filenames_includes_other_directory_if_it_does_not_exist PASSED [ 87%] tests/unit/config/test_convert.py::test_convert_section_generates_integer_value_for_integer_type_in_schema PASSED [ 87%] tests/unit/config/test_convert.py::test_convert_legacy_parsed_config_transforms_source_config_to_mapping PASSED [ 87%] tests/unit/config/test_convert.py::test_convert_legacy_parsed_config_splits_space_separated_values PASSED [ 88%] tests/unit/config/test_convert.py::test_guard_configuration_upgraded_raises_when_only_source_config_present PASSED [ 88%] tests/unit/config/test_convert.py::test_guard_configuration_upgraded_does_not_raise_when_only_destination_config_present PASSED [ 88%] tests/unit/config/test_convert.py::test_guard_configuration_upgraded_does_not_raise_when_both_configs_present PASSED [ 88%] tests/unit/config/test_convert.py::test_guard_configuration_upgraded_does_not_raise_when_neither_config_present PASSED [ 89%] tests/unit/config/test_generate.py::test_schema_to_sample_configuration_generates_config_map_with_examples PASSED [ 89%] tests/unit/config/test_generate.py::test_schema_to_sample_configuration_generates_config_sequence_of_strings_with_example PASSED [ 89%] tests/unit/config/test_generate.py::test_schema_to_sample_configuration_generates_config_sequence_of_maps_with_examples PASSED [ 89%] tests/unit/config/test_generate.py::test_schema_to_sample_configuration_with_unsupported_schema_raises PASSED [ 90%] tests/unit/config/test_generate.py::test_merge_source_configuration_into_destination_inserts_map_fields PASSED [ 90%] tests/unit/config/test_generate.py::test_merge_source_configuration_into_destination_inserts_nested_map_fields PASSED [ 90%] tests/unit/config/test_generate.py::test_merge_source_configuration_into_destination_inserts_sequence_fields PASSED [ 91%] tests/unit/config/test_generate.py::test_merge_source_configuration_into_destination_inserts_sequence_of_maps PASSED [ 91%] tests/unit/config/test_generate.py::test_merge_source_configuration_into_destination_without_source_does_nothing PASSED [ 91%] tests/unit/config/test_legacy.py::test_option_should_create_config_option PASSED [ 91%] tests/unit/config/test_legacy.py::test_option_should_create_config_option_with_defaults PASSED [ 92%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_valid_config_should_not_raise PASSED [ 92%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_missing_required_section_should_raise PASSED [ 92%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_missing_optional_section_should_not_raise PASSED [ 92%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_unknown_section_should_raise PASSED [ 93%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_missing_required_option_should_raise PASSED [ 93%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_missing_optional_option_should_not_raise PASSED [ 93%] tests/unit/config/test_legacy.py::test_validate_configuration_format_with_extra_option_should_raise PASSED [ 94%] tests/unit/config/test_legacy.py::test_parse_section_options_should_return_section_options PASSED [ 94%] tests/unit/config/test_legacy.py::test_parse_section_options_for_missing_section_should_return_empty_dict PASSED [ 94%] tests/unit/config/test_legacy.py::test_parse_configuration_should_return_section_configs PASSED [ 94%] tests/unit/config/test_legacy.py::test_parse_configuration_with_file_open_error_should_raise PASSED [ 95%] tests/unit/config/test_validate.py::test_validation_error_str_contains_error_messages_and_config_filename PASSED [ 95%] tests/unit/config/test_validate.py::test_apply_logical_validation_raises_if_archive_name_format_present_without_prefix PASSED [ 95%] tests/unit/config/test_validate.py::test_apply_logical_validation_raises_if_archive_name_format_present_without_retention_prefix PASSED [ 95%] tests/unit/config/test_validate.py::test_apply_locical_validation_raises_if_unknown_repository_in_check_repositories PASSED [ 96%] tests/unit/config/test_validate.py::test_apply_locical_validation_does_not_raise_if_known_repository_in_check_repositories PASSED [ 96%] tests/unit/config/test_validate.py::test_apply_logical_validation_does_not_raise_if_archive_name_format_and_prefix_present PASSED [ 96%] tests/unit/config/test_validate.py::test_apply_logical_validation_does_not_raise_otherwise PASSED [ 97%] tests/unit/config/test_validate.py::test_remove_examples_strips_examples_from_map PASSED [ 97%] tests/unit/config/test_validate.py::test_remove_examples_strips_examples_from_sequence_of_maps PASSED [ 97%] tests/unit/config/test_validate.py::test_normalize_repository_path_passes_through_remote_repository PASSED [ 97%] tests/unit/config/test_validate.py::test_normalize_repository_path_passes_through_absolute_repository PASSED [ 98%] tests/unit/config/test_validate.py::test_normalize_repository_path_resolves_relative_repository PASSED [ 98%] tests/unit/config/test_validate.py::test_repositories_match_does_not_raise PASSED [ 98%] tests/unit/config/test_validate.py::test_guard_configuration_contains_repository_does_not_raise_when_repository_in_config PASSED [ 98%] tests/unit/config/test_validate.py::test_guard_configuration_contains_repository_does_not_raise_when_repository_not_given PASSED [ 99%] tests/unit/config/test_validate.py::test_guard_configuration_contains_repository_errors_when_repository_assumed_to_match_config_twice PASSED [ 99%] tests/unit/config/test_validate.py::test_guard_configuration_contains_repository_errors_when_repository_missing_from_config PASSED [ 99%] tests/unit/config/test_validate.py::test_guard_configuration_contains_repository_errors_when_repository_matches_config_twice PASSED [100%] =================================== FAILURES =================================== ___ test_collect_configuration_run_summary_logs_outputs_merged_json_results ____ def test_collect_configuration_run_summary_logs_outputs_merged_json_results(): flexmock(module).should_receive('run_configuration').and_return(['foo', 'bar']).and_return( ['baz'] ) > flexmock(module.sys.stdout).should_receive('write').with_args('["foo", "bar", "baz"]').once() tests/unit/commands/test_borgmatic.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.7/site-packages/flexmock.py:391: in with_args self._verify_signature_match(*kargs, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kargs = ('["foo", "bar", "baz"]',), kwargs = {}, is_method = False, args_len = 2 minimum = 2, maximum = 2, total_positional = 1, named_optionals = [] def _verify_signature_match(self, *kargs, **kwargs): if isinstance(self._mock, Mock): return # no sense in enforcing this for fake objects allowed = self.argspec # we consider object a method for purposes or not counting "self"/"cls" as argument if: # - one of inspect.ismethod, inspect.isfunction, _isclass return True # (in Python 3 it's sometimes impossible to tell whether callable is method or not, # so we try both inspect.ismethod and inspect.isfunction; classes are callable too - # they have __init__) # - it's not a static method # - the mocked object is a module - module "methods" are in fact plain functions; # unless they're classes, which means they still have __init__ is_method = ((inspect.ismethod(self.original) or inspect.isfunction(self.original) or _isclass(self.original)) and self.method_type is not staticmethod and (not isinstance(self._mock, types.ModuleType) or _isclass(self.original))) args_len = len(allowed.args) if is_method: args_len -= 1 minimum = args_len - (allowed.defaults and len(allowed.defaults) or 0) maximum = None if allowed.varargs is None and allowed.keywords is None: maximum = args_len total_positional = len( kargs + tuple(a for a in kwargs if a in allowed.args)) named_optionals = [a for a in kwargs if allowed.defaults if a in allowed.args[len(allowed.args) - len(allowed.defaults):]] if allowed.defaults and total_positional == minimum and named_optionals: minimum += len(named_optionals) if total_positional < minimum: raise MethodSignatureError( '%s requires at least %s arguments, expectation provided %s' % > (self.name, minimum, total_positional)) E flexmock.MethodSignatureError: write requires at least 2 arguments, expectation provided 1 /usr/lib/python3.7/site-packages/flexmock.py:280: MethodSignatureError =============================== warnings summary =============================== /usr/lib/python3.7/site-packages/pykwalify/core.py:7 /usr/lib/python3.7/site-packages/pykwalify/core.py:7: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses import imp -- Docs: https://docs.pytest.org/en/stable/warnings.html =========================== short test summary info ============================ FAILED tests/unit/commands/test_borgmatic.py::test_collect_configuration_run_summary_logs_outputs_merged_json_results =================== 1 failed, 367 passed, 1 warning in 1.09s =================== * ERROR: app-backup/borgmatic-1.5.10::gentoo failed (test phase): * Tests fail with python3.7 * * Call stack: * ebuild.sh, line 125: Called src_test * environment, line 2946: Called distutils-r1_src_test * environment, line 1368: Called _distutils-r1_run_foreach_impl 'python_test' * environment, line 571: Called distutils-r1_run_phase 'python_test' * environment, line 1305: Called python_test * environment, line 2916: Called die * The specific snippet of code: * pytest -vv || die "Tests fail with ${EPYTHON}" * * If you need support, post the output of `emerge --info '=app-backup/borgmatic-1.5.10::gentoo'`, * the complete build log and the output of `emerge -pqv '=app-backup/borgmatic-1.5.10::gentoo'`. * The complete build log is located at '/var/log/emerge-log/build/app-backup/borgmatic-1.5.10:20200903-050738.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/app-backup/borgmatic-1.5.10/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/app-backup/borgmatic-1.5.10/temp/environment'. * Working directory: '/var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10' * S: '/var/tmp/portage/app-backup/borgmatic-1.5.10/work/borgmatic-1.5.10'