* Package: app-shells/thefuck-3.30 * Repository: gentoo * Maintainer: me@aphypnise.eu proxy-maint@gentoo.org * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_9 test userland_GNU * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox >>> Unpacking source... >>> Unpacking thefuck-3.30.tar.gz to /var/tmp/portage/app-shells/thefuck-3.30/work >>> Source unpacked in /var/tmp/portage/app-shells/thefuck-3.30/work >>> Preparing source in /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30 ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30 ... >>> Source configured. >>> Compiling source in /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30 ... * python3_9: running distutils-r1_run_phase distutils-r1_python_compile python3.9 setup.py build -j 3 fastentrypoints running build running build_py creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/utils.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/ui.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/types.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/logs.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/exceptions.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/corrector.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/const.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/conf.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/argument_parser.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck copying thefuck/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/system copying thefuck/system/win32.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/system copying thefuck/system/unix.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/system copying thefuck/system/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/system creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/yum.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/sudo.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/npm.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/nix.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/git.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/dnf.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/brew.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/archlinux.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/apt.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific copying thefuck/specific/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/specific creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/zsh.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/tcsh.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/powershell.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/generic.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/fish.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/bash.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells copying thefuck/shells/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/shells creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/yum_invalid_operation.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/yarn_help.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/yarn_command_replaced.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/yarn_command_not_found.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/yarn_alias.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/workon_doesnt_exists.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/whois.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/vagrant_up.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/unsudo.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/unknown_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/tsuru_not_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/tsuru_login.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/touch.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/tmux.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/test.py.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/terraform_init.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/systemctl.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/switch_lang.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/sudo_command_from_user_path.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/sudo.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ssh_known_hosts.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/sl_ls.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/sed_unterminated_s.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/scm_correction.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/rm_root.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/rm_dir.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/remove_trailing_cedilla.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/remove_shell_prompt_literal.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/react_native_command_unrecognized.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/quotation_marks.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/python_execute.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/python_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/pyenv_no_such_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/prove_recursively.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/port_already_in_use.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/pip_unknown_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/pip_install.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/php_s.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/path_from_history.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/pacman_not_found.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/pacman.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/open.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/npm_wrong_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/npm_run_script.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/npm_missing_script.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/no_such_file.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/no_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/nixos_cmd_not_found.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/mvn_unknown_lifecycle_phase.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/mvn_no_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/mkdir_p.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/missing_space_before_subcommand.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/mercurial.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/man_no_space.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/man.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ls_lah.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ls_all.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/long_form_help.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ln_s_order.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ln_no_hard_link.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/lein_not_task.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/javac.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/java.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ifconfig_device_not_found.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/hostscli.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/history.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/heroku_not_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/heroku_multiple_apps.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/has_exists_script.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/gulp_not_task.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/grunt_task_not_found.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/grep_recursive.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/grep_arguments_order.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/gradle_wrapper.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/gradle_no_task.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/go_unknown_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/go_run.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_two_dashes.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_tag_force.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_stash_pop.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_stash.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_rm_staged.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_rm_recursive.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_rm_local_modifications.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_remote_seturl_add.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_remote_delete.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_rebase_no_changes.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_rebase_merge_dir.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_push_without_commits.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_push_pull.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_push_force.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_push_different_branch_names.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_push.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_pull_uncommitted_changes.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_pull_clone.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_pull.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_not_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_merge_unrelated.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_merge.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_help_aliased.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_flag_after_filename.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_fix_stash.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_diff_staged.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_diff_no_index.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_commit_reset.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_commit_amend.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_checkout.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_branch_list.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_branch_exists.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_branch_delete_checked_out.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_branch_delete.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_bisect_usage.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_add_force.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/git_add.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/gem_unknown_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/fix_file.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/fix_alt_space.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/fab_command_not_found.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/dry.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/docker_not_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/docker_login.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/docker_image_being_used_by_container.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/dnf_no_such_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/django_south_merge.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/django_south_ghost.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/dirty_unzip.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/dirty_untar.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cpp11.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cp_omitting_directory.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cp_create_destination.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/composer_not_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/choco_install.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/chmod_x.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cd_parent.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cd_mkdir.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cd_correction.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cat_dir.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cargo_no_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/cargo.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_update_formula.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_unknown_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_uninstall.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_reinstall.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_link.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_install.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/brew_cask_dependency.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/az_cli.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/aws_cli.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/apt_upgrade.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/apt_list_upgradable.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/apt_invalid_operation.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/apt_get_search.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/apt_get.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/ag_literal.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/adb_unknown_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules copying thefuck/rules/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/rules creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/output_readers copying thefuck/output_readers/shell_logger.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/output_readers copying thefuck/output_readers/rerun.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/output_readers copying thefuck/output_readers/read_log.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/output_readers copying thefuck/output_readers/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/output_readers creating /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints copying thefuck/entrypoints/shell_logger.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints copying thefuck/entrypoints/not_configured.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints copying thefuck/entrypoints/main.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints copying thefuck/entrypoints/fix_command.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints copying thefuck/entrypoints/alias.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints copying thefuck/entrypoints/__init__.py -> /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30-python3_9/lib/thefuck/entrypoints running egg_info creating thefuck.egg-info writing thefuck.egg-info/PKG-INFO writing dependency_links to thefuck.egg-info/dependency_links.txt writing entry points to thefuck.egg-info/entry_points.txt writing requirements to thefuck.egg-info/requires.txt writing top-level names to thefuck.egg-info/top_level.txt writing manifest file 'thefuck.egg-info/SOURCES.txt' reading manifest file 'thefuck.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE.md' writing manifest file 'thefuck.egg-info/SOURCES.txt' warning: build_py: byte-compiling is disabled, skipping. >>> Source compiled. >>> Test phase: app-shells/thefuck-3.30 * python3_9: running distutils-r1_run_phase python_test ============================= test session starts ============================== platform linux -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- /usr/bin/python3.9 cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/.hypothesis/examples') tempdir: /var/tmp/portage/app-shells/thefuck-3.30/temp/thefuck-3.30 rootdir: /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30 plugins: datadir-1.3.1, regressions-2.2.0, localserver-0.5.0, hypothesis-6.14.3, aiohttp-0.3.0, env-0.6.2, localftpserver-1.1.2, tempdir-2019.10.12, anyio-3.2.1, httpx-0.12.0, Faker-8.10.2, trio-0.7.0, verbose-parametrize-1.7.0, lazy-fixture-0.6.3, forked-1.3.0, xdist-2.3.0, cov-2.12.1, mock-3.6.1 collecting ... collected 1724 items tests/test_argument_parser.py::test_parse[['thefuck']-{'alias': None, 'command': []...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', '-a']-{'alias': 'fuck', 'command': ...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', '--alias', '--ena...-{'alias': 'fuck', 'command':...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', '-a', 'fix']-{'alias': 'fix', 'command': [...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', 'git', 'branch', ...-{'alias': None, 'command': [...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', 'git', 'branch', ...-{'alias': None, 'command': [...#5] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', 'THEFUCK_ARGUMENT...-{'alias': None, 'command': [...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', 'THEFUCK_ARGUMENT...-{'alias': None, 'command': [...#7] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', 'git', 'branch', ...-{'alias': None, 'command': [...#8] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', 'git', 'branch', ...-{'alias': None, 'command': [...#9] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', '-l', '/tmp/log']-{'alias': None, 'command': []...] PASSED [ 0%] tests/test_argument_parser.py::test_parse[['thefuck', '--shell-logger',...-{'alias': None, 'command': [...] PASSED [ 0%] tests/test_conf.py::test_settings_defaults FAILED [ 0%] tests/test_conf.py::TestSettingsFromFile::test_from_file FAILED [ 0%] tests/test_conf.py::TestSettingsFromFile::test_from_file_with_DEFAULT FAILED [ 0%] tests/test_conf.py::TestSettingsFromEnv::test_from_env FAILED [ 0%] tests/test_conf.py::TestSettingsFromEnv::test_from_env_with_DEFAULT FAILED [ 0%] tests/test_conf.py::test_settings_from_args FAILED [ 1%] tests/test_conf.py::TestInitializeSettingsFile::test_ignore_if_exists PASSED [ 1%] tests/test_conf.py::TestInitializeSettingsFile::test_create_if_doesnt_exists PASSED [ 1%] tests/test_conf.py::test_get_user_dir_path[False-~/.config-~/.config/thefuck] PASSED [ 1%] tests/test_conf.py::test_get_user_dir_path[False-/user/test/config/-/user/test/config/thefuck] PASSED [ 1%] tests/test_conf.py::test_get_user_dir_path[True-~/.config-~/.thefuck] PASSED [ 1%] tests/test_conf.py::test_get_user_dir_path[True-/user/test/config/-~/.thefuck] PASSED [ 1%] tests/test_corrector.py::TestGetRules::test_get_rules[['git.py', 'bash.py']-[]-[]-['git',...] PASSED [ 1%] tests/test_corrector.py::TestGetRules::test_get_rules[['git.py', 'bash.py']-['git']-[]-['git']] PASSED [ 1%] tests/test_corrector.py::TestGetRules::test_get_rules[['git.py', 'bash.py']-[]-['git']-['...] PASSED [ 1%] tests/test_corrector.py::TestGetRules::test_get_rules[['git.py', 'bash.py']-['git']-['git']-[]] PASSED [ 1%] tests/test_corrector.py::test_get_corrected_commands PASSED [ 1%] tests/test_corrector.py::test_organize_commands PASSED [ 1%] tests/test_logs.py::test_color PASSED [ 1%] tests/test_logs.py::test_debug[True-DEBUG: test\n] PASSED [ 1%] tests/test_logs.py::test_debug[False-] PASSED [ 1%] tests/test_readme.py::test_readme PASSED [ 1%] tests/test_types.py::TestCorrectedCommand::test_equality PASSED [ 2%] tests/test_types.py::TestCorrectedCommand::test_hashable PASSED [ 2%] tests/test_types.py::TestCorrectedCommand::test_representable PASSED [ 2%] tests/test_types.py::TestCorrectedCommand::test_run[git branch-git branch-{'repeat': False, 'debug': Fa...] PASSED [ 2%] tests/test_types.py::TestCorrectedCommand::test_run[git brunch-git brunch || fuck --repeat -...-{'repeat': True, ...] PASSED [ 2%] tests/test_types.py::TestCorrectedCommand::test_run[git brunch-git brunch || fuck --repeat -...-{'repeat': True, ...#2] PASSED [ 2%] tests/test_types.py::TestRule::test_from_path PASSED [ 2%] tests/test_types.py::TestRule::test_is_enabled[[]-[]-Rule(name=git, match=]-[]-Rule(name=git, match=, ...-[]-Rule(name=git, match=]-['git']-Rule(name=git, match=]-['git']-Rule(name=git, match= or...-[]] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_branches[b' just-another-branch'-['just-another-branch']] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_branches[b'* master\\n just-another-br...-['master', 'just-another-bra...] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_branches[b'* master\\n remotes/origin/...-['master', 'master', 'just-a...] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_new_command[b''-Command(script=git checkout u...-['git checkout -b unknown']] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_new_command[b''-Command(script=git commit unk...-['git branch unknown && ...] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_new_command[b' test-random-branch-123'-Command(script=git checkout t...-...] PASSED [ 49%] tests/rules/test_git_checkout.py::test_get_new_command[b' test-random-branch-123'-Command(script=git commit tst...-...] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_match[git commit -m "test"-test output] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_match[git commit-] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_not_match[git branch foo] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_not_match[git checkout feature/test_commit] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_not_match[git push] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_get_new_command[git commit -m "test commit"] PASSED [ 49%] tests/rules/test_git_commit_amend.py::test_get_new_command[git commit] PASSED [ 49%] tests/rules/test_git_commit_reset.py::test_match[git commit -m "test"-test output] PASSED [ 50%] tests/rules/test_git_commit_reset.py::test_match[git commit-] PASSED [ 50%] tests/rules/test_git_commit_reset.py::test_not_match[git branch foo] PASSED [ 50%] tests/rules/test_git_commit_reset.py::test_not_match[git checkout feature/test_commit] PASSED [ 50%] tests/rules/test_git_commit_reset.py::test_not_match[git push] PASSED [ 50%] tests/rules/test_git_commit_reset.py::test_get_new_command[git commit -m "test commit"] PASSED [ 50%] tests/rules/test_git_commit_reset.py::test_get_new_command[git commit] PASSED [ 50%] tests/rules/test_git_diff_no_index.py::test_match[Command(script=git diff foo b...] PASSED [ 50%] tests/rules/test_git_diff_no_index.py::test_not_match[Command(script=git diff --no-...] PASSED [ 50%] tests/rules/test_git_diff_no_index.py::test_not_match[Command(script=git diff foo, ...] PASSED [ 50%] tests/rules/test_git_diff_no_index.py::test_not_match[Command(script=git diff foo b...] PASSED [ 50%] tests/rules/test_git_diff_no_index.py::test_get_new_command[Command(script=git diff foo b...-git diff --no-index foo bar] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_match[Command(script=git diff foo, ...] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_match[Command(script=git diff, outp...] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_not_match[Command(script=git diff --sta...] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_not_match[Command(script=git tag, output=)] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_not_match[Command(script=git branch, ou...] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_not_match[Command(script=git log, output=)] PASSED [ 50%] tests/rules/test_git_diff_staged.py::test_get_new_command[Command(script=git diff, outp...-git diff --staged] PASSED [ 51%] tests/rules/test_git_diff_staged.py::test_get_new_command[Command(script=git diff foo, ...-git diff --staged foo] PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_match[git stash opp] PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_match[git stash Some message] PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_match[git stash saev Some message] PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_not_match PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_get_new_command[git stash opp-git stash pop] PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_get_new_command[git stash Some message-git stash save Some message] PASSED [ 51%] tests/rules/test_git_fix_stash.py::test_get_new_command[git stash saev Some message-git stash save Some message] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_match[Command(script=git log README...] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_match[Command(script=git log README...#1] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_match[Command(script=git log -p REA...] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_match[Command(script=git log README...#3] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_match[Command(script=git log README...#4] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_match[Command(script=git log -p REA...#5] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_not_match[Command(script=git log README...] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_not_match[Command(script=git log -p REA...] PASSED [ 51%] tests/rules/test_git_flag_after_filename.py::test_get_new_command[Command(script=git log README...-git log -p README.md] PASSED [ 52%] tests/rules/test_git_flag_after_filename.py::test_get_new_command[Command(script=git log README...-git log -p README.md CONTRIB...] PASSED [ 52%] tests/rules/test_git_flag_after_filename.py::test_get_new_command[Command(script=git log -p REA...-git log -p --name-only READM...] PASSED [ 52%] tests/rules/test_git_flag_after_filename.py::test_get_new_command[Command(script=git log README...-git log -p README.md#3] PASSED [ 52%] tests/rules/test_git_flag_after_filename.py::test_get_new_command[Command(script=git log README...-git log -p README.md CONTRIB...#4] PASSED [ 52%] tests/rules/test_git_flag_after_filename.py::test_get_new_command[Command(script=git log -p REA...-git log -p --name-only READM...#5] PASSED [ 52%] tests/rules/test_git_help_aliased.py::test_match[git help st-`git st' is aliased to `status'] PASSED [ 52%] tests/rules/test_git_help_aliased.py::test_match[git help ds-`git ds' is aliased to `diff ...] PASSED [ 52%] tests/rules/test_git_help_aliased.py::test_not_match[git help status-GIT-STATUS(1)...Git Manual......] PASSED [ 52%] tests/rules/test_git_help_aliased.py::test_not_match[git help diff-GIT-DIFF(1)...Git Manual...GI...] PASSED [ 52%] tests/rules/test_git_help_aliased.py::test_get_new_command[git help st-`git st' is aliased to `status'-git help status] PASSED [ 52%] tests/rules/test_git_help_aliased.py::test_get_new_command[git help ds-`git ds' is aliased to `diff ...-git help diff] PASSED [ 52%] tests/rules/test_git_merge.py::test_match PASSED [ 52%] tests/rules/test_git_merge.py::test_get_new_command[Command(script=git merge loca...-git merge remote/local] PASSED [ 52%] tests/rules/test_git_merge.py::test_get_new_command[Command(script=git merge -m "...-git merge -m "test" remote/l...] PASSED [ 52%] tests/rules/test_git_merge.py::test_get_new_command[Command(script=git merge -m "...-git merge -m "test local" re...] PASSED [ 52%] tests/rules/test_git_merge_unrelated.py::test_match PASSED [ 52%] tests/rules/test_git_merge_unrelated.py::test_get_new_command[Command(script=git merge loca...-git merge local --allow-unre...] PASSED [ 53%] tests/rules/test_git_merge_unrelated.py::test_get_new_command[Command(script=git merge -m "...-git merge -m "test" local --...] PASSED [ 53%] tests/rules/test_git_merge_unrelated.py::test_get_new_command[Command(script=git merge -m "...-git merge -m "test local" lo...] PASSED [ 53%] tests/rules/test_git_not_command.py::test_match PASSED [ 53%] tests/rules/test_git_not_command.py::test_get_new_command PASSED [ 53%] tests/rules/test_git_pull.py::test_match PASSED [ 53%] tests/rules/test_git_pull.py::test_get_new_command PASSED [ 53%] tests/rules/test_git_pull_clone.py::test_match[Command(script=git pull git@g...] PASSED [ 53%] tests/rules/test_git_pull_clone.py::test_get_new_command[Command(script=git pull git@g...-git clone git@github.com:mca...] PASSED [ 53%] tests/rules/test_git_pull_uncommitted_changes.py::test_match PASSED [ 53%] tests/rules/test_git_pull_uncommitted_changes.py::test_get_new_command PASSED [ 53%] tests/rules/test_git_pull_unstaged_changes.py::test_match PASSED [ 53%] tests/rules/test_git_pull_unstaged_changes.py::test_get_new_command PASSED [ 53%] tests/rules/test_git_push.py::test_match[git push-master] PASSED [ 53%] tests/rules/test_git_push.py::test_match[git push origin-master] PASSED [ 53%] tests/rules/test_git_push.py::test_match_bitbucket PASSED [ 53%] tests/rules/test_git_push.py::test_not_match[git push master-None] PASSED [ 53%] tests/rules/test_git_push.py::test_not_match[ls-master] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push master-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push -u-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push -u origin-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push origin-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push --set-upstream origin-master-git push --set-upstream...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push --quiet-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push --quiet origin-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git -c test=test push --quiet...-master-git -c test=test push...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push-test's-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push --force-master-git push --set-upstream origi...] PASSED [ 54%] tests/rules/test_git_push.py::test_get_new_command[git push --force-with-lease-master-git push --set-upstream or...] PASSED [ 54%] tests/rules/test_git_push_different_branch_names.py::test_match PASSED [ 54%] tests/rules/test_git_push_different_branch_names.py::test_not_match[Command(script=vim, output=)] PASSED [ 54%] tests/rules/test_git_push_different_branch_names.py::test_not_match[Command(script=git status, ou...] PASSED [ 54%] tests/rules/test_git_push_different_branch_names.py::test_not_match[Command(script=git push, outp...] PASSED [ 54%] tests/rules/test_git_push_different_branch_names.py::test_get_new_command PASSED [ 54%] tests/rules/test_git_push_force.py::test_match[Command(script=git push, outp...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_match[Command(script=git push nvbn,...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_match[Command(script=git push nvbn ...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_not_match[Command(script=git push, outp...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_not_match[Command(script=git push, outp...#1] PASSED [ 55%] tests/rules/test_git_push_force.py::test_not_match[Command(script=git push nvbn,...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_not_match[Command(script=git push nvbn ...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_not_match[Command(script=git push nvbn,...#4] PASSED [ 55%] tests/rules/test_git_push_force.py::test_not_match[Command(script=git push nvbn ...#5] PASSED [ 55%] tests/rules/test_git_push_force.py::test_get_new_command[Command(script=git push, outp...-git push --force-with-lease] PASSED [ 55%] tests/rules/test_git_push_force.py::test_get_new_command[Command(script=git push nvbn,...-git push --force-with-lease ...] PASSED [ 55%] tests/rules/test_git_push_force.py::test_get_new_command[Command(script=git push nvbn ...-git push --force-with-lease ...] PASSED [ 55%] tests/rules/test_git_push_pull.py::test_match[Command(script=git push, outp...] PASSED [ 55%] tests/rules/test_git_push_pull.py::test_match[Command(script=git push nvbn,...] PASSED [ 55%] tests/rules/test_git_push_pull.py::test_match[Command(script=git push nvbn ...] PASSED [ 55%] tests/rules/test_git_push_pull.py::test_match[Command(script=git push, outp...#3] PASSED [ 55%] tests/rules/test_git_push_pull.py::test_match[Command(script=git push nvbn,...#4] PASSED [ 55%] tests/rules/test_git_push_pull.py::test_match[Command(script=git push nvbn ...#5] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_not_match[Command(script=git push, outp...] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_not_match[Command(script=git push, outp...#1] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_not_match[Command(script=git push nvbn,...] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_not_match[Command(script=git push nvbn ...] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_not_match[Command(script=git push nvbn,...#4] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_not_match[Command(script=git push nvbn ...#5] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_get_new_command[Command(script=git push, outp...-git pull && git push] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_get_new_command[Command(script=git push nvbn,...-git pull nvbn && git push nvbn] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_get_new_command[Command(script=git push nvbn ...-git pull nvbn master && git ...] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_get_new_command[Command(script=git push, outp...-git pull && git push#3] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_get_new_command[Command(script=git push nvbn,...-git pull nvbn && git push nvbn#4] PASSED [ 56%] tests/rules/test_git_push_pull.py::test_get_new_command[Command(script=git push nvbn ...-git pull nvbn master && git ...#5] PASSED [ 56%] tests/rules/test_git_push_without_commits.py::test_match[Command(script=git push -u or...] PASSED [ 56%] tests/rules/test_git_push_without_commits.py::test_get_new_command[Command(script=git push -u or...-git commit -m "Initial commi...] PASSED [ 56%] tests/rules/test_git_rebase_merge_dir.py::test_match[git rebase master] PASSED [ 56%] tests/rules/test_git_rebase_merge_dir.py::test_match[git rebase -skip] PASSED [ 56%] tests/rules/test_git_rebase_merge_dir.py::test_match[git rebase] PASSED [ 57%] tests/rules/test_git_rebase_merge_dir.py::test_not_match[git rebase master] PASSED [ 57%] tests/rules/test_git_rebase_merge_dir.py::test_not_match[git rebase -abort] PASSED [ 57%] tests/rules/test_git_rebase_merge_dir.py::test_get_new_command[git rebase master-['git rebase --abort', 'git r...] PASSED [ 57%] tests/rules/test_git_rebase_merge_dir.py::test_get_new_command[git rebase -skip-['git rebase --skip', 'git re...] PASSED [ 57%] tests/rules/test_git_rebase_merge_dir.py::test_get_new_command[git rebase-['git rebase --skip', 'git re...] PASSED [ 57%] tests/rules/test_git_rebase_no_changes.py::test_match PASSED [ 57%] tests/rules/test_git_rebase_no_changes.py::test_get_new_command PASSED [ 57%] tests/rules/test_git_remote_delete.py::test_match PASSED [ 57%] tests/rules/test_git_remote_delete.py::test_not_match[Command(script=git remote rem...] PASSED [ 57%] tests/rules/test_git_remote_delete.py::test_not_match[Command(script=git remote add...] PASSED [ 57%] tests/rules/test_git_remote_delete.py::test_not_match[Command(script=git commit, ou...] PASSED [ 57%] tests/rules/test_git_remote_delete.py::test_get_new_command[Command(script=git remote del...-git remote remove foo] PASSED [ 57%] tests/rules/test_git_remote_delete.py::test_get_new_command[Command(script=git remote del...-git remote remove delete] PASSED [ 57%] tests/rules/test_git_remote_seturl_add.py::test_match[Command(script=git remote set...] PASSED [ 57%] tests/rules/test_git_remote_seturl_add.py::test_not_match[Command(script=git remote set...] PASSED [ 57%] tests/rules/test_git_remote_seturl_add.py::test_not_match[Command(script=git remote add...] PASSED [ 57%] tests/rules/test_git_remote_seturl_add.py::test_not_match[Command(script=git remote rem...] PASSED [ 58%] tests/rules/test_git_remote_seturl_add.py::test_not_match[Command(script=git remote pru...] PASSED [ 58%] tests/rules/test_git_remote_seturl_add.py::test_not_match[Command(script=git remote set...#4] PASSED [ 58%] tests/rules/test_git_remote_seturl_add.py::test_get_new_command[Command(script=git remote set...-git remote add origin git@gi...] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_match[git rm foo-foo] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_match[git rm foo bar-bar] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_not_match[git rm foo] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_not_match[git rm foo bar] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_not_match[git rm] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_get_new_command[git rm foo-foo-['git rm --cached foo', 'git ...] PASSED [ 58%] tests/rules/test_git_rm_local_modifications.py::test_get_new_command[git rm foo bar-bar-['git rm --cached foo bar', '...] PASSED [ 58%] tests/rules/test_git_rm_recursive.py::test_match[git rm foo-foo] PASSED [ 58%] tests/rules/test_git_rm_recursive.py::test_match[git rm foo bar-foo bar] PASSED [ 58%] tests/rules/test_git_rm_recursive.py::test_not_match[git rm foo] PASSED [ 58%] tests/rules/test_git_rm_recursive.py::test_not_match[git rm foo bar] PASSED [ 58%] tests/rules/test_git_rm_recursive.py::test_get_new_command[git rm foo-foo-git rm -r foo] PASSED [ 58%] tests/rules/test_git_rm_recursive.py::test_get_new_command[git rm foo bar-foo bar-git rm -r foo bar] PASSED [ 58%] tests/rules/test_git_rm_staged.py::test_match[git rm foo-foo] PASSED [ 58%] tests/rules/test_git_rm_staged.py::test_match[git rm foo bar-bar] PASSED [ 59%] tests/rules/test_git_rm_staged.py::test_not_match[git rm foo] PASSED [ 59%] tests/rules/test_git_rm_staged.py::test_not_match[git rm foo bar] PASSED [ 59%] tests/rules/test_git_rm_staged.py::test_not_match[git rm] PASSED [ 59%] tests/rules/test_git_rm_staged.py::test_get_new_command[git rm foo-foo-['git rm --cached foo', 'git ...] PASSED [ 59%] tests/rules/test_git_rm_staged.py::test_get_new_command[git rm foo bar-bar-['git rm --cached foo bar', '...] PASSED [ 59%] tests/rules/test_git_stash.py::test_match[Command(script=git cherry-pic...] PASSED [ 59%] tests/rules/test_git_stash.py::test_match[Command(script=git rebase -i ...] PASSED [ 59%] tests/rules/test_git_stash.py::test_not_match[Command(script=git cherry-pic...] PASSED [ 59%] tests/rules/test_git_stash.py::test_not_match[Command(script=git rebase -i ...] PASSED [ 59%] tests/rules/test_git_stash.py::test_get_new_command[Command(script=git cherry-pic...-git stash && git cherry-pick...] PASSED [ 59%] tests/rules/test_git_stash.py::test_get_new_command[Command(script=git rebase -i ...-git stash && git rebase -i H...] PASSED [ 59%] tests/rules/test_git_stash_pop.py::test_match PASSED [ 59%] tests/rules/test_git_stash_pop.py::test_get_new_command PASSED [ 59%] tests/rules/test_git_tag_force.py::test_match PASSED [ 59%] tests/rules/test_git_tag_force.py::test_get_new_command PASSED [ 59%] tests/rules/test_git_two_dashes.py::test_match[Command(script=git add -patch...] PASSED [ 59%] tests/rules/test_git_two_dashes.py::test_match[Command(script=git checkout -...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_match[Command(script=git commit -am...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_match[Command(script=git push -tags...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_match[Command(script=git rebase -co...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_not_match[Command(script=git add --patc...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_not_match[Command(script=git checkout -...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_not_match[Command(script=git commit --a...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_not_match[Command(script=git push --tag...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_not_match[Command(script=git rebase --c...] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git add -patch...-git add --patch] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git checkout -...-git checkout --patch] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git checkout -...-git checkout --patch#2] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git init -bare...-git init --bare] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git commit -am...-git commit --amend] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git push -tags...-git push --tags] PASSED [ 60%] tests/rules/test_git_two_dashes.py::test_get_new_command[Command(script=git rebase -co...-git rebase --continue] PASSED [ 60%] tests/rules/test_go_run.py::test_match[Command(script=go run foo, ou...] PASSED [ 60%] tests/rules/test_go_run.py::test_match[Command(script=go run bar, ou...] PASSED [ 61%] tests/rules/test_go_run.py::test_get_new_command[Command(script=go run foo, ou...-go run foo.go] PASSED [ 61%] tests/rules/test_go_run.py::test_get_new_command[Command(script=go run bar, ou...-go run bar.go] PASSED [ 61%] tests/rules/test_go_unknown_command.py::test_match PASSED [ 61%] tests/rules/test_go_unknown_command.py::test_not_match PASSED [ 61%] tests/rules/test_go_unknown_command.py::test_get_new_command PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_match[Command(script=./gradlew asse...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_match[Command(script=./gradlew inst...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_match[Command(script=gradle assembl...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_match[Command(script=gradle instar,...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_not_match[Command(script=./gradlew asse...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_not_match[Command(script=gradle assembl...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_not_match[Command(script=npm assembler,...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_not_match[Command(script=npm instar, ou...] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_get_new_command[Command(script=./gradlew asse...-./gradlew assemble] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_get_new_command[Command(script=./gradlew inst...-./gradlew installDebug] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_get_new_command[Command(script=gradle assembl...-gradle assemble] PASSED [ 61%] tests/rules/test_gradle_not_task.py::test_get_new_command[Command(script=gradle instard...-gradle installDebug] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_match[Command(script=gradle tasks, ...] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_match[Command(script=gradle build, ...] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_not_match[Command(script=gradle tasks, ...-False-None] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_not_match[Command(script=gradle tasks, ...-True-/usr/bin/gradle] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_not_match[Command(script=npm tasks, out...-True-None] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_get_new_command[gradle assemble-./gradlew assemble] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_get_new_command[gradle --help-./gradlew --help] PASSED [ 62%] tests/rules/test_gradle_wrapper.py::test_get_new_command[gradle build -c-./gradlew build -c] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_match[grep test.py test-test] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_match[grep -lir . test-test] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_match[egrep test.py test-test] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_match[egrep -lir . test-test] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_not_match[cat test.py-grep: test: No such file or d...] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_not_match[grep test test.py-] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_not_match[grep -lir test .-] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_not_match[egrep test test.py-] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_not_match[egrep -lir test .-] PASSED [ 62%] tests/rules/test_grep_arguments_order.py::test_get_new_command[grep test.py test-grep: test: No such file or d...-grep test ...] PASSED [ 63%] tests/rules/test_grep_arguments_order.py::test_get_new_command[grep -lir . test-grep: test: No such file or d...-grep -lir t...] PASSED [ 63%] tests/rules/test_grep_arguments_order.py::test_get_new_command[grep . test -lir-grep: test: No such file or d...-grep test -...] PASSED [ 63%] tests/rules/test_grep_arguments_order.py::test_get_new_command[egrep test.py test-grep: test: No such file or d...-egrep tes...] PASSED [ 63%] tests/rules/test_grep_arguments_order.py::test_get_new_command[egrep -lir . test-grep: test: No such file or d...-egrep -lir...] PASSED [ 63%] tests/rules/test_grep_arguments_order.py::test_get_new_command[egrep . test -lir-grep: test: No such file or d...-egrep test...] PASSED [ 63%] tests/rules/test_grep_recursive.py::test_match PASSED [ 63%] tests/rules/test_grep_recursive.py::test_get_new_command PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_match[Command(script=grunt defualt,...] PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_match[Command(script=grunt buld:css...] PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_not_match[Command(script=npm nuild, out...] PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_not_match[Command(script=grunt rm, outp...] PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_get_new_command[Command(script=grunt defualt,...-grunt default] PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_get_new_command[Command(script=grunt cmpass:a...-grunt compass:all] PASSED [ 63%] tests/rules/test_grunt_task_not_found.py::test_get_new_command[Command(script=grunt cmpass:a...-grunt compass:all --color] PASSED [ 63%] tests/rules/test_gulp_not_task.py::test_match PASSED [ 63%] tests/rules/test_gulp_not_task.py::test_not_march[gulp serve-] PASSED [ 63%] tests/rules/test_gulp_not_task.py::test_not_march[cat srve-[00:41:11] Using gulpfile gul...] PASSED [ 64%] tests/rules/test_gulp_not_task.py::test_get_new_command PASSED [ 64%] tests/rules/test_has_exists_script.py::test_match PASSED [ 64%] tests/rules/test_has_exists_script.py::test_get_new_command PASSED [ 64%] tests/rules/test_heroku_multiple_apps.py::test_match[pg] PASSED [ 64%] tests/rules/test_heroku_multiple_apps.py::test_not_match[heroku pg-\n=== HEROKU_POSTGRESQL_TEAL_U...] PASSED [ 64%] tests/rules/test_heroku_multiple_apps.py::test_get_new_command[pg-['heroku pg --app myapp', 'he...] PASSED [ 64%] tests/rules/test_heroku_not_command.py::test_match[log] PASSED [ 64%] tests/rules/test_heroku_not_command.py::test_not_match[cat log-\n \u25b8 log is not a heroku co...] PASSED [ 64%] tests/rules/test_heroku_not_command.py::test_get_new_command[log-heroku logs] PASSED [ 64%] tests/rules/test_history.py::test_match[ls cet] PASSED [ 64%] tests/rules/test_history.py::test_match[daff x] PASSED [ 64%] tests/rules/test_history.py::test_not_match[apt-get] PASSED [ 64%] tests/rules/test_history.py::test_not_match[nocommand y] PASSED [ 64%] tests/rules/test_history.py::test_get_new_command[ls cet-ls cat] PASSED [ 64%] tests/rules/test_history.py::test_get_new_command[daff x-diff x] PASSED [ 64%] tests/rules/test_hostscli.py::test_match[Command(script=hostscli block...] PASSED [ 64%] tests/rules/test_hostscli.py::test_get_new_command[Command(script=hostscli block...-['hostscli websites']] PASSED [ 65%] tests/rules/test_ifconfig_device_not_found.py::test_match[ifconfig wlan0-wlan0: error fetching interfa...] PASSED [ 65%] tests/rules/test_ifconfig_device_not_found.py::test_match[ifconfig -s eth0-eth0: error fetching interfac...] PASSED [ 65%] tests/rules/test_ifconfig_device_not_found.py::test_not_match[config wlan0-wlan0: error fetching interfa...] PASSED [ 65%] tests/rules/test_ifconfig_device_not_found.py::test_not_match[ifconfig eth0-] PASSED [ 65%] tests/rules/test_ifconfig_device_not_found.py::test_get_new_comman[ifconfig wlan0-['ifconfig wlp2s0']] PASSED [ 65%] tests/rules/test_ifconfig_device_not_found.py::test_get_new_comman[ifconfig -s wlan0-['ifconfig -s wlp2s0']] PASSED [ 65%] tests/rules/test_java.py::test_match[Command(script=java foo.java,...] PASSED [ 65%] tests/rules/test_java.py::test_match[Command(script=java bar.java,...] PASSED [ 65%] tests/rules/test_java.py::test_get_new_command[Command(script=java foo.java,...-java foo] PASSED [ 65%] tests/rules/test_java.py::test_get_new_command[Command(script=java bar.java,...-java bar] PASSED [ 65%] tests/rules/test_javac.py::test_match[Command(script=javac foo, out...] PASSED [ 65%] tests/rules/test_javac.py::test_match[Command(script=javac bar, out...] PASSED [ 65%] tests/rules/test_javac.py::test_get_new_command[Command(script=javac foo, out...-javac foo.java] PASSED [ 65%] tests/rules/test_javac.py::test_get_new_command[Command(script=javac bar, out...-javac bar.java] PASSED [ 65%] tests/rules/test_lein_not_task.py::test_match PASSED [ 65%] tests/rules/test_lein_not_task.py::test_get_new_command PASSED [ 65%] tests/rules/test_ln_no_hard_link.py::test_match[ln barDir barLink-ln: \u2018barDir\u2019: {}] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_match[sudo ln a b-ln: \u2018a\u2019: {}] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_match[sudo ln -nbi a b-ln: \u2018a\u2019: {}] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_not_match[-] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_not_match[ln a b-... hard link] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_not_match[sudo ln a b-... hard link] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_not_match[a b-hard link not allowed for dir...] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_get_new_command[ln barDir barLink-ln -s barDir barLink] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_get_new_command[sudo ln barDir barLink-sudo ln -s barDir barLink] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_get_new_command[sudo ln -nbi a b-sudo ln -s -nbi a b] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_get_new_command[ln -nbi a b && ls-ln -s -nbi a b && ls] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_get_new_command[ln a ln-ln -s a ln] PASSED [ 66%] tests/rules/test_ln_no_hard_link.py::test_get_new_command[sudo ln a ln-sudo ln -s a ln] PASSED [ 66%] tests/rules/test_ln_s_order.py::test_not_match[ln dest source-ln: failed to create symbolic...-True] PASSED [ 66%] tests/rules/test_ln_s_order.py::test_not_match[ls -s dest source-ln: failed to create symbolic...-True] PASSED [ 66%] tests/rules/test_ln_s_order.py::test_not_match[ln -s dest source--True] PASSED [ 66%] tests/rules/test_ln_s_order.py::test_not_match[ln -s dest source-ln: failed to create symbolic...-False] PASSED [ 66%] tests/rules/test_ln_s_order.py::test_match[ln -s dest source-ln -s source dest] PASSED [ 66%] tests/rules/test_ln_s_order.py::test_match[ln dest -s source-ln -s source dest] PASSED [ 67%] tests/rules/test_ln_s_order.py::test_match[ln dest source -s-ln source -s dest] PASSED [ 67%] tests/rules/test_long_form_help.py::test_match[Try 'grep --help' for more in...] PASSED [ 67%] tests/rules/test_long_form_help.py::test_not_match PASSED [ 67%] tests/rules/test_long_form_help.py::test_get_new_command[grep -h-grep --help] PASSED [ 67%] tests/rules/test_long_form_help.py::test_get_new_command[tar -h-tar --help] PASSED [ 67%] tests/rules/test_long_form_help.py::test_get_new_command[docker run -h-docker run --help] PASSED [ 67%] tests/rules/test_long_form_help.py::test_get_new_command[cut -h-cut --help] PASSED [ 67%] tests/rules/test_ls_all.py::test_match PASSED [ 67%] tests/rules/test_ls_all.py::test_get_new_command PASSED [ 67%] tests/rules/test_ls_lah.py::test_match PASSED [ 67%] tests/rules/test_ls_lah.py::test_get_new_command PASSED [ 67%] tests/rules/test_man.py::test_match[Command(script=man read, outp...] PASSED [ 67%] tests/rules/test_man.py::test_match[Command(script=man 2 read, ou...] PASSED [ 67%] tests/rules/test_man.py::test_match[Command(script=man 3 read, ou...] PASSED [ 67%] tests/rules/test_man.py::test_match[Command(script=man -s2 read, ...] PASSED [ 67%] tests/rules/test_man.py::test_match[Command(script=man -s3 read, ...] PASSED [ 67%] tests/rules/test_man.py::test_match[Command(script=man -s 2 read,...] PASSED [ 68%] tests/rules/test_man.py::test_match[Command(script=man -s 3 read,...] PASSED [ 68%] tests/rules/test_man.py::test_not_match[Command(script=man, output=)] PASSED [ 68%] tests/rules/test_man.py::test_not_match[Command(script=man , output=)] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man read, outp...-['man 3 read', 'man 2 read',...] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man missing, o...-['missing --help']] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man 2 read, ou...-man 3 read] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man 3 read, ou...-man 2 read] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man -s2 read, ...-man -s3 read] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man -s3 read, ...-man -s2 read] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man -s 2 read,...-man -s 3 read] PASSED [ 68%] tests/rules/test_man.py::test_get_new_command[Command(script=man -s 3 read,...-man -s 2 read] PASSED [ 68%] tests/rules/test_man_no_space.py::test_match PASSED [ 68%] tests/rules/test_man_no_space.py::test_get_new_command PASSED [ 68%] tests/rules/test_mercurial.py::test_match[Command(script=hg base, outpu...] PASSED [ 68%] tests/rules/test_mercurial.py::test_match[Command(script=hg branchch, o...] PASSED [ 68%] tests/rules/test_mercurial.py::test_match[Command(script=hg vert, outpu...] PASSED [ 68%] tests/rules/test_mercurial.py::test_match[Command(script=hg lgo -r tip,...] PASSED [ 69%] tests/rules/test_mercurial.py::test_match[Command(script=hg rerere, out...] PASSED [ 69%] tests/rules/test_mercurial.py::test_match[Command(script=hg re, output=...] PASSED [ 69%] tests/rules/test_mercurial.py::test_match[Command(script=hg re re, outp...] PASSED [ 69%] tests/rules/test_mercurial.py::test_not_match[Command(script=hg, output=\nMe...] PASSED [ 69%] tests/rules/test_mercurial.py::test_not_match[Command(script=hg asdf, outpu...] PASSED [ 69%] tests/rules/test_mercurial.py::test_not_match[Command(script=hg qwer, outpu...] PASSED [ 69%] tests/rules/test_mercurial.py::test_not_match[Command(script=hg me, output=...] PASSED [ 69%] tests/rules/test_mercurial.py::test_not_match[Command(script=hg reb, output...] PASSED [ 69%] tests/rules/test_mercurial.py::test_not_match[Command(script=hg co, output=...] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg base, outpu...-['blame', 'phase', 'rebase']] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg branchch, o...-['branch', 'branches']] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg vert, outpu...-['revert']] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg lgo -r tip,...-['log']] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg rerere, out...-['revert']] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg re, output=...-['rebase', 'recover', 'remov...] PASSED [ 69%] tests/rules/test_mercurial.py::test_extract_possibilities[Command(script=hg re re, outp...-['rebase', 'recover', 'remov...] PASSED [ 69%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg base, outpu...-hg rebase] PASSED [ 70%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg branchch, o...-hg branch] PASSED [ 70%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg vert, outpu...-hg revert] PASSED [ 70%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg lgo -r tip,...-hg log -r tip] PASSED [ 70%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg rerere, out...-hg revert] PASSED [ 70%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg re, output=...-hg rebase] PASSED [ 70%] tests/rules/test_mercurial.py::test_get_new_command[Command(script=hg re re, outp...-hg rebase re] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_match[gitbranch] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_match[ls-la] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_match[npminstall] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_not_match[git branch] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_not_match[vimfile] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_get_new_command[gitbranch-git branch] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_get_new_command[ls-la-ls -la] PASSED [ 70%] tests/rules/test_missing_space_before_subcommand.py::test_get_new_command[npminstall webpack-npm install webpack] PASSED [ 70%] tests/rules/test_mkdir_p.py::test_match[Command(script=mkdir foo/bar/...] PASSED [ 70%] tests/rules/test_mkdir_p.py::test_match[Command(script=./bin/hdfs dfs...] PASSED [ 70%] tests/rules/test_mkdir_p.py::test_match[Command(script=hdfs dfs -mkdi...] PASSED [ 70%] tests/rules/test_mkdir_p.py::test_not_match[Command(script=mkdir foo/bar/...] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_not_match[Command(script=mkdir foo/bar/...#1] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_not_match[Command(script=hdfs dfs -mkdi...] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_not_match[Command(script=./bin/hdfs dfs...] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_not_match[Command(script=, output=)] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_get_new_command[Command(script=mkdir foo/bar/...-mkdir -p foo/bar/baz] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_get_new_command[Command(script=hdfs dfs -mkdi...-hdfs dfs -mkdir -p foo/bar/baz] PASSED [ 71%] tests/rules/test_mkdir_p.py::test_get_new_command[Command(script=./bin/hdfs dfs...-./bin/hdfs dfs -mkdir -p foo...] PASSED [ 71%] tests/rules/test_mvn_no_command.py::test_match[Command(script=mvn, output=[E...] PASSED [ 71%] tests/rules/test_mvn_no_command.py::test_not_match[Command(script=mvn clean, out...] PASSED [ 71%] tests/rules/test_mvn_no_command.py::test_not_match[Command(script=mvn --help, ou...] PASSED [ 71%] tests/rules/test_mvn_no_command.py::test_not_match[Command(script=mvn -v, output=)] PASSED [ 71%] tests/rules/test_mvn_no_command.py::test_get_new_command[Command(script=mvn, output=[E...-['mvn clean package', 'mvn c...] PASSED [ 71%] tests/rules/test_mvn_no_command.py::test_get_new_command[Command(script=mvn -N, output...-['mvn -N clean package', 'mv...] PASSED [ 71%] tests/rules/test_mvn_unknown_lifecycle_phase.py::test_match[Command(script=mvn cle, outpu...] PASSED [ 71%] tests/rules/test_mvn_unknown_lifecycle_phase.py::test_not_match[Command(script=mvn clean, out...] PASSED [ 71%] tests/rules/test_mvn_unknown_lifecycle_phase.py::test_not_match[Command(script=mvn --help, ou...] PASSED [ 71%] tests/rules/test_mvn_unknown_lifecycle_phase.py::test_not_match[Command(script=mvn -v, output=)] PASSED [ 72%] tests/rules/test_mvn_unknown_lifecycle_phase.py::test_get_new_command[Command(script=mvn cle, outpu...-['mvn clean', 'mvn compile']] PASSED [ 72%] tests/rules/test_mvn_unknown_lifecycle_phase.py::test_get_new_command[Command(script=mvn claen pack...-['mvn clean package']] PASSED [ 72%] tests/rules/test_nixos_cmd_not_found.py::test_match[Command(script=vim, output=ni...] PASSED [ 72%] tests/rules/test_nixos_cmd_not_found.py::test_not_match[Command(script=vim, output=)] PASSED [ 72%] tests/rules/test_nixos_cmd_not_found.py::test_not_match[Command(script=, output=)] PASSED [ 72%] tests/rules/test_nixos_cmd_not_found.py::test_get_new_command[Command(script=vim, output=ni...-nix-env -iA nixos.vim && vim] PASSED [ 72%] tests/rules/test_nixos_cmd_not_found.py::test_get_new_command[Command(script=pacman, output...-nix-env -iA nixos.pacman && ...] PASSED [ 72%] tests/rules/test_no_command.py::test_match[vom file.py-vom: not found] PASSED [ 72%] tests/rules/test_no_command.py::test_match[fucck-fucck: not found] PASSED [ 72%] tests/rules/test_no_command.py::test_match[puthon-'puthon' is not recognized as...] PASSED [ 72%] tests/rules/test_no_command.py::test_match[got commit-got: command not found] PASSED [ 72%] tests/rules/test_no_command.py::test_not_match[qweqwe-qweqwe: not found-None] PASSED [ 72%] tests/rules/test_no_command.py::test_not_match[vom file.py-some text-None] PASSED [ 72%] tests/rules/test_no_command.py::test_not_match[vim file.py-vim: not found-vim] PASSED [ 72%] tests/rules/test_no_command.py::test_get_new_command[vom file.py-['vim file.py']] PASSED [ 72%] tests/rules/test_no_command.py::test_get_new_command[fucck-['fsck']] PASSED [ 72%] tests/rules/test_no_command.py::test_get_new_command[got commit-['git commit', 'go commit']] PASSED [ 73%] tests/rules/test_no_such_file.py::test_match[Command(script=mv foo bar/foo...] PASSED [ 73%] tests/rules/test_no_such_file.py::test_match[Command(script=mv foo bar/, o...] PASSED [ 73%] tests/rules/test_no_such_file.py::test_not_match[Command(script=mv foo bar/, o...] PASSED [ 73%] tests/rules/test_no_such_file.py::test_not_match[Command(script=mv foo bar/foo...] PASSED [ 73%] tests/rules/test_no_such_file.py::test_get_new_command[Command(script=mv foo bar/foo...-mkdir -p bar && mv foo bar/foo] PASSED [ 73%] tests/rules/test_no_such_file.py::test_get_new_command[Command(script=mv foo bar/, o...-mkdir -p bar && mv foo bar/] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_match[Command(script=npm ru wach, o...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_match[Command(script=npm run live-t...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_match[Command(script=npm run-script...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_not_match[Command(script=npm wach, outp...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_not_match[Command(script=vim live-tes, ...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_not_match[Command(script=npm run-script...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_get_new_command[npm ru wach-tests-\nnpm ERR! Linux 4.4.0-31-gene...-npm ru wat...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_get_new_command[npm -i run-script dvelop-\nnpm ERR! Linux 4.4.0-31-gene...-npm...] PASSED [ 73%] tests/rules/test_npm_missing_script.py::test_get_new_command[npm -i run-script buld -X POST-\nnpm ERR! Linux 4.4.0-31-gene....] PASSED [ 73%] tests/rules/test_npm_run_script.py::test_match[npm watch-test] PASSED [ 73%] tests/rules/test_npm_run_script.py::test_match[npm develop] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_not_match[Command(script=npm test, outp...-b'\\nLifecycle scripts includ...] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_not_match[Command(script=npm watch-test...-b'\\nLifecycle scripts includ...] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_not_match[Command(script=npm test, outp...-b'\\nLifecycle scripts includ...#2] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_not_match[Command(script=vim watch-test...-b'\\nLifecycle scripts includ...] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_get_new_command[npm watch-test-npm run-script watch-test] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_get_new_command[npm -i develop-npm run-script -i develop] PASSED [ 74%] tests/rules/test_npm_run_script.py::test_get_new_command[npm -i watch-script --path ..-npm run-script -i watch-scrip...] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_match[npm urgrdae] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_match[npm urgrade -g] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_match[npm -f urgrade -g] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_match[npm urg] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_not_match[npm urgrade-] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_not_match[npm-\nUsage: npm \n\nwhere ...] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_not_match[test urgrade-\nUsage: npm \n\nwhere ...] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_not_match[npm -e-\nUsage: npm \n\nwhere ...] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_get_new_command[npm urgrade-npm upgrade] PASSED [ 74%] tests/rules/test_npm_wrong_command.py::test_get_new_command[npm -g isntall gulp-npm -g install gulp] PASSED [ 75%] tests/rules/test_npm_wrong_command.py::test_get_new_command[npm isntall -g gulp-npm install -g gulp] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.com] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.edu] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.info] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.io] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.ly] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.me] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.net] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.org] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open foo.se] PASSED [ 75%] tests/rules/test_open.py::test_is_arg_url[open www.foo.ru] PASSED [ 75%] tests/rules/test_open.py::test_not_is_arg_url[open foo] PASSED [ 75%] tests/rules/test_open.py::test_not_is_arg_url[open bar.txt] PASSED [ 75%] tests/rules/test_open.py::test_not_is_arg_url[open egg.doc] PASSED [ 75%] tests/rules/test_open.py::test_match[open foo.com] PASSED [ 75%] tests/rules/test_open.py::test_match[xdg-open foo.com] PASSED [ 75%] tests/rules/test_open.py::test_match[gnome-open foo.com] PASSED [ 75%] tests/rules/test_open.py::test_match[kde-open foo.com] PASSED [ 76%] tests/rules/test_open.py::test_match[open nonest] PASSED [ 76%] tests/rules/test_open.py::test_get_new_command[open foo.io-['open http://foo.io']] PASSED [ 76%] tests/rules/test_open.py::test_get_new_command[xdg-open foo.io-['xdg-open http://foo.io']] PASSED [ 76%] tests/rules/test_open.py::test_get_new_command[gnome-open foo.io-['gnome-open http://foo.io']] PASSED [ 76%] tests/rules/test_open.py::test_get_new_command[kde-open foo.io-['kde-open http://foo.io']] PASSED [ 76%] tests/rules/test_open.py::test_get_new_command[open nonest-['touch nonest && open nonest...] PASSED [ 76%] tests/rules/test_pacman.py::test_match[Command(script=vim, output=vi...] SKIPPED [ 76%] tests/rules/test_pacman.py::test_match[Command(script=sudo vim, outp...] SKIPPED [ 76%] tests/rules/test_pacman.py::test_match_mocked[Command(script=vim, output=vi...-extra/gvim 7.4.712-1 ...] PASSED [ 76%] tests/rules/test_pacman.py::test_match_mocked[Command(script=sudo vim, outp...-extra/gvim 7.4.712-1 ...] PASSED [ 76%] tests/rules/test_pacman.py::test_not_match[Command(script=vim, output=)] PASSED [ 76%] tests/rules/test_pacman.py::test_not_match[Command(script=, output=)] PASSED [ 76%] tests/rules/test_pacman.py::test_not_match[Command(script=sudo vim, outp...] PASSED [ 76%] tests/rules/test_pacman.py::test_not_match[Command(script=, output=)#3] PASSED [ 76%] tests/rules/test_pacman.py::test_get_new_command[Command(script=vim, output=)-['None -S extra/gvim && vim',...] SKIPPED [ 76%] tests/rules/test_pacman.py::test_get_new_command[Command(script=sudo vim, outp...-['None -S extra/gvim && sudo...] SKIPPED [ 76%] tests/rules/test_pacman.py::test_get_new_command[Command(script=convert, output=)-['None -S extra/imagemagick ...] SKIPPED [ 77%] tests/rules/test_pacman.py::test_get_new_command[Command(script=sudo convert, ...-['None -S extra/imagemagick ...] SKIPPED [ 77%] tests/rules/test_pacman.py::test_get_new_command_mocked[Command(script=vim, output=)-['None -S extra/gvim && vim',......] PASSED [ 77%] tests/rules/test_pacman.py::test_get_new_command_mocked[Command(script=sudo vim, outp...-['None -S extra/gvim && sudo...] PASSED [ 77%] tests/rules/test_pacman.py::test_get_new_command_mocked[Command(script=convert, output=)-['None -S extra/imagemagick ...] PASSED [ 77%] tests/rules/test_pacman.py::test_get_new_command_mocked[Command(script=sudo, output=)-['None -S core/sudo && sudo']-c...] PASSED [ 77%] tests/rules/test_pacman.py::test_get_new_command_mocked[Command(script=sudo convert, ...-['None -S extra/imagemagick ...] PASSED [ 77%] tests/rules/test_pacman_not_found.py::test_match[Command(script=yay -S llc, ou...] SKIPPED [ 77%] tests/rules/test_pacman_not_found.py::test_match[Command(script=yaourt -S llc,...] SKIPPED [ 77%] tests/rules/test_pacman_not_found.py::test_match[Command(script=pacman llc, ou...] SKIPPED [ 77%] tests/rules/test_pacman_not_found.py::test_match[Command(script=sudo pacman ll...] SKIPPED [ 77%] tests/rules/test_pacman_not_found.py::test_match_mocked[Command(script=yay -S llc, ou...] PASSED [ 77%] tests/rules/test_pacman_not_found.py::test_match_mocked[Command(script=yaourt -S llc,...] PASSED [ 77%] tests/rules/test_pacman_not_found.py::test_match_mocked[Command(script=pacman llc, ou...] PASSED [ 77%] tests/rules/test_pacman_not_found.py::test_match_mocked[Command(script=sudo pacman ll...] PASSED [ 77%] tests/rules/test_pacman_not_found.py::test_get_new_command[Command(script=yay -S llc, ou...-['yay -S extra/llvm', 'yay -...] SKIPPED [ 77%] tests/rules/test_pacman_not_found.py::test_get_new_command[Command(script=yaourt -S llc,...-['yaourt -S extra/llvm', 'ya...] SKIPPED [ 77%] tests/rules/test_pacman_not_found.py::test_get_new_command[Command(script=pacman -S llc,...-['pacman -S extra/llvm', 'pa...] SKIPPED [ 78%] tests/rules/test_pacman_not_found.py::test_get_new_command[Command(script=sudo pacman -S...-['sudo pacman -S extra/llvm'...] SKIPPED [ 78%] tests/rules/test_pacman_not_found.py::test_get_new_command_mocked[Command(script=yay -S llc, ou...-['yay -S extra/llvm', 'yay -...] PASSED [ 78%] tests/rules/test_pacman_not_found.py::test_get_new_command_mocked[Command(script=yaourt -S llc,...-['yaourt -S extra/llvm', 'ya...] PASSED [ 78%] tests/rules/test_pacman_not_found.py::test_get_new_command_mocked[Command(script=pacman -S llc,...-['pacman -S extra/llvm', 'pa...] PASSED [ 78%] tests/rules/test_pacman_not_found.py::test_get_new_command_mocked[Command(script=sudo pacman -S...-['sudo pacman -S extra/llvm'...] PASSED [ 78%] tests/rules/test_path_from_history.py::test_match[ls project-no such file or directory: pr...] PASSED [ 78%] tests/rules/test_path_from_history.py::test_match[cd project-can't cd to project] PASSED [ 78%] tests/rules/test_path_from_history.py::test_not_match[myapp cats-no such file or directory: pr...] PASSED [ 78%] tests/rules/test_path_from_history.py::test_not_match[cd project-] PASSED [ 78%] tests/rules/test_path_from_history.py::test_get_new_command[ls project-no such file or directory: pr...-ls ~/work/project] PASSED [ 78%] tests/rules/test_path_from_history.py::test_get_new_command[cd java-can't cd to java-cd /opt/java] PASSED [ 78%] tests/rules/test_php_s.py::test_match[Command(script=php -s localho...] PASSED [ 78%] tests/rules/test_php_s.py::test_match[Command(script=php -t pub -s ...] PASSED [ 78%] tests/rules/test_php_s.py::test_not_match[Command(script=php -S localho...] PASSED [ 78%] tests/rules/test_php_s.py::test_not_match[Command(script=vim php -s, ou...] PASSED [ 78%] tests/rules/test_php_s.py::test_get_new_command[Command(script=php -s localho...-php -S localhost:8000] PASSED [ 78%] tests/rules/test_php_s.py::test_get_new_command[Command(script=php -t pub -s ...-php -t pub -S 0.0.0.0:8080] PASSED [ 79%] tests/rules/test_pip_install.py::test_match PASSED [ 79%] tests/rules/test_pip_install.py::test_get_new_command PASSED [ 79%] tests/rules/test_pip_unknown_command.py::test_match PASSED [ 79%] tests/rules/test_pip_unknown_command.py::test_get_new_command[pip un+install thefuck-un+install-uninstall-pip uninstall the...] PASSED [ 79%] tests/rules/test_pip_unknown_command.py::test_get_new_command[pip instatl-instatl-install-pip install] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_match[Command(script=./app, output=...] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_match[Command(script=./app, output=...#1] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_match[Command(script=./app, output=...#2] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_match[Command(script=./app, output=...#3] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_match[Command(script=./app, output=...#4] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_match[Command(script=./app, output=...#5] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_not_match[Command(script=./app, output=)-b'COMMAND PID USER FD T...] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_not_match[Command(script=./app, output=...-b''] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_not_match[Command(script=./app, output=...-b''#2] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_get_new_command[Command(script=./app, output=...] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_get_new_command[Command(script=./app, output=...#1] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_get_new_command[Command(script=./app, output=...#2] PASSED [ 79%] tests/rules/test_port_already_in_use.py::test_get_new_command[Command(script=./app, output=...#3] PASSED [ 80%] tests/rules/test_port_already_in_use.py::test_get_new_command[Command(script=./app, output=...#4] PASSED [ 80%] tests/rules/test_port_already_in_use.py::test_get_new_command[Command(script=./app, output=...#5] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_match[prove -lv t-Files=0, Tests=0, 0 wallcloc...] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_match[prove app/t-Files=0, Tests=0, 0 wallcloc...] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_not_match[prove -lv t-Files=0, Tests=0, 0 wallcloc...-False] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_not_match[prove -r t-Files=0, Tests=0, 0 wallcloc...-True] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_not_match[prove --recurse t-Files=0, Tests=0, 0 wallcloc...-True] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_get_new_command[prove -lv t-prove -r -lv t] PASSED [ 80%] tests/rules/test_prove_recursively.py::test_get_new_command[prove t-prove -r t] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_match[pyenv globe-globe] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_match[pyenv intall 3.8.0-intall] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_match[pyenv list-list] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_not_match[pyenv global-system] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_not_match[pyenv versions- 3.7.0\n 3.7.1\n* 3.7.2\n] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_not_match[pyenv install --list- 3.7.0\n 3.7.1\n 3.7.2\n] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_get_new_command[pyenv globe-globe-pyenv global] PASSED [ 80%] tests/rules/test_pyenv_no_such_command.py::test_get_new_command[pyenv intall 3.8.0-intall-pyenv install 3.8.0] PASSED [ 81%] tests/rules/test_pyenv_no_such_command.py::test_get_new_command[pyenv list-list-pyenv install --list] PASSED [ 81%] tests/rules/test_pyenv_no_such_command.py::test_get_new_command[pyenv remove 3.8.0-remove-pyenv uninstall 3.8.0] PASSED [ 81%] tests/rules/test_python_command.py::test_match PASSED [ 81%] tests/rules/test_python_command.py::test_get_new_command PASSED [ 81%] tests/rules/test_python_execute.py::test_match[Command(script=python foo, ou...] PASSED [ 81%] tests/rules/test_python_execute.py::test_match[Command(script=python bar, ou...] PASSED [ 81%] tests/rules/test_python_execute.py::test_get_new_command[Command(script=python foo, ou...-python foo.py] PASSED [ 81%] tests/rules/test_python_execute.py::test_get_new_command[Command(script=python bar, ou...-python bar.py] PASSED [ 81%] tests/rules/test_quotation_marks.py::test_match[Command(script=git commit -m ...] PASSED [ 81%] tests/rules/test_quotation_marks.py::test_match[Command(script=git commit -am...] PASSED [ 81%] tests/rules/test_quotation_marks.py::test_match[Command(script=echo "hello', ...] PASSED [ 81%] tests/rules/test_quotation_marks.py::test_get_new_command[Command(script=git commit -m ...-git commit -m "My Message"] PASSED [ 81%] tests/rules/test_quotation_marks.py::test_get_new_command[Command(script=git commit -am...-git commit -am "Mismatched Q...] PASSED [ 81%] tests/rules/test_quotation_marks.py::test_get_new_command[Command(script=echo "hello', ...-echo "hello"] PASSED [ 81%] tests/rules/test_react_native_command_unrecognized.py::test_match[Command(script=react-native s...] PASSED [ 81%] tests/rules/test_react_native_command_unrecognized.py::test_match[Command(script=react-native a...] PASSED [ 81%] tests/rules/test_react_native_command_unrecognized.py::test_not_match[Command(script=gradle star, o...] PASSED [ 82%] tests/rules/test_react_native_command_unrecognized.py::test_not_match[Command(script=react-native s...] PASSED [ 82%] tests/rules/test_react_native_command_unrecognized.py::test_get_new_command[Command(script=react-native s...-react-native start] PASSED [ 82%] tests/rules/test_react_native_command_unrecognized.py::test_get_new_command[Command(script=react-native l...-react-native log-android -f] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_match[$ cd newdir] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_match[ $ cd newdir] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_not_match[Command(script=$, output=$: c...] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_not_match[Command(script= $, output=$: ...] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_not_match[Command(script=$?, output=127...] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_not_match[Command(script= $?, output=12...] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_not_match[Command(script=, output=)] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_get_new_command[$ cd newdir-cd newdir] PASSED [ 82%] tests/rules/test_remove_shell_prompt_literal.py::test_get_new_command[$ python3 -m virtualenv env-python3 -m virtualenv env] PASSED [ 82%] tests/rules/test_remove_trailing_cedilla.py::test_match[Command(script=wrong\xe7, output=)] PASSED [ 82%] tests/rules/test_remove_trailing_cedilla.py::test_match[Command(script=wrong with arg...] PASSED [ 82%] tests/rules/test_remove_trailing_cedilla.py::test_get_new_command[Command(script=wrong\xe7, output=)-wrong] PASSED [ 82%] tests/rules/test_remove_trailing_cedilla.py::test_get_new_command[Command(script=wrong with arg...-wrong with args] PASSED [ 82%] tests/rules/test_rm_dir.py::test_match[Command(script=rm foo, output...] PASSED [ 83%] tests/rules/test_rm_dir.py::test_match[Command(script=rm foo, output...#1] PASSED [ 83%] tests/rules/test_rm_dir.py::test_match[Command(script=hdfs dfs -rm f...] PASSED [ 83%] tests/rules/test_rm_dir.py::test_match[Command(script=./bin/hdfs dfs...] PASSED [ 83%] tests/rules/test_rm_dir.py::test_not_match[Command(script=rm foo, output=)] PASSED [ 83%] tests/rules/test_rm_dir.py::test_not_match[Command(script=hdfs dfs -rm f...] PASSED [ 83%] tests/rules/test_rm_dir.py::test_not_match[Command(script=./bin/hdfs dfs...] PASSED [ 83%] tests/rules/test_rm_dir.py::test_not_match[Command(script=, output=)] PASSED [ 83%] tests/rules/test_rm_dir.py::test_get_new_command[Command(script=rm foo, output=)-rm -rf foo] PASSED [ 83%] tests/rules/test_rm_dir.py::test_get_new_command[Command(script=hdfs dfs -rm f...-hdfs dfs -rm -r foo] PASSED [ 83%] tests/rules/test_rm_root.py::test_match PASSED [ 83%] tests/rules/test_rm_root.py::test_not_match[Command(script=ls, output=add...] PASSED [ 83%] tests/rules/test_rm_root.py::test_not_match[Command(script=rm --no-preser...] PASSED [ 83%] tests/rules/test_rm_root.py::test_not_match[Command(script=rm -rf /, outp...] PASSED [ 83%] tests/rules/test_rm_root.py::test_get_new_command PASSED [ 83%] tests/rules/test_scm_correction.py::test_match[git log-fatal: Not a git repository (...-hg] PASSED [ 83%] tests/rules/test_scm_correction.py::test_match[hg log-abort: no repository found in...-git] PASSED [ 83%] tests/rules/test_scm_correction.py::test_not_match[git log--hg] PASSED [ 83%] tests/rules/test_scm_correction.py::test_not_match[git log-fatal: Not a git repository (...-None] PASSED [ 84%] tests/rules/test_scm_correction.py::test_not_match[hg log-abort: no repository found in...-None] PASSED [ 84%] tests/rules/test_scm_correction.py::test_not_match[not-scm log-abort: no repository found in...-git] PASSED [ 84%] tests/rules/test_scm_correction.py::test_get_new_command[git log-hg-hg log] PASSED [ 84%] tests/rules/test_scm_correction.py::test_get_new_command[hg log-git-git log] PASSED [ 84%] tests/rules/test_sed_unterminated_s.py::test_match PASSED [ 84%] tests/rules/test_sed_unterminated_s.py::test_get_new_command PASSED [ 84%] tests/rules/test_sl_ls.py::test_match PASSED [ 84%] tests/rules/test_sl_ls.py::test_get_new_command PASSED [ 84%] tests/rules/test_ssh_known_host.py::test_match PASSED [ 84%] tests/rules/test_ssh_known_host.py::test_side_effect PASSED [ 84%] tests/rules/test_ssh_known_host.py::test_get_new_command PASSED [ 84%] tests/rules/test_sudo.py::test_match[Permission denied] PASSED [ 84%] tests/rules/test_sudo.py::test_match[permission denied] PASSED [ 84%] tests/rules/test_sudo.py::test_match[npm ERR! Error: EACCES, unlink] PASSED [ 84%] tests/rules/test_sudo.py::test_match[requested operation requires ...] PASSED [ 84%] tests/rules/test_sudo.py::test_match[need to be root] PASSED [ 84%] tests/rules/test_sudo.py::test_match[need root] PASSED [ 85%] tests/rules/test_sudo.py::test_match[must be root] PASSED [ 85%] tests/rules/test_sudo.py::test_match[You don't have access to the ...] PASSED [ 85%] tests/rules/test_sudo.py::test_match[error: [Errno 13] Permission ...] PASSED [ 85%] tests/rules/test_sudo.py::test_not_match PASSED [ 85%] tests/rules/test_sudo.py::test_get_new_command[ls-sudo ls] PASSED [ 85%] tests/rules/test_sudo.py::test_get_new_command[echo a > b-sudo sh -c "echo a > b"] PASSED [ 85%] tests/rules/test_sudo.py::test_get_new_command[echo "a" >> b-sudo sh -c "echo \\"a\\" >> b"] PASSED [ 85%] tests/rules/test_sudo.py::test_get_new_command[mkdir && touch a-sudo sh -c "mkdir && touch a"] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_match[sudo npm install -g react-nat...-sudo: npm: command not found] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_match[sudo -u app appcfg update .-sudo: appcfg: command not found] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_not_match[npm --version-sudo: npm: command not found-/usr/bin/npm] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_not_match[sudo npm --version--/usr/bin/npm] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_not_match[sudo npm --version-sudo: npm: command not found-None] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_get_new_command[sudo npm install -g react-nat...-sudo: npm: command not found...] PASSED [ 85%] tests/rules/test_sudo_command_from_user_path.py::test_get_new_command[sudo -u app appcfg update .-sudo: appcfg: command not found-s...] PASSED [ 85%] tests/rules/test_switch_lang.py::test_match[Command(script=\u0444\u0437\u0435-\u043f\u0443\u0435, outpu...] PASSED [ 85%] tests/rules/test_switch_lang.py::test_match[Command(script=\u03bb\u03c3, output=com...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_match[Command(script=\u05e9\u05e4\u05d0-\u05e2\u05e7\u05d0, outpu...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_match[Command(script=\u05da\u05d3, output=com...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_match[Command(script=\ub140\uc560 \u3163\u3134, output=...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_not_match[Command(script=pat-get, outpu...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_not_match[Command(script=ls, output=com...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_not_match[Command(script=\u0430\u0433\u0441\u043b, output=c...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_not_match[Command(script=\u0444\u0437\u0435-\u043f\u0443\u0435, outpu...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_not_match[Command(script=\u05e9\u05e4\u05d0-\u05e2\u05e7\u05d0, outpu...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_not_match[Command(script=\ub140\uc560 \u3163\u3134, output=...] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\u0444\u0437\u0435-\u043f\u0443\u0435 \u0448\u0442\u044b\u0435\u0444\u0434...-apt-get install vim] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\u03bb\u03c3 -\u03bb\u03b1, output=)-ls -la] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\u05e9\u05e4\u05d0-\u05e2\u05e7\u05d0 \u05df\u05de\u05d3\u05d0\u05e9\u05da...-apt-get install vim] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\u05da\u05d3 -\u05da\u05e9, output=)-ls -la] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\uba67-\u314e\u3137\u3145 \u3151\u315c\u3134\u3145\ubbf8\u3163 \ud344...-apt-get install vim] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\u3163\u3134 -\u3163\u3141, output=)-ls -la] PASSED [ 86%] tests/rules/test_switch_lang.py::test_get_new_command[Command(script=\u3154\u3141\u3145\ucd24, output=)-patchk] PASSED [ 86%] tests/rules/test_systemctl.py::test_match PASSED [ 87%] tests/rules/test_systemctl.py::test_get_new_command PASSED [ 87%] tests/rules/test_terraform_init.py::test_match[terraform plan-Error: Initialization require...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_match[terraform plan-This module is not yet instal...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_match[terraform apply-Error: Initialization require...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_match[terraform apply-This module is not yet instal...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_not_match[terraform --version-Terraform v0.12.2] PASSED [ 87%] tests/rules/test_terraform_init.py::test_not_match[terraform plan-No changes. Infrastructure is...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_not_match[terraform apply-Apply complete! Resources: 0 ...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_get_new_command[Command(script=terraform plan...-terraform init && terraform ...] PASSED [ 87%] tests/rules/test_terraform_init.py::test_get_new_command[Command(script=terraform appl...-terraform init && terraform ...] PASSED [ 87%] tests/rules/test_tmux.py::test_match PASSED [ 87%] tests/rules/test_tmux.py::test_get_new_command PASSED [ 87%] tests/rules/test_touch.py::test_match[touch /a/b/c-False] PASSED [ 87%] tests/rules/test_touch.py::test_match[touch /a/b/c-True] PASSED [ 87%] tests/rules/test_touch.py::test_not_match[Command(script=touch /a/b/c, ...] PASSED [ 87%] tests/rules/test_touch.py::test_not_match[Command(script=ls /a/b/c, out...] PASSED [ 87%] tests/rules/test_touch.py::test_get_new_command[touch /a/b/c-False] PASSED [ 87%] tests/rules/test_touch.py::test_get_new_command[touch /a/b/c-True] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_match[Command(script=tsuru app-shel...] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_match[Command(script=tsuru app-log ...] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_not_match[Command(script=tsuru, output=)] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_not_match[Command(script=tsuru app-rest...] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_not_match[Command(script=tsuru app-log ...] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_get_new_command[Command(script=tsuru app-shel...-tsuru login && tsuru app-shell] PASSED [ 88%] tests/rules/test_tsuru_login.py::test_get_new_command[Command(script=tsuru app-log ...-tsuru login && tsuru app-log -f] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_match[Command(script=tsuru log, out...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_match[Command(script=tsuru app-l, o...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_match[Command(script=tsuru user-lis...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_match[Command(script=tsuru targetli...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_not_match[Command(script=tsuru tchururu...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_not_match[Command(script=tsuru version,...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_not_match[Command(script=tsuru help, ou...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_not_match[Command(script=tsuru platform...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_not_match[Command(script=tsuru env-get,...] PASSED [ 88%] tests/rules/test_tsuru_not_command.py::test_get_new_command[Command(script=tsuru log, out...-['tsuru login', 'tsuru logou...] PASSED [ 89%] tests/rules/test_tsuru_not_command.py::test_get_new_command[Command(script=tsuru app-l, o...-['tsuru app-log', 'tsuru app...] PASSED [ 89%] tests/rules/test_tsuru_not_command.py::test_get_new_command[Command(script=tsuru user-lis...-['tsuru team-user-list']] PASSED [ 89%] tests/rules/test_tsuru_not_command.py::test_get_new_command[Command(script=tsuru targetli...-['tsuru target-list']] PASSED [ 89%] tests/rules/test_unknown_command.py::test_match[Command(script=./bin/hdfs dfs...] PASSED [ 89%] tests/rules/test_unknown_command.py::test_match[Command(script=hdfs dfs ls, o...] PASSED [ 89%] tests/rules/test_unknown_command.py::test_match[Command(script=hdfs dfs ls /f...] PASSED [ 89%] tests/rules/test_unknown_command.py::test_not_match[Command(script=./bin/hdfs dfs...] PASSED [ 89%] tests/rules/test_unknown_command.py::test_not_match[Command(script=./bin/hdfs dfs...#1] PASSED [ 89%] tests/rules/test_unknown_command.py::test_not_match[Command(script=hdfs dfs -ls -...] PASSED [ 89%] tests/rules/test_unknown_command.py::test_not_match[Command(script=, output=)] PASSED [ 89%] tests/rules/test_unknown_command.py::test_get_new_command[Command(script=hdfs dfs ls, o...-['hdfs dfs -ls']] PASSED [ 89%] tests/rules/test_unknown_command.py::test_get_new_command[Command(script=hdfs dfs rm /f...-['hdfs dfs -rm /foo/bar']] PASSED [ 89%] tests/rules/test_unknown_command.py::test_get_new_command[Command(script=./bin/hdfs dfs...-['./bin/hdfs dfs -ls -R /foo...] PASSED [ 89%] tests/rules/test_unknown_command.py::test_get_new_command[Command(script=./bin/hdfs dfs...-['./bin/hdfs dfs -Dtest=fred...] PASSED [ 89%] tests/rules/test_unsudo.py::test_match[you cannot perform this opera...] PASSED [ 89%] tests/rules/test_unsudo.py::test_not_match PASSED [ 89%] tests/rules/test_unsudo.py::test_get_new_command[sudo ls-ls] PASSED [ 90%] tests/rules/test_unsudo.py::test_get_new_command[sudo pacaur -S helloworld-pacaur -S helloworld] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_match[Command(script=vagrant ssh, o...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_match[Command(script=vagrant ssh de...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_match[Command(script=vagrant rdp, o...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_match[Command(script=vagrant rdp de...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_not_match[Command(script=vagrant ssh, o...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_not_match[Command(script=vagrant ssh je...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_not_match[Command(script=vagrant ssh, o...#2] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_not_match[Command(script=, output=)] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_get_new_command[Command(script=vagrant ssh, o...-vagrant up && vagrant ssh] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_get_new_command[Command(script=vagrant ssh de...-['vagrant up devbox && vagra...] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_get_new_command[Command(script=vagrant rdp, o...-vagrant up && vagrant rdp] PASSED [ 90%] tests/rules/test_vagrant_up.py::test_get_new_command[Command(script=vagrant rdp de...-['vagrant up devbox && vagra...] PASSED [ 90%] tests/rules/test_whois.py::test_match[Command(script=whois https://...] PASSED [ 90%] tests/rules/test_whois.py::test_match[Command(script=whois https://...#1] PASSED [ 90%] tests/rules/test_whois.py::test_match[Command(script=whois meta.uni...] PASSED [ 90%] tests/rules/test_whois.py::test_not_match PASSED [ 91%] tests/rules/test_whois.py::test_get_new_command[Command(script=whois https://...-whois en.wikipedia.org] PASSED [ 91%] tests/rules/test_whois.py::test_get_new_command[Command(script=whois https://...-whois en.wikipedia.org#1] PASSED [ 91%] tests/rules/test_whois.py::test_get_new_command[Command(script=whois meta.uni...-['whois unix.stackexchange.c...] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_match[workon tehfuck] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_match[workon code-view] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_match[workon new-env] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_not_match[workon thefuck] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_not_match[workon code_view] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_not_match[work on tehfuck] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_get_new_command[workon tehfuck-workon thefuck] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_get_new_command[workon code-view-workon code_view] PASSED [ 91%] tests/rules/test_workon_doesnt_exists.py::test_get_new_command[workon zzzz-mkvirtualenv zzzz] PASSED [ 91%] tests/rules/test_yarn_alias.py::test_match[Command(script=yarn rm, outpu...] PASSED [ 91%] tests/rules/test_yarn_alias.py::test_match[Command(script=yarn etil, out...] PASSED [ 91%] tests/rules/test_yarn_alias.py::test_match[Command(script=yarn ls, outpu...] PASSED [ 91%] tests/rules/test_yarn_alias.py::test_get_new_command[Command(script=yarn rm, outpu...-yarn remove] PASSED [ 91%] tests/rules/test_yarn_alias.py::test_get_new_command[Command(script=yarn etil, out...-yarn etl] PASSED [ 91%] tests/rules/test_yarn_alias.py::test_get_new_command[Command(script=yarn ls, outpu...-yarn list] PASSED [ 92%] tests/rules/test_yarn_command_not_found.py::test_match[Command(script=yarn whyy webp...] PASSED [ 92%] tests/rules/test_yarn_command_not_found.py::test_not_match[Command(script=npm nuild, out...] PASSED [ 92%] tests/rules/test_yarn_command_not_found.py::test_not_match[Command(script=yarn install, ...] PASSED [ 92%] tests/rules/test_yarn_command_not_found.py::test_get_new_command[Command(script=yarn whyy webp...-yarn why webpack] PASSED [ 92%] tests/rules/test_yarn_command_not_found.py::test_get_new_command[Command(script=yarn require l...-yarn add lodash] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_match[Command(script=yarn install r...] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_match[Command(script=yarn install m...] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_match[Command(script=yarn install l...] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_not_match[Command(script=yarn install, ...] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_get_new_command[Command(script=yarn install r...-yarn add redux] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_get_new_command[Command(script=yarn install m...-yarn add moment] PASSED [ 92%] tests/rules/test_yarn_command_replaced.py::test_get_new_command[Command(script=yarn install l...-yarn add lodash] PASSED [ 92%] tests/rules/test_yarn_help.py::test_match[Command(script=yarn help clea...] PASSED [ 92%] tests/rules/test_yarn_help.py::test_get_new_command[Command(script=yarn help clea...-https://yarnpkg.com/en/docs/...] PASSED [ 92%] tests/rules/test_yum_invalid_operation.py::test_match[saerch] PASSED [ 92%] tests/rules/test_yum_invalid_operation.py::test_match[uninstall] PASSED [ 92%] tests/rules/test_yum_invalid_operation.py::test_not_match[vim-] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_not_match[yum-Loaded plugins: extras_sugges...] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_not_match[yum help-Loaded plugins: extras_sugges...] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_not_match[yum search asdf-Warning: No matches found for...] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_not_match[yum search vim-=============================...] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_get_operations PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_get_new_command[yum uninstall-Loaded plugins: extras_sugges...-yum remove] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_get_new_command[yum saerch asdf-Loaded plugins: extras_sugges...-yum search asdf] PASSED [ 93%] tests/rules/test_yum_invalid_operation.py::test_get_new_command[yum hlep-Loaded plugins: extras_sugges...-yum help] PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_from_shell[pwd-pwd] PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_from_shell[fuck-eval $(thefuck $(fc -ln -1))] PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_from_shell[awk-awk] PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_from_shell[ll-ls -alF] PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_to_shell PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_and_ PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_or_ PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_get_aliases PASSED [ 93%] tests/shells/test_bash.py::TestBash::test_app_alias PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_app_alias_variables_correctly_set PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_get_history PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_split_command PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_how_to_configure PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_how_to_configure_when_config_not_found PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_info PASSED [ 94%] tests/shells/test_bash.py::TestBash::test_get_version_error PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_get_overridden_aliases[TF_OVERRIDDEN_ALIASES-cut,git,sed] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_get_overridden_aliases[THEFUCK_OVERRIDDEN_ALIASES-cut,git,sed] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_get_overridden_aliases[THEFUCK_OVERRIDDEN_ALIASES-cut, git, sed] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_get_overridden_aliases[THEFUCK_OVERRIDDEN_ALIASES- cut,\tgit,sed\n] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_get_overridden_aliases[THEFUCK_OVERRIDDEN_ALIASES-\ncut,\n\ngit,\tsed\r] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_from_shell[cd-cd] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_from_shell[pwd-pwd] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_from_shell[fuck-fish -ic "fuck"] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_from_shell[find-find] PASSED [ 94%] tests/shells/test_fish.py::TestFish::test_from_shell[funced-fish -ic "funced"] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[grep-grep] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[awk-awk] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[math "2 + 2"-fish -ic "math \\"2 + 2\\""] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[man-man] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[open-open] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[vim-vim] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[ll-fish -ic "ll"] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[ls-ls] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_from_shell[g-git] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_to_shell PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_and_ PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_or_ PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_get_aliases PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_app_alias PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_app_alias_alter_history PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_get_history PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_put_to_history[ls-- cmd: ls\n when: 1430707243\n] PASSED [ 95%] tests/shells/test_fish.py::TestFish::test_put_to_history[echo caf\xe9-- cmd: echo caf\xe9\n when: 143...] PASSED [ 96%] tests/shells/test_fish.py::TestFish::test_how_to_configure PASSED [ 96%] tests/shells/test_fish.py::TestFish::test_how_to_configure_when_config_not_found PASSED [ 96%] tests/shells/test_fish.py::TestFish::test_get_version PASSED [ 96%] tests/shells/test_fish.py::TestFish::test_get_version_error[[b'\\n']-IndexError] PASSED [ 96%] tests/shells/test_fish.py::TestFish::test_get_version_error[file not found-OSError] PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_from_shell PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_to_shell PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_and_ PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_or_ PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_get_aliases PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_app_alias PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_get_history PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_split_command PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_how_to_configure PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_info[['3.5.9']-Generic Shell 3.5.9-False] PASSED [ 96%] tests/shells/test_generic.py::TestGeneric::test_info[[]-Generic Shell-True] PASSED [ 96%] tests/shells/test_powershell.py::TestPowershell::test_and_ PASSED [ 97%] tests/shells/test_powershell.py::TestPowershell::test_app_alias PASSED [ 97%] tests/shells/test_powershell.py::TestPowershell::test_how_to_configure PASSED [ 97%] tests/shells/test_powershell.py::TestPowershell::test_info[[b'Major Minor Build Revis...-PowerShell 5.1.17763.316-['p...] PASSED [ 97%] tests/shells/test_powershell.py::TestPowershell::test_info[[, b'PowerSh...-PowerShell 6.1.2-['powershel...] PASSED [ 97%] tests/shells/test_powershell.py::TestPowershell::test_get_version_error PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_from_shell[pwd-pwd] PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_from_shell[fuck-eval $(thefuck $(fc -ln -1))] PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_from_shell[awk-awk] PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_from_shell[ll-ls -alF] PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_to_shell PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_and_ PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_or_ PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_get_aliases PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_app_alias PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_get_history PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_how_to_configure PASSED [ 97%] tests/shells/test_tcsh.py::TestTcsh::test_how_to_configure_when_config_not_found PASSED [ 98%] tests/shells/test_tcsh.py::TestTcsh::test_info PASSED [ 98%] tests/shells/test_tcsh.py::TestTcsh::test_get_version_error[[b'\\n']-IndexError] PASSED [ 98%] tests/shells/test_tcsh.py::TestTcsh::test_get_version_error[OSError-OSError] PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_from_shell[fuck-eval $(thefuck $(fc -ln -1 | ...] PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_from_shell[pwd-pwd] PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_from_shell[ll-ls -alF] PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_to_shell PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_and_ PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_or_ PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_get_aliases PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_app_alias PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_app_alias_variables_correctly_set PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_get_history PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_how_to_configure PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_how_to_configure_when_config_not_found PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_info PASSED [ 98%] tests/shells/test_zsh.py::TestZsh::test_get_version_error PASSED [ 99%] tests/specific/test_git.py::test_git_support[git co-git checkout-19:22:36.299340 git.c:282 t...] PASSED [ 99%] tests/specific/test_git.py::test_git_support[git com file-git commit --verbose file-19:23:25.470911 git.c:...] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[git pull-True] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[hub pull-True] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[git push --set-upstream origi...-True] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[hub push --set-upstream origi...-True] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[ls-False] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[cat git-False] PASSED [ 99%] tests/specific/test_git.py::test_git_support_match[cat hub-False] PASSED [ 99%] tests/specific/test_npm.py::test_get_scripts PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[ls -lah-sudo ls-ls-sudo ls -lah] PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[ls -lah-ls-ls-ls -lah] PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[['ls -lah']-sudo ls-ls-['sudo ls -lah']] PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[True-sudo ls-ls-True] PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[True-ls-ls-True] PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[False-sudo ls-ls-False] PASSED [ 99%] tests/specific/test_sudo.py::test_sudo_support[False-ls-ls-False] PASSED [100%] =================================== FAILURES =================================== ____________________________ test_settings_defaults ____________________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: load_source = settings = {'rules': [], 'exclude_rules': [], 'wait_command': 3, 'require_confirmation': True, 'no_colo...se, 'num_close_matches': 3, 'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}, 'user_dir': PosixPath('~/.thefuck')} def test_settings_defaults(load_source, settings): load_source.return_value = object() > settings.init() tests/test_conf.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError _____________________ TestSettingsFromFile.test_from_file ______________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = load_source = settings = {'rules': [], 'exclude_rules': [], 'wait_command': 3, 'require_confirmation': True, 'no_colo...se, 'num_close_matches': 3, 'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}, 'user_dir': PosixPath('~/.thefuck')} def test_from_file(self, load_source, settings): load_source.return_value = Mock(rules=['test'], wait_command=10, require_confirmation=True, no_colors=True, priority={'vim': 100}, exclude_rules=['git']) > settings.init() tests/test_conf.py:28: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError _______________ TestSettingsFromFile.test_from_file_with_DEFAULT _______________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = load_source = settings = {'rules': [], 'exclude_rules': [], 'wait_command': 3, 'require_confirmation': True, 'no_colo...se, 'num_close_matches': 3, 'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}, 'user_dir': PosixPath('~/.thefuck')} def test_from_file_with_DEFAULT(self, load_source, settings): load_source.return_value = Mock(rules=const.DEFAULT_RULES + ['test'], wait_command=10, exclude_rules=[], require_confirmation=True, no_colors=True) > settings.init() tests/test_conf.py:42: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ______________________ TestSettingsFromEnv.test_from_env _______________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = os_environ = {'PATH': '/var/tmp/portage/app-shells/thefuck-3.30/temp/python3.9/bin:/usr/lib/portage/python3.9/ebuild-helpers/xattr:....py::TestSettingsFromEnv::test_from_env (call)', 'THEFUCK_EXCLUDE_RULES': 'git:vim', 'THEFUCK_NO_COLORS': 'false', ...} settings = {'rules': [], 'exclude_rules': [], 'wait_command': 3, 'require_confirmation': True, 'no_colo...se, 'num_close_matches': 3, 'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}, 'user_dir': PosixPath('~/.thefuck')} def test_from_env(self, os_environ, settings): os_environ.update({'THEFUCK_RULES': 'bash:lisp', 'THEFUCK_EXCLUDE_RULES': 'git:vim', 'THEFUCK_WAIT_COMMAND': '55', 'THEFUCK_REQUIRE_CONFIRMATION': 'true', 'THEFUCK_NO_COLORS': 'false', 'THEFUCK_PRIORITY': 'bash=10:lisp=wrong:vim=15', 'THEFUCK_WAIT_SLOW_COMMAND': '999', 'THEFUCK_SLOW_COMMANDS': 'lein:react-native:./gradlew', 'THEFUCK_NUM_CLOSE_MATCHES': '359'}) > settings.init() tests/test_conf.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ________________ TestSettingsFromEnv.test_from_env_with_DEFAULT ________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = os_environ = {'PATH': '/var/tmp/portage/app-shells/thefuck-3.30/temp/python3.9/bin:/usr/lib/portage/python3.9/ebuild-helpers/xattr:...ests/test_conf.py::TestSettingsFromEnv::test_from_env_with_DEFAULT (call)', 'THEFUCK_RULES': 'DEFAULT_RULES:bash:lisp'} settings = {'rules': [], 'exclude_rules': [], 'wait_command': 3, 'require_confirmation': True, 'no_colo...se, 'num_close_matches': 3, 'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}, 'user_dir': PosixPath('~/.thefuck')} def test_from_env_with_DEFAULT(self, os_environ, settings): os_environ.update({'THEFUCK_RULES': 'DEFAULT_RULES:bash:lisp'}) > settings.init() tests/test_conf.py:71: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ___________________________ test_settings_from_args ____________________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: settings = {'rules': [], 'exclude_rules': [], 'wait_command': 3, 'require_confirmation': True, 'no_colo...se, 'num_close_matches': 3, 'env': {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'}, 'user_dir': PosixPath('~/.thefuck')} def test_settings_from_args(settings): > settings.init(Mock(yes=True, debug=True, repeat=True)) tests/test_conf.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ____________________________ test_for_generic_shell ____________________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: shell = logs = def test_for_generic_shell(shell, logs): shell.how_to_configure.return_value = None > main() tests/entrypoints/test_not_configured.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ______________________________ test_on_first_run _______________________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: usage_tracker_io = <_io.StringIO object at 0x7eff6185c160> usage_tracker_exists = shell_pid = logs = def test_on_first_run(usage_tracker_io, usage_tracker_exists, shell_pid, logs): shell_pid.return_value = 12 > main() tests/entrypoints/test_not_configured.py:88: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError _______________________ test_on_run_after_other_commands _______________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: usage_tracker_io = <_io.StringIO object at 0x7eff618a0940> shell_pid = shell = logs = def test_on_run_after_other_commands(usage_tracker_io, shell_pid, shell, logs): shell_pid.return_value = 12 shell.get_history.return_value = ['fuck', 'ls'] _change_tracker(usage_tracker_io, 12) > main() tests/entrypoints/test_not_configured.py:98: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError _____________________ test_on_first_run_from_current_shell _____________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: usage_tracker_io = <_io.StringIO object at 0x7eff6185c040> shell_pid = shell = logs = def test_on_first_run_from_current_shell(usage_tracker_io, shell_pid, shell, logs): shell.get_history.return_value = ['fuck'] shell_pid.return_value = 12 > main() tests/entrypoints/test_not_configured.py:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ____________________ test_when_cant_configure_automatically ____________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: shell_pid = shell = logs = def test_when_cant_configure_automatically(shell_pid, shell, logs): shell_pid.return_value = 12 shell.how_to_configure.return_value = ShellConfiguration( content='eval $(thefuck --alias)', path='/tmp/.bashrc', reload='bash', can_configure_automatically=False) > main() tests/entrypoints/test_not_configured.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError _________________________ test_when_already_configured _________________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: usage_tracker_io = <_io.StringIO object at 0x7eff61a89790> shell_pid = shell = shell_config = logs = def test_when_already_configured(usage_tracker_io, shell_pid, shell, shell_config, logs): shell.get_history.return_value = ['fuck'] shell_pid.return_value = 12 _change_tracker(usage_tracker_io, 12) shell_config.read.return_value = 'eval $(thefuck --alias)' > main() tests/entrypoints/test_not_configured.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError ______________________ test_when_successfully_configured _______________________ self = PosixPath('/var/lib/portage/home/.config/thefuck/rules'), mode = 511 parents = True, exist_ok = False def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck/rules' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: self = PosixPath('/var/lib/portage/home/.config/thefuck'), mode = 511 parents = True, exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/portage/home/.config/thefuck' /usr/lib/python3.9/pathlib.py:1313: FileNotFoundError During handling of the above exception, another exception occurred: usage_tracker_io = <_io.StringIO object at 0x7eff61920670> shell_pid = shell = shell_config = logs = def test_when_successfully_configured(usage_tracker_io, shell_pid, shell, shell_config, logs): shell.get_history.return_value = ['fuck'] shell_pid.return_value = 12 _change_tracker(usage_tracker_io, 12) shell_config.read.return_value = '' > main() tests/entrypoints/test_not_configured.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ thefuck/entrypoints/not_configured.py:98: in main settings.init() thefuck/conf.py:21: in init self._setup_user_dir() thefuck/conf.py:64: in _setup_user_dir rules_dir.mkdir(parents=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) /usr/lib/python3.9/pathlib.py:1317: in mkdir self.parent.mkdir(parents=True, exist_ok=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = PosixPath('/var/lib/portage/home/.config'), mode = 511, parents = True exist_ok = True def mkdir(self, mode=0o777, parents=False, exist_ok=False): """ Create a new directory at this given path. """ try: > self._accessor.mkdir(self, mode) E PermissionError: [Errno 13] Permission denied: '/var/lib/portage/home/.config' /usr/lib/python3.9/pathlib.py:1313: PermissionError =============================== warnings summary =============================== thefuck/conf.py:1 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/thefuck/conf.py:1: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses from imp import load_source tests/test_conf.py:46 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/test_conf.py:46: PytestUnknownMarkWarning: Unknown pytest.mark.usefixture - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.usefixture('load_source') tests/test_utils.py:220 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/test_utils.py:220: PytestDeprecationWarning: @pytest.yield_fixture is deprecated. Use @pytest.fixture instead; they are the same. @pytest.yield_fixture(autouse=True) tests/functional/test_bash.py:41 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_bash.py:41: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_bash.py:47 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_bash.py:47: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_bash.py:53 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_bash.py:53: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_bash.py:59 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_bash.py:59: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_bash.py:65 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_bash.py:65: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_fish.py:33 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_fish.py:33: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_fish.py:38 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_fish.py:38: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_fish.py:43 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_fish.py:43: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_fish.py:48 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_fish.py:48: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_tcsh.py:28 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_tcsh.py:28: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_tcsh.py:33 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_tcsh.py:33: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_tcsh.py:38 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_tcsh.py:38: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_tcsh.py:43 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_tcsh.py:43: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_zsh.py:48 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_zsh.py:48: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_zsh.py:54 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_zsh.py:54: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_zsh.py:60 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_zsh.py:60: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_zsh.py:66 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_zsh.py:66: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/functional/test_zsh.py:72 /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/tests/functional/test_zsh.py:72: PytestUnknownMarkWarning: Unknown pytest.mark.functional - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.functional tests/test_conf.py::test_get_user_dir_path[True-~/.config-~/.thefuck] /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/thefuck/conf.py:52: UserWarning: Config path /var/lib/portage/home/.thefuck is deprecated. Please move to /var/lib/portage/home/.config/thefuck warn(u'Config path {} is deprecated. Please move to {}'.format( tests/test_conf.py::test_get_user_dir_path[True-/user/test/config/-~/.thefuck] /var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30/thefuck/conf.py:52: UserWarning: Config path /var/lib/portage/home/.thefuck is deprecated. Please move to /user/test/config/thefuck warn(u'Config path {} is deprecated. Please move to {}'.format( -- Docs: https://docs.pytest.org/en/stable/warnings.html =========================== short test summary info ============================ FAILED tests/test_conf.py::test_settings_defaults - PermissionError: [Errno 1... FAILED tests/test_conf.py::TestSettingsFromFile::test_from_file - PermissionE... FAILED tests/test_conf.py::TestSettingsFromFile::test_from_file_with_DEFAULT FAILED tests/test_conf.py::TestSettingsFromEnv::test_from_env - PermissionErr... FAILED tests/test_conf.py::TestSettingsFromEnv::test_from_env_with_DEFAULT - ... FAILED tests/test_conf.py::test_settings_from_args - PermissionError: [Errno ... FAILED tests/entrypoints/test_not_configured.py::test_for_generic_shell - Per... FAILED tests/entrypoints/test_not_configured.py::test_on_first_run - Permissi... FAILED tests/entrypoints/test_not_configured.py::test_on_run_after_other_commands FAILED tests/entrypoints/test_not_configured.py::test_on_first_run_from_current_shell FAILED tests/entrypoints/test_not_configured.py::test_when_cant_configure_automatically FAILED tests/entrypoints/test_not_configured.py::test_when_already_configured FAILED tests/entrypoints/test_not_configured.py::test_when_successfully_configured ========== 13 failed, 1649 passed, 62 skipped, 23 warnings in 11.01s =========== * ERROR: app-shells/thefuck-3.30::gentoo failed (test phase): * (no error message) * * Call stack: * ebuild.sh, line 127: Called src_test * environment, line 2893: Called distutils-r1_src_test * environment, line 1247: Called _distutils-r1_run_foreach_impl 'python_test' * environment, line 489: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' * environment, line 2556: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' * environment, line 2087: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' * environment, line 2085: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' * environment, line 803: Called distutils-r1_run_phase 'python_test' * environment, line 1186: Called python_test * environment, line 2852: Called die * The specific snippet of code: * py.test -vv || die * * If you need support, post the output of `emerge --info '=app-shells/thefuck-3.30::gentoo'`, * the complete build log and the output of `emerge -pqv '=app-shells/thefuck-3.30::gentoo'`. * The complete build log is located at '/var/log/portage/app-shells:thefuck-3.30:20210725-140131.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/app-shells/thefuck-3.30/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/app-shells/thefuck-3.30/temp/environment'. * Working directory: '/var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30' * S: '/var/tmp/portage/app-shells/thefuck-3.30/work/thefuck-3.30'