2016-10-29 17:41:36 -02:00
|
|
|
import pytest
|
|
|
|
from thefuck.rules.git_rm_local_modifications import match, get_new_command
|
2017-08-31 17:58:56 +02:00
|
|
|
from thefuck.types import Command
|
2016-10-29 17:41:36 -02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2017-08-31 17:58:56 +02:00
|
|
|
def output(target):
|
2016-10-29 17:41:36 -02:00
|
|
|
return ('error: the following file has local modifications:\n {}\n(use '
|
|
|
|
'--cached to keep the file, or -f to force removal)').format(target)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('script, target', [
|
|
|
|
('git rm foo', 'foo'),
|
|
|
|
('git rm foo bar', 'bar')])
|
2017-08-31 17:58:56 +02:00
|
|
|
def test_match(output, script, target):
|
|
|
|
assert match(Command(script, output))
|
2016-10-29 17:41:36 -02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('script', ['git rm foo', 'git rm foo bar', 'git rm'])
|
|
|
|
def test_not_match(script):
|
2017-08-31 17:58:56 +02:00
|
|
|
assert not match(Command(script, ''))
|
2016-10-29 17:41:36 -02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('script, target, new_command', [
|
|
|
|
('git rm foo', 'foo', ['git rm --cached foo', 'git rm -f foo']),
|
|
|
|
('git rm foo bar', 'bar', ['git rm --cached foo bar', 'git rm -f foo bar'])])
|
2017-08-31 17:58:56 +02:00
|
|
|
def test_get_new_command(output, script, target, new_command):
|
|
|
|
assert get_new_command(Command(script, output)) == new_command
|