import pytest from thefuck.rules.git_branch_0flag import get_new_command, match from thefuck.types import Command @pytest.fixture def output_branch_exists(): return "fatal: A branch named 'bar' already exists." @pytest.mark.parametrize( "script", [ "git branch 0a", "git branch 0d", "git branch 0f", "git branch 0r", "git branch 0v", "git branch 0d foo", "git branch 0D foo", ], ) def test_match(script, output_branch_exists): assert match(Command(script, output_branch_exists)) @pytest.mark.parametrize( "script", [ "git branch -a", "git branch -r", "git branch -v", "git branch -d foo", "git branch -D foo", ], ) def test_not_match(script, output_branch_exists): assert not match(Command(script, "")) @pytest.mark.parametrize( "script, new_command", [ ("git branch 0a", "git branch -D 0a && git branch -a"), ("git branch 0v", "git branch -D 0v && git branch -v"), ("git branch 0d foo", "git branch -D 0d && git branch -d foo"), ("git branch 0D foo", "git branch -D 0D && git branch -D foo"), ("git branch 0l 'maint-*'", "git branch -D 0l && git branch -l 'maint-*'"), ("git branch 0u upstream", "git branch -D 0u && git branch -u upstream"), ], ) def test_get_new_command_branch_exists(script, output_branch_exists, new_command): assert get_new_command(Command(script, output_branch_exists)) == new_command @pytest.fixture def output_not_valid_object(): return "fatal: Not a valid object name: 'bar'." @pytest.mark.parametrize( "script, new_command", [ ("git branch 0l 'maint-*'", "git branch -l 'maint-*'"), ("git branch 0u upstream", "git branch -u upstream"), ], ) def test_get_new_command_not_valid_object(script, output_not_valid_object, new_command): assert get_new_command(Command(script, output_not_valid_object)) == new_command