import pytest from thefuck.rules.git_rebase_no_changes import match, get_new_command from tests.utils import Command @pytest.fixture def stdout(): 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(stdout): assert match(Command('git rebase --continue', stdout=stdout)) assert not match(Command('git rebase --continue')) assert not match(Command('git rebase --skip')) def test_get_new_command(stdout): assert (get_new_command(Command('git rebase --continue', stdout=stdout)) == 'git rebase --skip')