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


@pytest.fixture
def output():
    return '''Applying: Test commit
No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

'''


def test_match(output):
    assert match(Command('git rebase --continue', output))
    assert not match(Command('git rebase --continue', ''))
    assert not match(Command('git rebase --skip', ''))


def test_get_new_command(output):
    assert (get_new_command(Command('git rebase --continue', output)) ==
            'git rebase --skip')