diff --git a/tests/rules/test_rm_dir.py b/tests/rules/test_rm_dir.py new file mode 100644 index 00000000..2362d0c3 --- /dev/null +++ b/tests/rules/test_rm_dir.py @@ -0,0 +1,13 @@ +from thefuck.main import Command +from thefuck.rules.rm_dir import match, get_new_command + + +def test_match(): + assert match(Command('rm foo', '', 'rm: foo: is a directory'), None) + assert not match(Command('rm foo', '', ''), None) + assert not match(Command('rm foo', '', 'foo bar baz'), None) + assert not match(Command('', '', ''), None) + + +def test_get_new_command(): + assert get_new_command(Command('rm foo', '', ''), None) == 'rm -rf foo' diff --git a/thefuck/rules/rm_dir.py b/thefuck/rules/rm_dir.py new file mode 100644 index 00000000..f9349ea4 --- /dev/null +++ b/thefuck/rules/rm_dir.py @@ -0,0 +1,9 @@ +import re + +def match(command, settings): + return ('rm' in command.script + and 'is a directory' in command.stderr) + + +def get_new_command(command, settings): + return re.sub('^rm (.*)', 'rm -rf \\1', command.script)