diff --git a/tests/rules/test_rm_dir.py b/tests/rules/test_rm_dir.py index c334d2ff..23ca81f9 100644 --- a/tests/rules/test_rm_dir.py +++ b/tests/rules/test_rm_dir.py @@ -5,17 +5,28 @@ from tests.utils import Command @pytest.mark.parametrize('command', [ Command('rm foo', stderr='rm: foo: is a directory'), - Command('rm foo', stderr='rm: foo: Is a directory')]) + Command('rm foo', stderr='rm: foo: Is a directory'), + Command('hdfs dfs -rm foo', stderr='rm: `foo`: Is a directory'), + Command('./bin/hdfs dfs -rm foo', stderr='rm: `foo`: Is a directory') + ]) def test_match(command): assert match(command, None) assert match(command, None) @pytest.mark.parametrize('command', [ - Command('rm foo'), Command('rm foo'), Command()]) + Command('rm foo'), + Command('hdfs dfs -rm foo'), + Command('./bin/hdfs dfs -rm foo'), + Command()]) def test_not_match(command): assert not match(command, None) -def test_get_new_command(): - assert get_new_command(Command('rm foo', '', ''), None) == 'rm -rf foo' +@pytest.mark.parametrize('command, new_command', [ + (Command('rm foo'), 'rm -rf foo'), + (Command('hdfs dfs -rm foo'), 'hdfs dfs -rm -r foo')]) +def test_get_new_command(command, new_command): + assert get_new_command(command, None) == new_command + + diff --git a/thefuck/rules/rm_dir.py b/thefuck/rules/rm_dir.py index 89b1d2bb..05be3710 100644 --- a/thefuck/rules/rm_dir.py +++ b/thefuck/rules/rm_dir.py @@ -10,4 +10,7 @@ def match(command, settings): @sudo_support def get_new_command(command, settings): - return re.sub('^rm (.*)', 'rm -rf \\1', command.script) + arguments = '-rf' + if 'hdfs' in command.script: + arguments = '-r' + return re.sub('\\brm (.*)', 'rm ' + arguments + ' \\1', command.script)