import pytest
from thefuck.rules.git_merge_unrelated import match, get_new_command
from thefuck.types import Command


output = 'fatal: refusing to merge unrelated histories'


def test_match():
    assert match(Command('git merge test', output))
    assert not match(Command('git merge master', ''))
    assert not match(Command('ls', output))


@pytest.mark.parametrize('command, new_command', [
    (Command('git merge local', output),
     'git merge local --allow-unrelated-histories'),
    (Command('git merge -m "test" local', output),
     'git merge -m "test" local --allow-unrelated-histories'),
    (Command('git merge -m "test local" local', output),
     'git merge -m "test local" local --allow-unrelated-histories')])
def test_get_new_command(command, new_command):
    assert get_new_command(command) == new_command