From 5198b34f24ca4bc414a5bf1b0288ee86ea2529a8 Mon Sep 17 00:00:00 2001 From: Nikos Kakonas <72870195+NikosKakonas@users.noreply.github.com> Date: Tue, 14 Jun 2022 00:29:15 +0300 Subject: [PATCH] #1282: Keep quotes in the script on no_command rule Co-authored-by: Pablo Santiago Blum de Aguiar --- tests/rules/test_no_command.py | 6 ++++-- thefuck/rules/no_command.py | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/rules/test_no_command.py b/tests/rules/test_no_command.py index 0df4590b..96f0f069 100644 --- a/tests/rules/test_no_command.py +++ b/tests/rules/test_no_command.py @@ -21,7 +21,8 @@ def history_without_current(mocker): ('vom file.py', 'vom: not found'), ('fucck', 'fucck: not found'), ('puthon', "'puthon' is not recognized as an internal or external command"), - ('got commit', 'got: command not found')]) + ('got commit', 'got: command not found'), + ('gti commit -m "new commit"', 'gti: command not found')]) def test_match(mocker, script, output): mocker.patch('thefuck.rules.no_command.which', return_value=None) @@ -43,6 +44,7 @@ def test_not_match(mocker, script, output, which): @pytest.mark.parametrize('script, result', [ ('vom file.py', ['vim file.py']), ('fucck', ['fsck']), - ('got commit', ['git commit', 'go commit'])]) + ('got commit', ['git commit', 'go commit']), + ('gti commit -m "new commit"', ['git commit -m "new commit"'])]) def test_get_new_command(script, result): assert get_new_command(Command(script, '')) == result diff --git a/thefuck/rules/no_command.py b/thefuck/rules/no_command.py index 03e023b3..08623293 100644 --- a/thefuck/rules/no_command.py +++ b/thefuck/rules/no_command.py @@ -35,8 +35,7 @@ def get_new_command(command): get_all_executables()) if cmd not in new_cmds] - return [' '.join([new_command] + command.script_parts[1:]) - for new_command in new_cmds] + return [command.script.replace(old_command, cmd, 1) for cmd in new_cmds] priority = 3000