diff --git a/tests/rules/test_git_branch_delete.py b/tests/rules/test_git_branch_delete.py new file mode 100644 index 00000000..44a8f449 --- /dev/null +++ b/tests/rules/test_git_branch_delete.py @@ -0,0 +1,22 @@ +import pytest +from thefuck.rules.git_branch_delete import match, get_new_command +from tests.utils import Command + + +@pytest.fixture +def stderr(): + return '''error: The branch 'branch' is not fully merged. +If you are sure you want to delete it, run 'git branch -D branch'. + +''' + + +def test_match(stderr): + assert match(Command('git branch -d branch', stderr=stderr), None) + assert not match(Command('git branch -d branch'), None) + assert not match(Command('ls', stderr=stderr), None) + + +def test_get_new_command(stderr): + assert get_new_command(Command('git branch -d branch', stderr=stderr), None)\ + == "git branch -D branch" diff --git a/thefuck/rules/git_branch_delete.py b/thefuck/rules/git_branch_delete.py new file mode 100644 index 00000000..ad465af6 --- /dev/null +++ b/thefuck/rules/git_branch_delete.py @@ -0,0 +1,7 @@ +def match(command, settings): + return ('git branch -d' in command.script + and 'If you are sure you want to delete it' in command.stderr) + + +def get_new_command(command, settings): + return command.script.replace('-d', '-D')