diff --git a/tests/rules/test_pyenv_no_such_command.py b/tests/rules/test_pyenv_no_such_command.py index 298620f7..8d73a5ca 100644 --- a/tests/rules/test_pyenv_no_such_command.py +++ b/tests/rules/test_pyenv_no_such_command.py @@ -9,21 +9,6 @@ def output(pyenv_cmd): return "pyenv: no such command `{}'".format(pyenv_cmd) -@pytest.fixture(autouse=True) -def Popen(mocker): - mock = mocker.patch('thefuck.rules.pyenv_no_such_command.Popen') - mock.return_value.stdout.readlines.return_value = ( - b'--version\nactivate\ncommands\ncompletions\ndeactivate\nexec_\n' - b'global\nhelp\nhooks\ninit\ninstall\nlocal\nprefix_\n' - b'realpath.dylib\nrehash\nroot\nshell\nshims\nuninstall\nversion_\n' - b'version-file\nversion-file-read\nversion-file-write\nversion-name_\n' - b'version-origin\nversions\nvirtualenv\nvirtualenv-delete_\n' - b'virtualenv-init\nvirtualenv-prefix\nvirtualenvs_\n' - b'virtualenvwrapper\nvirtualenvwrapper_lazy\nwhence\nwhich_\n' - ).split() - return mock - - @pytest.mark.parametrize('script, pyenv_cmd', [ ('pyenv globe', 'globe'), ('pyenv intall 3.8.0', 'intall'), diff --git a/thefuck/rules/pyenv_no_such_command.py b/thefuck/rules/pyenv_no_such_command.py index 3acc857b..7f024de2 100644 --- a/thefuck/rules/pyenv_no_such_command.py +++ b/thefuck/rules/pyenv_no_such_command.py @@ -1,7 +1,7 @@ import re from thefuck.utils import cache, for_app, replace_argument, replace_command, which -from thefuck.specific.devenv import env_available, COMMON_TYPOS -from subprocess import PIPE, Popen +from thefuck.specific.devenv import env_available, COMMON_TYPOS, get_commands +#from subprocess import PIPE, Popen enabled_by_default = env_available @@ -11,11 +11,6 @@ def match(command): return 'pyenv: no such command' in command.output -def get_commands(): - proc = Popen(['pyenv', 'commands'], stdout=PIPE) - return [line.decode('utf-8').strip() for line in proc.stdout.readlines()] - - if which('pyenv'): get_commands = cache(which('pyenv'))(get_commands) @@ -25,5 +20,5 @@ def get_new_command(command): broken = re.findall(r"pyenv: no such command `([^']*)'", command.output)[0] matched = [replace_argument(command.script, broken, common_typo) for common_typo in COMMON_TYPOS.get(broken, [])] - matched.extend(replace_command(command, broken, get_commands())) + matched.extend(replace_command(command, broken, get_commands('pyenv'))) return matched